Какова интуиция за переключением фильтров во время свертки? - PullRequest
0 голосов
/ 17 февраля 2020

Я видел, что при использовании функции conv2d от Theano фильтры переворачивались как по вертикали, так и по горизонтали. Это почему? И имеет ли это значение в случае сверточной нейронной сети?

1 Ответ

0 голосов
/ 18 февраля 2020

Потому что именно так свертка определяется математически. Без переключения фильтра операция называется взаимная корреляция . Преимущество свертки заключается в том, что она обладает более хорошими математическими свойствами.

Однако в контексте сверточной нейронной сети не имеет значения, используете ли вы свертку или взаимную корреляцию, они эквивалентны. Это связано с тем, что веса фильтров изучаются во время обучения, то есть они обновляются, чтобы минимизировать функцию затрат. В CNN, который использует операцию взаимной корреляции, изученные фильтры будут равны перевернутым изученным фильтрам CNN, который использует операцию свертки (при условии, что для обоих используются точно одинаковые условия обучения, то есть одинаковые инициализация, входные данные, количество эпох и т. Д.). c.). Таким образом, выходы таких двух CNN будут одинаковыми для одних и тех же входов.

Операция кросс-корреляции немного более интуитивна и проще в реализации (потому что не выполняется переключение), и это, вероятно, причина, по которой другие платформы, такие как Tensorflow и Pytorch используют его вместо фактической свертки (хотя они все еще называют это сверткой, хотя, возможно, по историческим причинам или в соответствии с терминологией другим структурам, которые используют фактическую свертку).

...