Випадання ( папір , пояснення ) встановлює вихід деяких нейронів до нуля. Отже, для MLP у вас може бути така архітектура для набору даних квітів Iris :
4 : 50 (tanh) : dropout (0.5) : 20 (tanh) : 3 (softmax)
Це діятиме так:
з , W 1 ∈ R 50 × 4 , D ∈ { 0 , 1 } 50 × 1 , W 2 ∈ R 20 × 50 , W 3 ∈ R 20 × 3 (ігнорування упереджень заради простоти).
З і
де операція множиться D в точці на M (див. продукт Адамара ).
Отже, ми щоразу відбираємо вибірку матриці і таким чином випадання стає множенням вузла на 0.
Але для CNN мені незрозуміло, що саме випадає. Я бачу три можливості:
- Випадання повних карт функцій (звідси ядро)
- Видалення одного елемента ядра (заміна елемента ядра на 0)
- Видалення одного елемента карти об’єктів
Будь ласка, додайте до відповіді посилання / цитату.
Мої думки
Я думаю, що Лазань (3) (див. Код ). Це може бути найпростішим у здійсненні. Однак ближче до початкової ідеї може бути (1).
Схоже на Caffe (див. Код ). Для tensorflow, користувач повинен вирішити ( код - я не впевнений, що станеться, коли noise_shape=None
буде передано).
Як має бути
(2) та (3) не мають великого сенсу, оскільки це призведе до того, що мережа додасть інваріантності просторовим положенням, що, мабуть, не бажано. Отже (1) є єдиним варіантом, який має сенс. Але я не впевнений, що станеться, якщо ви використовуєте реалізацію за замовчуванням.