Найкраще пояснення конволюційних нейронних мереж в Інтернеті!

CNN мають широке застосування в розпізнаванні зображень та відео, системах рекомендацій та обробці природних мов. У цій статті приклад, який я візьму, стосується Computer Vision. Однак основна концепція залишається такою ж і може бути застосована до будь-якого іншого випадку використання!

Короткий підсумок Нейронних мереж, ось дуже чітко пояснена серія статей.

CNN, як і нейронні мережі, складаються з нейронів з вагомою вагою та зміщенням. Кожен нейрон отримує кілька входів, приймає зважену суму над ними, передає його через функцію активації та відповідає на вихід. Вся мережа має функцію втрат, і всі поради та рекомендації, розроблені для нейронних мереж, все ще застосовуються до CNN. Досить прямо, правда?

Отже, чим відрізняються конволюційні нейронні мережі, ніж нейронні мережі?

CNN працюють над об'ємами!

Що ми маємо на увазі під цим?

1. Приклад зображення RGB (назвемо його

На відміну від нейронних мереж, де вхід є вектором, тут вхід є багатоканальним зображенням (у цьому випадку 3 канали).

Є й інші відмінності, про які ми поговоримо через деякий час.

Перш ніж зайти глибше, давайте спочатку розберемося, що означає згортання.

Звитий

2. Складання зображення за допомогою фільтра

Беремо фільтр 5 * 5 * 3 і просуваємо його по всьому зображенню і по ходу переносимо крапковий виріб між фільтром і шматками вхідного зображення.

3. Ось як це виглядає

За кожним узятим крапковим продуктом результат - скалярний.

Отже, що відбувається, коли ми перетворюємо повне зображення на фільтр?

4. Це!

Я залишаю це на вас, щоб зрозуміти, як настає "28". (Підказка: Є 28 * 28 унікальних позицій, де фільтр можна поставити на зображення)

Тепер повернемося до CNN

Шар згортки є основним будівельним блоком згорткової нейронної мережі.

5. Конвеєрний шар

Шар згортки складається з набору незалежних фільтрів (6 показано на прикладі). Кожен фільтр незалежно поєднується із зображенням, і ми закінчуємо 6 карт карти форми 28 * 28 * 1.

Припустимо, у нас є ряд послідовностей згортки послідовно. Що ж відбувається тоді?

6. Складові шари в послідовності

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

Я покажу вам приклад тренованої мережі.

7. Фільтри в навченій мережі

Погляньте на фільтри в першому шарі (це наші фільтри 5 * 5 * 3). Завдяки розповсюдженню спини вони налаштували себе на краплі кольорових шматочків і країв. По мірі заглиблення в інші шари згортки фільтри роблять крапкові продукти на вході попередніх шарів згортки. Отже, вони беруть менші кольорові шматки або краї і роблять з них більші шматки.

Погляньте на зображення 4 і уявіть сітку 28 * 28 * 1 як сітку з 28 * 28 нейронів. Для конкретної карти функцій (вихід, отриманий при згортанні зображення з певним фільтром, називається картою характеристик), кожен нейрон з'єднаний лише з невеликим відрізком вхідного зображення, і всі нейрони мають однакові ваги зв'язку. Тому знову повертаємось до відмінностей між CNN та нейронною мережею.

CNN мають пару понять, які називаються спільним використанням параметрів та локальним підключенням

Обмін параметрами - це розподіл ваг усіма нейронами на певній карті функції.

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

Це допомагає зменшити кількість параметрів у всій системі та робить обчислення більш ефективними.

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

Шари басейну

Шар об'єднання - ще один будівельний блок CNN.

Пул

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

Найпоширеніший підхід, який використовується в басейні, - це максимум об'єднання.

Макс пулу

Типова архітектура CNN

Типова архітектура CNN

Ми вже обговорювали шари згортання (позначаються CONV) та об'єднання шарів (позначаються POOL).

RELU - це просто нелінійність, яка застосовується аналогічно нейронним мережам.

ФК - повністю пов'язаний шар нейронів в кінці CNN. Нейрони в повністю пов'язаному шарі мають повне з'єднання з усіма активаціями попереднього шару, як це спостерігається у звичайних Нейронних мережах, і працюють аналогічно.

Сподіваюся, ви зараз зрозуміли архітектуру CNN. Існує багато варіацій цієї архітектури, але, як я вже згадував, основна концепція залишається тією ж. Якщо у вас виникли сумніви / відгуки, будь ласка, прокоментуйте.

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

Ви можете піти за мною, щоб прочитати більше статей TechnologyMadeEasy!

І якщо ви хочете, щоб ваші друзі теж прочитали це, натисніть кнопку Поділитися!

Посилання: http://cs231n.github.io/convolutional-networks/#overview