Neuron ReLU menghasilkan nol dan memiliki turunan nol untuk semua input negatif. Jadi, jika bobot dalam jaringan Anda selalu mengarah ke input negatif ke dalam neuron ReLU, neuron itu secara efektif tidak berkontribusi pada pelatihan jaringan. Secara matematis, kontribusi gradien untuk pembaruan berat yang berasal dari neuron itu selalu nol (lihat Lampiran Matematika untuk beberapa detail).
Berapa kemungkinan bahwa bobot Anda akan menghasilkan angka negatif untuk semua input ke neuron yang diberikan? Sulit untuk menjawab ini secara umum, tetapi salah satu cara di mana ini bisa terjadi adalah ketika Anda membuat pembaruan bobot yang terlalu besar. Ingat bahwa jaringan saraf biasanya dilatih dengan meminimalkan fungsi kehilangan sehubungan dengan bobot menggunakan gradient descent. Yaitu, bobot jaringan saraf adalah "variabel" dari fungsi (kerugian tergantung pada dataset, tetapi hanya secara implisit: biasanya jumlah atas setiap contoh pelatihan, dan masing-masing contoh secara efektif adalah konstanta). Karena gradien dari fungsi apa pun selalu menunjuk ke arah peningkatan paling curam, yang harus kita lakukan adalah menghitung gradienL(W)LLsehubungan dengan bobot dan bergerak ke arah yang berlawanan sedikit, lalu bilas dan ulangi. Dengan begitu, kita berakhir di minimum (lokal) dari . Oleh karena itu, jika input Anda berada pada skala yang kira-kira sama, langkah besar ke arah gradien dapat memberi Anda bobot yang memberikan input serupa yang akhirnya bisa menjadi negatif.WL
Secara umum, apa yang terjadi tergantung pada bagaimana informasi mengalir melalui jaringan. Anda dapat membayangkan bahwa seiring berjalannya pelatihan, nilai-nilai yang dihasilkan neuron dapat melayang dan memungkinkan bobot untuk membunuh semua aliran data melalui beberapa di antaranya. (Kadang-kadang, mereka dapat meninggalkan konfigurasi yang tidak menguntungkan ini karena pembaruan berat sebelumnya di jaringan!). Saya mengeksplorasi ide ini dalam sebuah posting blog tentang inisialisasi bobot - yang juga dapat berkontribusi pada masalah ini - dan hubungannya dengan aliran data. Saya pikir poin saya di sini dapat diilustrasikan oleh plot dari artikel itu:
Plot menampilkan aktivasi dalam Perceptron Multi-Layer 5-lapisan dengan aktivasi ReLU setelah satu kali melewati jaringan dengan berbagai strategi inisialisasi. Anda dapat melihat bahwa tergantung pada konfigurasi berat, output jaringan Anda dapat terhenti.
Lampiran Matematika
Secara matematis jika adalah fungsi kehilangan jaringan Anda, adalah output dari neuron di lapisan ke- , adalah neuron ReLU, dan adalah input linear ke dalam layer , kemudian dengan rantai aturan turunan dari kerugian sehubungan dengan berat yang menghubungkan -th dan - lapisan adalahLx(i)jjif(s)=max(0,s)s(i)j(i+1)i(i+1)
∂L∂w(i)jk=∂L∂x(i+1)k∂x(i+1)k∂w(i)jk.
Istilah pertama di sebelah kanan dapat dihitung secara rekursif. Istilah kedua di sebelah kanan adalah satu-satunya tempat yang secara langsung melibatkan bobot dan dapat dipecah menjadiw(i)jk
∂x(i+1)k∂w(i)jk=∂f(s(i)j)∂s(i)j∂s(i)j∂w(i)jk=f′(s(i)j)x(i)j.
Dari sini Anda dapat melihat bahwa jika output selalu negatif, bobot yang mengarah ke neuron tidak diperbarui, dan neuron tidak berkontribusi untuk pembelajaran.