Я читав Книгу Йошуа Бенджіо про глибоке навчання, і це написано на сторінці 224:
Конволюційні мережі - це просто нейронні мережі, які використовують згортку замість загального множення матриць принаймні в одному з їх шарів.
однак я не був на 100% впевнений у тому, як «замінити матричне множення на згортку» в математично точному сенсі.
Що мене дійсно цікавить, це визначити це для векторів введення в 1D (як у ), тому я не буду мати введення як зображення та намагаюся уникати згортки в 2D.
Так, наприклад, у «нормальних» нейронних мережах операції та схема подачі даних можуть бути стисло виражені, як у примітках Ендрю Нґ:
f ( z ( l + 1 ) ) = a ( l + 1 )
де - обчислюється вектор перед тим, як пропустити його через нелінійність . Нелінійність діє перо введення на вектор а - вихід / активація прихованих одиниць для відповідного шару. f z ( l )
Це обчислення мені зрозуміло, оскільки множення матриць для мене чітко визначено, однак, просто замінити множення матриці на згортку мені здається незрозумілим. тобто
f ( z ( l + 1 ) ) = a ( l + 1 )
Я хочу переконатися, що я розумію вищевказане рівняння математично точно.
Перше питання, що виникає з заміною множення матриці на згортку, полягає в тому, що, як правило, один ідентифікує один рядок з точковим твором. Отже, чітко відомо, як ціле стосується ваг і що відображає вектор розмірності, як зазначено . Однак, коли хтось замінює його згортаннями, мені не зрозуміло, який рядок чи ваги відповідає яким записам у . Для мене навіть не зрозуміло, що має сенс представляти ваги вже як матриця насправді (я наведу приклад, щоб пояснити цю точку пізніше) a ( l ) z ( l + 1 ) W ( l ) a ( l )
У випадку, коли вхід і виходи всі в 1D, чи просто обчислюють згортку відповідно до його визначення, а потім передають її через особливість?
Наприклад, якщо у нас був такий вектор як вхідний:
і у нас були такі ваги (можливо, ми це навчилися із задньою опорою):
то згортання таке:
було б правильним просто передати нелінійність через це і трактувати результат як прихований шар / представлення (припустимо, що зараз немає об'єднання )? тобто наступним чином:
( підручник Стенфордської UDLF, я думаю, обрізає краї, де згортання чомусь поєднується з 0, чи потрібно нам це обрізати?)
Це як має працювати? Принаймні для вхідного вектора в 1D? Чи не вектор?
Я навіть намалював нейронну мережу, як це, мабуть, виглядає так, як я думаю: