Bırakma ( kağıt , açıklama ) bazı nöronların çıkışını sıfıra ayarlar. Bir MLP için, Iris çiçeği veri kümesi için aşağıdaki mimariye sahip olabilirsiniz :
4 : 50 (tanh) : dropout (0.5) : 20 (tanh) : 3 (softmax)
Şu şekilde çalışır:
ile , B 1 ∈ R, 50 x 4 , D ∈ { 0 , 1 } 50 x 1 , B 2 ∈ R, 20 x 50 , W, 3 ∈ R 20 × 3 (basitlik uğruna önyargıları görmezden gelmek).
İle ve
burada işlemi D ile W noktasını M ile çarpar (bakınız Hadamard ürünü ).
Bu nedenle, matrisini her seferinde örnekliyoruz ve böylece bırakma, bir düğümün 0 ile çarpımı haline geliyor.
Ancak CNN'ler için tam olarak neyin bırakıldığını net değil. Üç olasılık görebiliyorum:
- Tam özellik haritalarını bırakma (dolayısıyla bir çekirdek)
- Bir çekirdeğin bir öğesini bırakma (bir çekirdeğin bir öğesini 0 ile değiştirme)
- Özellik haritasının bir öğesini düşürme
Lütfen cevabınıza bir referans / teklif ekleyin.
Düşüncelerim
Bence Lasagne yapar (3) ( koda bakınız ). Bu, uygulanması en basit yöntem olabilir. Ancak, orijinal düşünceye daha yakın olabilir (1).
Caffe için benzer görünüyor ( koda bakınız ). Tensorflow için, kullanıcı karar vermelidir ( kod - noise_shape=None
geçtiğinde ne olduğundan emin değilim ).
Nasıl olmalı
(2) ve (3), büyük olasılıkla istenmeyen, ağın uzaysal konumlara değişmezlik katmasına neden olacağı için çok mantıklı değildir. Dolayısıyla (1) mantıklı olan tek değişkendir. Ancak varsayılan uygulamayı kullanırsanız ne olacağından emin değilim.