Pull to refresh

Comments 9

А почему используется термин "кросс-корреляция" вместо более привычного "свёртка"?

Как верно подметил @badsynt, за этими терминами стоят несколько разные операции. В двумерном случае свертка – это кросс-корреляция с ядром, повернутым на 180°.

Если ядро свертки/кросс-корреляции симметрично относительно поворота на 180 градусов, то разницы и нет...

..

Ok, но просто в литературе (например, по обработке изображений) привычно видеть именно свёртку с ядром. Был смысл переходить к кросс-корреляции? А с учётом того, что из-за этого где-то знак меняется (спасибо @badsyntи вам за напоминание о знаке, я забыл) – это может быть не просто непривычно, но и спровоцировать ошибки у тех, кто привык к старому подходу или при их общении с новичками.

Тем более нам надо не сравнить сигнал с ядром, а именно обработать.

При обработке изображений почти всегда используется кросс-корреляция, но при этом часто называют операцию сверткой. Для симметричных ядер это не критично, но я использовал термин "кросс-корреляция" вместо "свертки" просто для математической строгости.

Та же история и со свёрточными нейронными сетями: там так же в прямом проходе используется кросс-корреляция, а не свертка. Ядра там как правило не симметричные. Свертка используется уже при обратном распространении ошибки.

Видимо потому что кто-то с понятием корреляции познакомился чуть раньше - в теории вероятностей, например. А кто-то другой узнал о (быстрой) свёртке через теорему о свёртке, потому и считает корреляцию её частным случаем. Холивар, как я понимаю.

Да не, не совсем холивар, я не возмущаюсь (термин-то использован корректно), а интересуюсь причинами выбора, отличного от (вроде бы) общепринятого.

Кросс- корреляция и свёртка взаимосвязаны: Стрела времени у них направлена в противоположные стороны (шутка).

КроссКорр(t)*g(t)=Свертка(-t)*g(t)

Sign up to leave a comment.

Articles