В последнее время сверточные нейронные сети (CNN) используются в качестве мощного инструмента для решения многих проблем машинного обучения и компьютерного зрения. В этой статье мы стремимся дать представление о том, как использование фильтра Габора для повышения производительности многих архитектур CNN. В частности, существующие модели CNN (ResNet, AlexNet, VGG16, InceptionV3).

1. Введение

В последние годы сверточные нейронные сети (CNN) достигли большого успеха во многих задачах машинного обучения и компьютерного зрения. Кроме того, был разработан широкий спектр методов для повышения производительности или облегчения обучения CNN. В 2007 году Пейджин Джи [1] и др. Представили подход к распознаванию транспортных средств на основе зрения, основанный на банках фильтров Габора. Частичный набор фильтров Габора и метод частичной выборки были введены для уменьшения размера и объема вычислений. Частичный метод, основанный на функциях Габора, может уменьшить размерность и избыточность функций, и, следовательно, потребуется гораздо меньше памяти и вычислений. Экспериментальные результаты показали, что частичный банк фильтров Габора в некоторых ситуациях превосходит глобальный банк фильтров Габора. Наилучший показатель распознавания, который они получили, составил 95,17% при использовании частичных функций Габора и метода глобальной выборки на краевом изображении транспортного средства. Для сравнения, группа исследователей из Университета Пердью [2] действительно использовала устойчивость к ошибкам приложений CNN и полезность фильтров Габора, чтобы предложить энергоэффективную и быструю методологию обучения для CNN. Они разработали и реализовали несколько конфигураций CNN на основе фильтров Габора, чтобы получить наилучший компромисс между точностью и энергией. Следовательно, [1, 2] показывают нам, что с помощью фильтров Габора мы устраняем значительную часть энергоемких компонентов обучения обратного распространения, тем самым достигая значительного снижения энергии обучения. А для повышения точности [3] показал, что CNN со слоями Габора показывают лучшую производительность на нескольких наборах данных. CNN с использованием слоя Габора в наборе данных «Собаки против кошек» значительно превосходит «классический» CCN по показателям точности до 6%. В этой статье мы покажем, как использование фильтра Габора с прогрессивным изменением размера в CNN может повысить точность вашей модели, а также сократить время обучения.

2-фильтры Габора

Вейвлеты Габора [5] были изобретены Деннисом Габором с использованием сложных функций, которые служат основой для преобразований Фурье в приложениях теории информации. Важным свойством вейвлетов является то, что произведение его стандартных отклонений минимизировано как во временной, так и в частотной областях. Фильтры Габора широко используются для моделирования рецептивных полей простых клеток зрительной коры. Вейвлеты Габора (ядра или фильтры) определяются следующим образом:

где (x, y) - положение пикселя в пространственной области, ω - радиальная центральная частота, θ - ориентация фильтра Габора, а σ - стандартное отклонение округленной функции Гаусса по осям x и y.

В реальных приложениях обработки изображений особенности обычно извлекаются с помощью банка фильтров Габора, параметры которых устанавливаются в соответствии с подходом, предложенным в [6]. Частоты ω𝑛 и ориентации 𝜃𝑚 фильтров Габора определяются по следующим уравнениям:

Устанавливается как 𝜎 ≈ 𝜋 / 𝜔, что позволяет определить отношение между 𝜎 и 𝜔. Задается равномерным распределением U (0, 𝜋). В этой работе мы таким же образом инициализировали веса слоя Габора.

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

3-прогрессивное изменение размера

Этот подход предназначен для демонстрации рабочего процесса и техники построения нейронных сетей, известных как прогрессивное изменение размера. Прогрессивное изменение размера было успешно использовано Джереми Ховардом, который раньше достигал 10% лучших результатов в Соревновании Planet Kaggle, и он использует его на протяжении всего курса fast.ai Практическое глубокое обучение для кодеров.

4-зачатие

В этой статье мы будем реализовывать конкретно метод, использованный в статье [3], заменяя первый сверточный слой слоем Габора и обучая модели.

после внедрения Gabor CNN мы действительно следовали определенному процессу обучения применению прогрессивного изменения размера.

5-Реализация

5.1 Набор данных

  • Набор данных, с которым мы работали, предназначен для болезней растений и содержит 39 классов. Здоровые растения относятся к этим классам, есть также класс Background, он относится к изображениям, на которых нет растений или растений, которых нет в наших классах.
  • Ссылка на данные находится здесь, особая благодарность Марко Арсеновичу, предоставившему этот набор данных.

5.2-Реализация фильтра Габора:

В этом проекте мы работали с Pytorch и fastai для создания наших моделей, следующий код представляет собой реализацию слоя Gabor в pytorch:

Этот код предоставлен iKintosh

5.3-Тренировочный процесс

Все модели были обучены соблюдать следующие шаги:

  • Шаг 1: Последний слой был обучен на 39 классах. Вначале мы выбираем размер изображения 128, чтобы позже мы могли выполнять прогрессивное изменение размера.
  • Шаг 2: размораживаем все слои модели и тренируем ее заново.
  • Шаг 3: мы применяем прогрессивное изменение размера, поэтому мы изменяем размер изображения со 128 на исходный размер, равный 265, затем мы размораживаем только последние два слоя модели и обучаем ее.
  • Шаг 4: размораживаем последние три слоя модели и обучаем ее.
  • Последний шаг: размораживаем всю модель и обучаем ее.

6-Результаты

В этом разделе мы представляем преимущества использования фильтров Габора в CNN наряду с прогрессивным изменением размера. В следующей таблице представлены общие результаты нашего эксперимента.

PR: прогрессивное изменение размера
*: не обучено

Gabor CNN в большинстве случаев достигает лучших результатов после прогрессивного изменения размера. Мы можем заметить, что наши модели Gabor превосходят обычные CNN, как мы видим, для ResNet18 мы смогли достичь точности 99,31% вместо 98,99% в обычном ResNet18. И лучшая точность, которая у нас была, составила 99,55% с Gabor ResNet34. Результат очень хороший и многообещающий. В целом модели были улучшены на 1% от нормальной производительности, что доказывает, что использование фильтра Габора внутри CNN помогает нам получить лучшие результаты. Но с другой стороны, даже хороший результат по точности моделей Габора требует больше времени для предсказания, чем обычные модели, он почти в 4 раза выше, чем у обычных CNN, что делает их плохим выбором для задач классификации в реальном времени.

7-Заключение

В последнее время методы глубокого обучения превзошли традиционные подходы машинного обучения практически по всем параметрам. CNN - один из главных вкладчиков в этот успех. Чтобы удовлетворить постоянно растущую потребность в решении более сложных задач, сети глубокого обучения становятся все больше и больше. Однако обучение этих больших сетей требует больших вычислительных усилий и затрат энергии. В этой работе обширные эксперименты показывают, что CNN Gabor значительно улучшаются при использовании Gabor по сравнению с обычными CNN.

Статьи:

[1] П. Джи, Л. Джин, Х. Ли, Классификация типов транспортных средств на основе зрения с использованием частичного банка фильтров Габора, в 2007 г. Международная конференция IEEE по автоматизации и логистике, IEEE, 2007 г., стр. 1037–1040.

[2] С. Шакиб Сарвар, П. Панда, К. Рой, Энергоэффективные сверточные нейронные сети с быстрым обучением и фильтром Габора, на Международном симпозиуме IEEE / ACM по маломощной электронике и дизайну (ISLPED) в 2017 году.

[3] А.Алексеев, А.Бобе, GaborNet: фильтры Габора с обучаемыми параметрами в глубоких сверточных нейронных сетях.

[4] С. БЕРИША, Классификация изображений с использованием фильтров Габора и машинного обучения, 2009.

[5] Д. Габор. Теория общения. Часть 1: Анализ информации. Журнал Института инженеров-электриков - Часть III: Радио и техника связи, 93 (26): 429–441, 1946.

[6] С. Мешгини, А. Агаголзаде и Х. Сейедараби, «Распознавание лиц с использованием банка фильтров Габора, анализа основных компонентов ядра и опорной векторной машины», Международный журнал компьютерной теории и инженерии, вып. 4. С. 767–771, 2012.

[7] С. Луан, Б. Чжан, С. Чжоу, К. Чен, Дж. Хан, В. Ян, Дж. Лю Габор Сверточные сети, в IEEE Transactions по обработке изображений 2018 г.

Вебография: