Связь между CNN и фильтром Габора

Я учусь использовать фильтры Габора для извлечения связанных с ориентацией и масштабирования функций из изображений. С другой стороны, нейронная сеть свертки также может извлекать функции, включая ориентацию и масштаб. Есть ли доказательства того, что фильтры в CNN выполняют ту же функцию, что и фильтры Габора? Или плюсы и минусы того и другого.


person luw    schedule 24.07.2019    source источник


Ответы (1)


По моему личному опыту, в традиционной архитектуре глубокого обучения (такой как AlexNet) когда визуализируются слои ближе к началу, они очень напоминают фильтры Габора.

Визуализация слоев в предварительно обученном AlexNet (взято с cs231n.github.io)

Возьмите эту визуализацию первых двух слоев предварительно обученного AlexNet (взято из cs231n.github.io Андрея Карпати). Некоторые из изученных фильтров выглядят точно так же, как фильтры Габора. Так что да, есть свидетельства того, что CNN работает (частично) так же, как фильтры Габора.

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

Но если у вас есть больше данных, вы могли бы заставить глубокую CNN изучить гораздо больше высокоуровневых функций, чем фильтры Габора, которые могут быть более полезными для задачи, для которой вы извлекаете эти функции (например, классификация). Я надеюсь, что это дает некоторые разъяснения.

person dapperdan    schedule 23.11.2019