Altifigence Academy

2 / 24 · Теория

Свёртка и взаимная корреляция

Каковы результаты взаимной корреляции и перевёрнутого ядра для [1,2;4,5] с ядром [1,0;0,-1]?

Установите ориентацию ядра

Свёртка нейронных сетей обычно использует взаимную корреляцию: соединяет хранимое ядро с входным окном без переворота. Математическая свёртка переворачивает ядро. Уравнение индексов полезнее имени оператора. Симметричное ядро может скрыть ошибку ориентации, поэтому начните верификацию с асимметричных значений.

Для одного канала, единичного шага, без дополнения и прореживания используйте:

y[h,w]=b+∑r=0R−1∑s=0S−1x[h+r,w+s]k[r,s]y[h,w]=b+\sum_{r=0}^{R-1}\sum_{s=0}^{S-1}x[h+r,w+s]k[r,s]

Здесь h,w задают выход, а r,s — элемент ядра. Ни один индекс ядра не перевёрнут.

Разобранный пример

Используйте входное окно [1,2;4,5] и ядро [1,2;3,4]. Взаимная корреляция даёт 1×1+2×2+4×3+5×4=37. Переворот обеих осей ядра даёт [4,3;2,1], получая 4+6+8+5=23. Добавление bias два даёт 39 и 25. Спецификация определяет нужную операцию.

Расширьте вход до [1,2,3;4,5,6;7,8,9]. Исходное ядро даёт [37,47;67,77]. Верхнее правое окно — [2,3;5,6], сумма произведений 2+6+15+24=47. Перемещение окна меняет входные координаты; оно никогда не меняет порядок хранимых весов. Отрицательные веса следуют тому же правилу индексации. Например, [1,0,-1] явно вычитает правый отсчёт из левого.

При нескольких каналах накапливайте окно каждого канала в одном выходном элементе. У каждого выходного канала свой набор ядер и один bias. Каналы — индексы свёртки суммы, а не пространственные позиции скольжения окна. Групповая свёртка ограничивает эти связи и требует явного отображения групп.

Записывайте входное окно, порядок ядра, частичные произведения и bias. Проверка лишь итогового массива может пропустить компенсирующие ошибки индексации на слишком регулярных наборах. Асимметричные примеры снижают риск. Сравните соглашения тензоров и весов с официальной документацией ONNX Conv; числовые примеры урока построены независимо.

Попробуйте сами

Каковы результаты взаимной корреляции и перевёрнутого ядра для [1,2;4,5] с ядром [1,0;0,-1]?

Прочитать объяснение

Взаимная корреляция равна 1−5=−4. Перевёрнутое ядро [−1,0;0,1] даёт −1+5=4. Этот пример выявляет ориентацию изменением знака.

Выбор действует в этом браузере. Его можно изменить внизу страницы.