Dropout ( kertas , penjelasan ) mengatur output dari beberapa neuron ke nol. Jadi untuk MLP, Anda bisa memiliki arsitektur berikut untuk dataset bunga Iris :
4 : 50 (tanh) : dropout (0.5) : 20 (tanh) : 3 (softmax)
Ini akan bekerja seperti ini:
dengan , , , , (mengabaikan bias demi kesederhanaan). W 1 ∈ R 50 × 4 D ∈ { 0 , 1 } 50 × 1 W 2 ∈ R 20 × 50 W 3 ∈ R 20 × 3
Dengan dan
di mana operasi mengalikan titik D dengan M (lihat produk Hadamard ).
Oleh karena itu kami hanya mengambil sampel matriks setiap kali dan dengan demikian dropout menjadi perkalian simpul dengan 0.
Tetapi untuk CNN, tidak jelas bagi saya apa yang sebenarnya dikeluarkan. Saya dapat melihat tiga kemungkinan:
- Menjatuhkan peta fitur lengkap (karenanya sebuah kernel)
- Menjatuhkan satu elemen kernel (mengganti elemen kernel dengan 0)
- Menjatuhkan satu elemen peta fitur
Silakan tambahkan referensi / kutipan untuk jawaban Anda.
Pikiran saya
Saya pikir Lasagne tidak (3) (lihat kode ). Ini mungkin yang paling sederhana untuk diterapkan. Namun, lebih dekat ke ide aslinya mungkin (1).
Tampaknya serupa untuk Caffe (lihat kode ). Untuk tensorflow, pengguna harus memutuskan ( kode - Saya tidak yakin apa yang terjadi ketika noise_shape=None
dilewatkan).
Bagaimana seharusnya
(2) dan (3) tidak masuk akal karena akan menyebabkan jaringan menambah invarian ke posisi spasial, yang mungkin tidak diinginkan. Karenanya (1) adalah satu-satunya varian yang masuk akal. Tapi saya tidak yakin apa yang terjadi jika Anda menggunakan implementasi default.