В сверточных нейронных сетях (CNN) матрица весов на каждом шаге переворачивает свои строки и столбцы для получения матрицы ядра, прежде чем приступить к свертке. Это объясняется в серии видео Хьюго Ларошелле здесь :
Вычисление скрытых карт будет соответствовать выполнению дискретной свертки с каналом из предыдущего уровня с использованием матрицы ядра [...], и это ядро вычисляется из матрицы скрытых весов , где мы переворачиваем строки и колонны.
Если бы мы сравнили приведенные шаги свертки с умножением регулярных матриц, как в других типах NN, целесообразность была бы ясным объяснением . Тем не менее, это может быть не самое подходящее сравнение ...
В цифровой обработке изображений применение свертки фильтра к изображению ( это отличное видео на YouTube для практической интуиции ), похоже, связано с:
- Тот факт, что свертка ассоциативна, а (перекрестная) корреляция - нет.
- Возможность применения фильтров в частотной области изображения в качестве умножения, поскольку свертка во временной области эквивалентна умножению в частотной области ( теорема о свертке ).
В этой конкретной технической среде корреляция DSP определяется как:
которая по сути является суммой всех ячеек в произведении Адамара:
где - функция фильтра (выраженная в виде матрицы), а I ( x , y ) - значение пикселя изображения в местоположении ( x , y ) :
Цель кросс-корреляции , чтобы оценить , насколько это похоже зонд изображение тестового изображения. Расчет взаимно-корреляционного отображения основан на теореме о свертке.
С другой стороны, свертка определяется как:
что, пока фильтр симметричен, это то же самое, что и операция корреляции с перевернутыми строками и столбцами фильтра:
В вычислительном отношении обе операции являются внутренним произведением Фробениуса, что составляет вычисление следа умножения матрицы .
Вопросы (формулировка после комментариев и первого ответа):
- Связано ли использование сверток в CNN с БПФ?
Из того, что я до сих пор собираю, ответ - нет. БПФ были использованы для ускорения реализации сверток в графических процессорах . Однако FFT обычно не являются частью структуры или функций активации в CNN, несмотря на использование сверток на этапах предварительной активации.
- Является ли свертка и взаимная корреляция в CNN эквивалентными?
Да, они эквивалентны.
- Если это просто как «нет никакой разницы», то какой смысл подбрасывать веса в матрицу ядра?
Ни ассоциативность свертки (полезная в математических доказательствах), ни какие-либо соображения относительно FT и теоремы о свертке не применимы. Фактически, кажется, что переворот даже не происходит (взаимная корреляция просто ошибочно обозначается как свертка) (?).