Ketika menerapkan dropout di jaringan saraf tiruan, kita perlu mengimbangi kenyataan bahwa pada waktu pelatihan sebagian neuron dinonaktifkan. Untuk melakukannya, ada dua strategi umum:
- scaling aktivasi pada waktu ujian
- membalikkan dropout selama fase pelatihan
Dua strategi dirangkum dalam slide di bawah ini, diambil dari Standford CS231n: Convolutional Neural Networks for Visual Recognition .
Strategi mana yang lebih disukai, dan mengapa?
Menskalakan aktivasi pada waktu pengujian:
Menghindari putus sekolah selama fase pelatihan:
neural-networks
deep-learning
dropout
Franck Dernoncourt
sumber
sumber
Jawaban:
"membalikkan dropout selama fase pelatihan" harus lebih disukai.
Secara teoritis jika kita melihat putusnya Bernoulli sebagai metode menambahkan suara ke jaringan, lebih baik suara itu bisa memiliki rata-rata nol. Jika kita melakukan penskalaan pada waktu pelatihan untuk membatalkan bagian dari unit yang dinonaktifkan, rata-rata kebisingannya adalah nol.
Ada jenis lain dari metode dropout / noise yang keluar kemudian (misalnya dropout multiplikasi Gaussian, noise tambahan Gaussian ) yang juga memiliki rata-rata nol.
Dalam hal pelatihan dan pengujian jaringan saraf dalam praktek, ada alasan untuk lebih memilih implementasi seperti itu juga. Katakanlah saya ingin membandingkan kinerja dua model dengan arsitektur yang sama, satu dilatih oleh putus sekolah dan satu tidak.
Jika saya "skala aktivasi pada waktu pengujian", maka saya akan membutuhkan dua jaringan yang berbeda pada waktu pengujian. Jika saya menggunakan "versi terbalik" maka saya bisa menerapkan jaringan uji yang sama (kode) untuk kedua set parameter terlatih.
sumber
Keuntungan lain dari melakukan dropout terbalik (selain tidak harus mengubah kode pada waktu ujian) adalah bahwa selama pelatihan seseorang dapat menjadi mewah dan mengubah tingkat dropout secara dinamis. Ini disebut sebagai putus sekolah "anil". Pada dasarnya logikanya adalah bahwa menambahkan "noise" putus sekolah pada awal pelatihan membantu menjaga optimalisasi agar tidak terjebak dalam minimum lokal, sementara membiarkannya membusuk ke nol pada akhirnya menghasilkan jaringan yang lebih baik dengan kinerja yang lebih baik.
PELATIHAN DROPOUT TERKENAL JARINGAN DALAM
Dropout yang Dimodifikasi untuk Pelatihan Jaringan Saraf Tiruan
sumber
Andrew membuat penjelasan yang sangat baik dalam kursus Pembelajaran Mendalam tentang sesi ini Regularisasi Putus Sekolah :
Katakan
a3 = a3 / keep_prob
pada langkah terakhir implementasi:Z [4] = W [4] * a [3] + b [4] , ukuran elemen dari [3] telah berkurang
keep_prob
dari D3 (persentase elemen telah dihapus oleh D3), dengan demikian nilainya dari Z [4] juga akan dikurangi, jadi untuk mengkompensasi ini kira-kira kita akan membalikkan perubahan dengan membagikeep_prob
untuk memastikan nilai Z [4] tidak akan terpengaruh.sumber