- Mengapa node bias digunakan dalam jaringan saraf?
- Berapa banyak yang harus Anda gunakan?
- Di lapisan mana Anda harus menggunakannya: semua lapisan tersembunyi dan lapisan keluaran?
Jawaban:
Node bias dalam jaringan saraf adalah node yang selalu 'on'. Artinya, nilainya diatur ke tanpa memperhatikan data dalam pola yang diberikan. Ini analog dengan intersep dalam model regresi, dan melayani fungsi yang sama. Jika jaringan saraf tidak memiliki simpul bias dalam lapisan yang diberikan, itu tidak akan dapat menghasilkan output di lapisan berikutnya yang berbeda dari (pada skala linier, atau nilai yang sesuai dengan transformasi ketika melewati fungsi aktivasi) ketika nilai fitur adalah .0 0 0
Pertimbangkan contoh sederhana: Anda memiliki perceptron umpan maju dengan 2 simpul input dan , dan 1 simpul keluaran . dan adalah fitur biner dan ditetapkan pada tingkat referensi mereka, . 2 itu dengan bobot apa pun yang Anda suka, dan , jumlah produk dan berikan melalui fungsi aktivasi apa pun yang Anda inginkan. Tanpa simpul bias, hanya satu nilai output yang mungkin, yang mungkin menghasilkan kecocokan yang sangat buruk. Misalnya, menggunakan fungsi aktivasi logistik, harusx 2 y x 1 x 2 x 1 = x 2 = 0 0 w 1 w 2 y .5, yang akan mengerikan untuk mengklasifikasikan peristiwa langka.
Node bias memberikan fleksibilitas yang cukup besar untuk model jaringan saraf. Dalam contoh yang diberikan di atas, satu-satunya proporsi yang diprediksi mungkin tanpa simpul bias adalah , tetapi dengan simpul bias, setiap proporsi dalam dapat cocok untuk pola di mana . Untuk setiap lapisan, , di mana simpul bias ditambahkan, simpul bias akan menambahkan parameter tambahan / bobot untuk diperkirakan (di mana adalah jumlah node di lapisan( 0 , 1 ) x 1 = x 2 = 0 j N j + 1 N j + 1 j + 1). Lebih banyak parameter yang harus dipasang berarti perlu waktu lebih lama secara proporsional bagi jaringan saraf untuk dilatih. Ini juga meningkatkan kemungkinan overfitting, jika Anda tidak memiliki lebih banyak data daripada bobot untuk dipelajari.
Dengan pemahaman ini, kami dapat menjawab pertanyaan eksplisit Anda:
Sederhana, jawaban singkat:
Dalam beberapa percobaan dalam tesis master saya (misalnya halaman 59), saya menemukan bahwa bias mungkin penting untuk lapisan pertama, tetapi terutama pada lapisan yang sepenuhnya terhubung pada akhirnya tampaknya tidak memainkan peran besar. Karenanya seseorang dapat memilikinya pada beberapa lapisan pertama dan bukan pada yang terakhir. Cukup latih jaringan, plot distribusi bobot node bias dan pangkas jika bobotnya tampaknya terlalu dekat dengan nol.
Ini mungkin sangat tergantung pada arsitektur jaringan / dataset.
1
nilai konstan pada lapisan sebelumnya dan satu berat (satu nilai bias) untuk masing-masing lapisan neuron berikutnya.
Dalam konteks jaringan saraf, Normalisasi Batch saat ini merupakan standar emas untuk membuat "node bias" yang pintar. Alih-alih menjepit nilai bias neuron, Anda malah menyesuaikan kovarians dari input neuron. Jadi dalam CNN, Anda akan menerapkan normalisasi batch hanya antara lapisan konvolusional dan lapisan berikutnya yang terhubung penuh (katakanlah, ReLus). Secara teori, semua lapisan yang terhubung sepenuhnya dapat mengambil manfaat dari Normalisasi Batch tetapi dalam praktiknya menjadi sangat mahal untuk diterapkan karena setiap normalisasi bets membawa parameternya sendiri.
Mengenai alasan itu, sebagian besar jawaban sudah menjelaskan bahwa, khususnya, neuron rentan terhadap gradien jenuh ketika input mendorong aktivasi ke ekstrem. Dalam kasus ReLu ini akan didorong ke kiri, memberikan gradien 0. Secara umum, ketika Anda melatih model, Anda pertama-tama menormalkan input ke jaringan saraf. Batch Normalisasi adalah cara menormalkan input di dalam jaringan saraf, antar lapisan.