2 / 24 · Теория
Свёртка и взаимная корреляция
Каковы результаты взаимной корреляции и перевёрнутого ядра для [1,2;4,5] с ядром [1,0;0,-1]?
Уроки доступны бесплатно. Запишитесь, чтобы сохранять прогресс.
Установите ориентацию ядра
Свёртка нейронных сетей обычно использует взаимную корреляцию: соединяет хранимое ядро с входным окном без переворота. Математическая свёртка переворачивает ядро. Уравнение индексов полезнее имени оператора. Симметричное ядро может скрыть ошибку ориентации, поэтому начните верификацию с асимметричных значений.
Для одного канала, единичного шага, без дополнения и прореживания используйте:
Здесь 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. Этот пример выявляет ориентацию изменением знака.