Як працюють наступні шари згортки?


29

Це питання зводиться до того, як саме працюють шари згортки .

Припустимо, у мене є відтінків сірого. Отже, зображення має один канал. У першому шарі я кратну кратну згортку з фільтрами та накладками. Тоді у мене є ще один шар згортки з згортками та фільтрами. Скільки функціональних карт у мене є?n×m3×3k15×5k2

Світло типу 1

Перший шар виконується. Після цього у мене є карти функцій (по одній для кожного фільтра). Кожен з них має розмір . Кожен окремий піксель був створений шляхом взяття пікселів із вкладеного вхідного зображення. n × m 3 3 = 9k1n×m33=9

Потім наноситься другий шар. Кожен окремий фільтр застосовується окремо до кожної карти функцій . Це призводить до отримання карток характеристик для кожної з карток зображень . Отже, після другого шару є функції функції. Кожен окремий піксель кожної із створених нових карт функцій створюється, беручи "пікселів" вкладеної карти попередніх функцій.k 1 k 1 × k 2 5 5 = 25k2k1k1×k255=25

Система повинна вивчити параметри .k133+k255

Свиток 2.1 типу

Як і раніше: перший шар виконується. Після цього у мене є карти функцій (по одній для кожного фільтра). Кожен з них має розмір . Кожен окремий піксель був створений шляхом взяття пікселів із вкладеного вхідного зображення. n × m 3 3 = 9k1n×m33=9

На відміну від раніше: потім наноситься другий шар. Кожен окремий фільтр застосовується до одного регіону, але всі картки представлені раніше. Це призводить до загальної кількості зображень після виконання другого шару. Кожен окремий піксель кожної із створених нових карт функцій створюється, беручи "пікселі" вкладених карт функцій раніше.k 25 5 = 25 k 2k2k255=25k2

Система повинна вивчити параметри .к133+к255

Свиток 2.2 типу

Як і вище, але замість того, щоб мати параметрів на фільтр, які потрібно вивчити та отримати просто скопійовано для інших вхідних карт, ви маєте параметрів, які потрібно вивчити.55=25к133+к2к155

Питання

  1. Зазвичай використовується тип 1 або тип 2?
  2. Який тип використовується в Alexnet ?
  3. Який тип використовується в GoogLeNet ?
    • Якщо ви говорите тип 1: Чому згортання мають сенс? Вони не лише множать дані з постійною?1×1
    • Якщо ви говорите тип 2: Поясніть, будь ласка, квадратичну вартість ("Наприклад, у мережі глибокого зору, якщо два звивисті шари пов'язані ланцюгом, будь-яке рівномірне збільшення кількості їх фільтрів призводить до квадратичного збільшення обчислень")

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

Бонусне питання 1

Чи об'єднуються об'єднання завжди лише на одній карті функцій чи це також робиться на кількох картах функцій?

Бонусне питання 2

Я відносно впевнений, що тип 1 правильний, і у мене щось не так з папером GoogLe. Але є і 3D-згортки. Скажімо, у вас є 1337 карт функцій розміром і ви застосовуєте фільтр . Як просунути фільтр по картах функцій? (Зліва направо, зверху вниз, перша карта зображень для останньої карти об’єктів?) Чи важливо це, поки ви це робите послідовно?42×3143×4×5

Моє дослідження


Трохи пізніше: аналіз та оптимізація архітектур конволюційних нейронних мереж , особливо глава 2 та рисунок 2.2 та рисунок 2.3.
Мартін Тома

Відповіді:


5

Я не впевнений у альтернативах, описаних вище, але загальновживаною методологією є:

Перед застосуванням нелінійності кожен вихід фільтра лінійно залежить від усіх функціональних карт перед патчем, тому ви закінчуєте фільтри після другого шару. Загальна кількість параметрів - 3 ˙к2 .3˙3˙к1+к1˙5˙5˙к2

Бонус 1: Об’єднання проводиться за картою функцій, окремо.

Бонус 2: Порядок "ковзання" значення не має. Фактично кожен вихід обчислюється на основі попереднього шару, тому відповіді вихідного фільтра не залежать один від одного. Їх можна обчислити паралельно.


1
Я повністю забув про це питання. Тим часом я написав магістерську дисертацію про CNN. Глава 3 пояснює, як вони працюють.
Мартін Тома

1
Для уточнення: тип 2.2 є правильним (описано у цій відповіді)
Мартін Тома

1
У випадку, якщо хтось дійсно хоче бачити це в дії, я реалізував глибоку згорнуту нейронну мережу в листах google. Ви можете бачити фільтри та вхідне зображення, піксель для пікселя, оскільки він працює через CNN, поки CNN не спрогнозує відповідь: docs.google.com/spreadsheets/d/…
bwest87

5

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

Відповідь полягає в тому, що фільтри для другого згорткового шару не мають такої ж розмірності, як фільтри для першого шару. Взагалі фільтр повинен мати таку ж кількість розмірів, що і його входи . Отже, у першому шарі conv вхід має 2 виміри (тому що це зображення). Таким чином фільтри також мають два виміри. Якщо в першому шарі conv є 20 фільтрів, то вихід першого шару conv являє собою стек з 20 2D карт функцій. Отже, вихід першого шару conv є тривимірним, де розмір третього виміру дорівнює кількості фільтрів першого шару.

Тепер цей 3D-стек формує вхід до другого шару conv. Оскільки вхід у другий шар є 3D, фільтри також повинні бути 3D. Зробіть розмір фільтрів другого шару в третьому вимірі рівним кількості карт функцій, які були виходами першого шару.

Тепер ви просто конвестуєте над першими двома вимірами; рядки та стовпці. Таким чином, згортка кожного фільтра 2-го шару зі стеком функціональних карт (вихід першого шару) дає єдину карту характеристик.

Отже, розмір третього виміру виходу другого шару дорівнює кількості фільтрів другого шару.


2

Перевірте цю лекцію та цю візуалізацію

Зазвичай його використовують згортання типу 2.1. На вході у вас є зображення NxMx1, після першого згортання ви отримаєте N_1xM_1xk_1, тож ваше зображення після першого згортання матиме k_1 каналів. Нові параметри N_1 і M_1 залежатимуть від кроку S і підкладки P: N_1 = (N - 3 + 2P) / S + 1, ви обчислите M_1 за аналогією. Для першого шару conv у вас буде ваги 3x3xk_1 + k_1. Додано k_1 для зміщення в нелінійній функції.

На другому шарі у вас є вхідне зображення розміром N_1xM_1xk_1, де k_1 - нове число каналів. А після другого згортання ви отримуєте зображення (масив) N_2xM_2xk_2. У вас є параметри 5x5xk_2xk_1 + k_2 у другому шарі.

Для згортання 1x1 з фільтрами k_3 та вхідним NxMxC (C - кількість вхідних каналів) ви отримаєте нове зображення (масив) NxMxk_3, тому 1x1 має сенс. Вони були представлені в цій роботі

Бонус 1: об’єднання застосовується на карті функції.

Для детальної інформації дивіться слайди курсу CNN на Стенфорді - у вас є приємна візуалізація того, як згортання підсумовується з кількох вхідних каналів.


2
Відповіді, що стосуються лише посилань, не відмовляють - посилання можуть припинити роботу. Чи можете ви вбудувати відповідну інформацію?
Шон Оуен

1
візуалізація була дуже корисною. Мій момент епіфанії був, коли я зрозумів, що фільтри 3D, а не 2D.
kmace

1
Чудові посилання, сортуйте речі для мене. Але ваша відповідь здається невідповідною тому, що сказано у посиланнях, зокрема у conv-шарі 2, кожне сприйнятливе поле є 3D-розмірами 5x5xk_1, тому кількість параметрів має бути 5 * 5 * k_1 * k_2 (плюс зміщення).
Даніель Шлауг

@DanielSchlaug ви праві, я виправив відповідь.
pplonski

1

к1331к1

к255к1к2

Тобто ядра в згортковому шарі охоплюють глибину виходу попереднього шару.

1×1кн11кн-1

Спекуляція:

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

мнкнмнкн+1кн

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