Memahami dropout dan gradient descent

9

Saya melihat bagaimana menerapkan dropout pada jaringan saraf yang dalam, dan saya menemukan sesuatu yang berlawanan secara intuitif. Dalam fase maju, topeng aktivasi putus dengan tensor acak 1s dan 0s untuk memaksa net mempelajari rata-rata bobot. Ini membantu jaring untuk menggeneralisasi dengan lebih baik. Tetapi selama fase pembaruan dari gradient descent, aktivasi tidak ditutup-tutupi. Bagi saya ini tampaknya kontra intuitif. Jika saya menutupi aktivasi koneksi dengan dropout, mengapa saya tidak harus menutupi fase gradient descent?

emanuele
sumber
Saya tidak yakin di mana Anda menemukan referensi yang menunjukkan dropout yang digunakan untuk menutupi bobot ? Saya pikir itu tidak benar.
Neil Slater
Anda benar, saya menggunakan konsep yang salah.
emanuele

Jawaban:

6

Dalam dropout seperti yang dijelaskan dalam http://www.cs.toronto.edu/~hinton/absps/JMLRdropout.pdf , bobot tidak bertopeng. Sebaliknya, aktivasi neuron disamarkan, per contoh seperti yang disajikan untuk pelatihan (yaitu topeng diacak untuk setiap lari ke depan dan gradien backprop, tidak pernah diulang).

Aktivasi di-masked selama forward pass, dan perhitungan gradien menggunakan mask yang sama selama back-propagation dari contoh itu. Ini dapat diimplementasikan sebagai pengubah dalam deskripsi lapisan, atau sebagai lapisan putus sekolah yang terpisah.

Selama fase pembaruan berat badan, biasanya diterapkan pada mini-batch (di mana setiap contoh akan memiliki masker yang berbeda diterapkan) tidak ada lagi penggunaan masker putus sekolah. Nilai gradien yang digunakan untuk pembaruan telah dipengaruhi oleh topeng yang diterapkan selama propagasi kembali.

Saya menemukan referensi yang berguna untuk mempelajari cara kerja dropout, untuk mungkin menerapkan sendiri, adalah Deep Learn Toolbox untuk Matlab / Octave.

Neil Slater
sumber