Я вивчаю конволюційні нейронні мережі (CNN) завдяки їх застосуванню в комп'ютерному зорі. Я вже знайомий зі стандартними нейронними мережами, що рухаються вперед, тому я сподіваюся, що деякі люди тут можуть допомогти мені зробити додатковий крок у розумінні CNN. Ось що я думаю про CNN:
- У традиційних NN-каналах подачі даних у нас є навчальні дані, коли кожен елемент складається з функціонального вектора, який ми вводимо до NN у "вхідному шарі", тому при розпізнаванні зображення ми могли би просто мати кожен піксель на одному вході. Це наші вектори функцій. Крім того, ми могли б вручну створити інші - ймовірно, менші - функції векторів.
- Перевага CNN полягає в тому, що він може генерувати більш сильні вектори функцій, більш інваріантні спотворенням зображення та їх положенню. Як показано на наступному зображенні (з цього підручника ), CNN генерують карти функцій, які потім подаються до стандартної нейронної мережі (так що це дійсно гігантський крок попередньої обробки).
- Те, як ми отримуємо ці "кращі" характеристики, полягає в чергуванні згортки та під вибірки. Я розумію, як працює під вибірка. Для кожної карти функцій просто візьміть підмножину пікселів, інакше ми зможемо оцінити значення пікселів.
Але мене головним чином бентежить те, як працює крок згортання. Мені знайомі згортки з теорії ймовірностей (щільність для суми двох випадкових величин), але як вони працюють у CNN і чому вони ефективні?
Моє запитання подібне до цього, але, зокрема, я не впевнений, чому працює перший крок згортання.