Питання про упередженість у конволюційних мережах


11

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

Скажіть, у мене є (3, 32, 32) -образ і хочу застосувати (32, 5, 5) -фільтр. Для кожної карти функцій я маю 5х5 ваг, тому у мене повинно бути 3 x (5x5) x 32 параметри. Тепер мені потрібно додати упередження. Я вважаю, що у мене є лише параметри (3 x (5x5) + 1) x 32, тож зміщення однакове для всіх кольорів (RGB)?

Це правильно? Чи потрібно зберігати однакові ухили для кожного зображення по всій його глибині (у цьому випадку 3), коли я використовую різні ваги? Чому так?

Відповіді:


6

Зсув працює на віртуальний нейрон, тому немає значення мати кілька входів зміщення, коли є один вихід - це було б еквівалентно простому додаванню різних ваг зміщення в один зміщення.

У картах функцій, які є результатом першого прихованого шару, кольори більше не зберігаються окремо *. Ефективно кожна карта функції - це "канал" у наступному шарі, хоча вони зазвичай візуалізуються окремо, де вхід візуалізується разом із каналами, що поєднуються. Інший спосіб думати з цього приводу полягає в тому, що окремі канали RGB на вихідному зображенні мають на вході 3 "карти функцій".

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

Як ви пояснюєте в запитанні, в CNN, однакові ваги (включаючи зміщення ваги) поділяються в кожній точці на карті вихідних функцій. Таким чином, кожна карта особливостей має власну вагу зміщення, а також previous_layer_num_features x kernel_width x kernel_heightваги з'єднання.

Так, так, ваш приклад, що призводить до (3 x (5x5) + 1) x 32загальної ваги для першого шару, є правильним для CNN з першим прихованим шаром, який обробляє вхід RGB на 32 окремі карти функцій.


* Ви можете заплутатися, побачивши візуалізацію ваг CNN, які можна розділити на кольорові канали, якими вони працюють.


Я думав, що існує один зміщення на фільтр ... чи є у нас різні визначення віртуальних нейронів?
Чарлі Паркер

@CharlieParker За кількістю параметрів один зміщення на фільтр такий же, як одне зміщення на нейрон. Існує кілька еквівалентних способів перегляду архітектури карти функцій CNN. Одне було б як "повністю розширений" шар з великою кількістю нейронів, які мають спільні параметри. Іншим було б розглянути кожен згортковий фільтр як опис локальних зв'язків одного нейрона, і шар неодноразово використовує цей самий нейрон. Тому я думаю, що ми, мабуть, маємо те саме визначення нейрона, але відповідь описує речі лише з одного погляду.
Ніл Слейтер

Цікаво, я думаю, ви думаєте про кожен нейрон для кожного фільтра, я чомусь думав про кожну активацію для кожного нейрона, але фільтр активується в багатьох місцях на зображенні, так що, звичайно, я мав на увазі ще багато нейронів.
Чарлі Паркер

1

Це властивість CNN, щоб вони використовували загальні ваги та ухили (однакові ваги та зміщення для всіх прихованих нейронів у шарі), щоб виявити ту саму особливість. Це призводить до більш глибокого навчання порівняно з простими нейронними мережами. Ви можете прочитати це як посилання:

http://deeplearning.net/tutorial/lenet.html
http://neuralnetworksanddeeplearning.com/chap6.html#introducing_convolutional_networks


Я задаю інше запитання. Моє запитання щодо упередженості. З формули випливає, що для кожної картки зображень є різні ваги, але однакові зміщення використовуються для всіх карт функцій.
користувач
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.