Що таке / чи використовуються фільтри за замовчуванням, які використовує Keras Convolution2d ()?


18

Я досить новачок у нейронних мережах, але розумію лінійну алгебру і математику згортки досить пристойно.

Я намагаюся розібратися в прикладі коду, який я знаходжу в різних місцях мережі для тренування конвертної NN Keras з даними MNIST для розпізнавання цифр. Моє сподівання було б, що коли я створюю згортковий шар, мені доведеться вказати фільтр або набір фільтрів, які потрібно застосувати до вводу. Але три знайдених нами зразки створюють такий згортальний шар, як цей:

model.add(Convolution2D(nb_filter = 32, nb_row = 3, nb_col = 3,
                        border_mode='valid',
                        input_shape=input_shape))

Схоже, застосовується 32 фільтри 3х3 до зображень, оброблених CNN. Але що це за фільтри? Як би я описав їх математично? Документація про керас не допомагає.

Спасибі заздалегідь,


2
Це випливає з розуміння складової частини CNN. Ви можете прочитати тут: cs231n.github.io/convolutional-networks
Крістіан Сафка,

Відповіді:


15

За замовчуванням фільтри W ініціалізуються випадковим чином glorot_uniformметодом, який виводить значення з рівномірного розподілу з позитивними та негативними межами, описаними так:

WU(6нiн+ноут,-6нiн+ноут),

де нiн - кількість одиниць, що подаються в цю одиницю, і ноут - кількість одиниць, на яку подається результат.

Коли ви використовуєте мережу для прогнозування, ці фільтри застосовуються на кожному шарі мережі. Тобто, для кожного фільтра на кожному вхідному зображенні виконується дискретна згортка, і результати цих згортків подаються на наступний шар згортків (або повністю пов'язаний шар, або все, що у вас може бути).

Під час тренінгу значення у фільтрах оптимізуються за допомогою зворотного пропорції щодо функції втрат. Для таких завдань класифікації, як розпізнавання цифр, зазвичай використовується поперечна втрата ентропії. Ось візуалізація деяких фільтрів, вивчених у першому шарі (вгорі) та фільтрів, вивчених у другому шарі (знизу) згорткової мережі:

візуалізація мережевих фільтрів

Як бачимо, фільтри першого шару в основному всі виступають як прості реберні детектори, тоді як фільтри другого шару є більш складними. У міру заглиблення в мережу фільтри здатні виявляти складніші форми. Хоча це візуалізує трохи складно, оскільки ці фільтри діють на зображення, які вже були складені багато разів, і, ймовірно, не дуже схожі на оригінальне природне зображення.


5
glorot_uniformне використовує нормальний розподіл. Я думаю, ви описуєте glorot_normal. Я не думаю, що це має велике значення для відповіді - ключовими моментами є випадкова ініціалізація з подальшими наслідками тренувань. Можливо, варто пояснити, як підготовлені фільтри виглядають як фільтри крайових / кутових тощо (можливо, з одним із класичних зображень до / після тренування зображень фільтрів першого шару).
Ніл Слейтер

Тім, спасибі за те, що ти надав математику. @Neil Slater - ваше уявлення про те, що фільтри після тренування із зворотним розповсюдженням можуть виявитись схожими на виявлення ребер тощо. Якби я мав більше репутації, я поставив би +1 вашим внескам.
ChrisFal

@NeilSlater Спасибі за ваш коментар - ви маєте рацію, я сплутав glorot_normalі glorot_uniform, і я оновив відповідь , щоб відобразити це. Я також додав трохи додаткової інформації про те, як закінчуються фільтри, як ви запропонували.
timleathart

6

АЖкБк(i,j)

Бк(i,j)=(ЖкА)(i,j)=л=0,1,2м=0,1,2Жк(л,м)А(i-л,j-м)

введіть тут опис зображення

Перероблена модель буде тренувати ядра відповідно до вашої функції витрат, і врешті ці ядра є фільтрами вашої моделі.


Я зрозумів цю математику, але впевнений, що багато читачів цієї теми знайдуть діаграму корисною. Тож дякую!
ChrisFal

imghost.in/images/2018/03/06/XvatD.jpg, можливо, зображення має бути з коордами (0,0) на B?
вініту

@vinnitu так, справді. Насправді мені також потрібно змінити B на Bk (i, j), (i = 0,1,2, j = 0,1,2).
lucky6qi
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.