Saya telah mengimplementasikan jaringan saraf (menggunakan CUDA) dengan 2 lapisan. (2 Neuron per lapisan). Saya mencoba membuatnya belajar 2 fungsi polinomial kuadrat sederhana menggunakan backpropagation .
Tetapi alih-alih konvergen, ia menyimpang (output menjadi tak terhingga)
Berikut ini beberapa detail tentang apa yang saya coba:
- Saya telah menetapkan bobot awal ke 0, tetapi karena itu menyimpang saya telah secara acak bobot awal (Kisaran: -0,5 hingga 0,5)
- Saya membaca bahwa jaringan saraf mungkin berbeda jika tingkat belajar terlalu tinggi sehingga saya mengurangi tingkat belajar menjadi 0,000001
- Dua fungsi yang saya coba tambahkan adalah: 3 * i + 7 * j + 9 dan j * j + i * i + 24 (Saya memberikan layer i dan j sebagai input)
- Saya telah mengimplementasikannya sebagai satu layer sebelumnya dan yang dapat memperkirakan fungsi polinomial lebih baik daripada yang dilakukannya sekarang
- Saya sedang berpikir untuk mengimplementasikan momentum dalam jaringan ini, tetapi saya tidak yakin ini akan membantunya belajar
- Saya menggunakan fungsi aktivasi linier (seperti tidak ada)
- Ada osilasi di awal tetapi output mulai menyimpang saat salah satu bobot menjadi lebih besar dari 1
Saya telah memeriksa dan memeriksa kembali kode saya, tetapi sepertinya tidak ada masalah apa pun dengannya.
Jadi, inilah pertanyaan saya: apa yang salah di sini?
Pointer apa pun akan dihargai.