ZFNet был представлен в статье Визуализация и понимание сверточных сетей, написанной Мэттью Д. Зейлером и Робом Фергусом. . Эта архитектура не выиграла конкурс, но ее вывод был реализован победителем того года (Clarifai, основанный Zeiler, ошибка теста 11,19%). Эта статья примечательна своей визуализацией и пониманием внутренней работы и поведения модели CNN, классифицирующей изображение. В статье мы также познакомились с методом, который сейчас широко известен как Перенос обучения.

Благодаря победителю 2012 года AlexNet количество представленных моделей CNN для ILSVRC 2013 значительно увеличилось, но большинство из них были основаны на пробах и ошибках без какого-либо понимания того, как и почему CNN показали себя так хорошо.

Давайте поймем это (как объяснили авторы).

Модель CNN

  • Сопоставляет цветное входное 2D-изображение x_i через ряд слоев с вектором вероятности y_i_hat по C различным классам, где каждый слой состоит из
1. Convolution of the previous layer output with a set of learned filters, passing the responses through a rectified linear function 
2. Optionally max pooling over local neighborhoods 
3. Optionally a local contrast operation that normalizes the responses across feature maps (it's not relevant anymore)
  • имеет несколько обычных полностью связанных верхних слоев с последним слоем в качестве классификатора softmax.
  • обучается с использованием большого набора N помеченных изображений {x, y}, где метка y_i — это дискретная переменная, указывающая на истинный класс.
  • функция кросс-энтропийных потерь — p(x)log(q(x)), подходящая для классификации изображений, используется для сравнения y_hat и y.
  • параметры обучаются путем обратного распространения производной потерь относительно параметров по всей сети и обновления параметров с помощью стохастического градиентного спуска в пакетах.

Обновление АлексНет

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

DeconvNet присоединяется к каждому из своих слоев ConvNet, обеспечивая непрерывный путь обратно к пикселям изображения. Чтобы проверить данную активацию ConvNet, все остальные активации в слое обнуляются, а карты объектов передаются в качестве входных данных на присоединенный слой DeconvNet. Затем последовательно

1. unpooled (uses the switch which records the location of the local max in maxpool), 
2. rectified, and 
3. filtered (uses transposed version of same filters in convnet)

восстановить активность нижнего слоя, которая привела к выбранной активации. Это повторяется до тех пор, пока не будет достигнуто пространство входных пикселей.

Они обучают AlexNet воспроизводить процент ошибок теста в пределах 0,1% от сообщенного значения в 2012 году. Визуализируя первый и второй уровни AlexNet, они наблюдают две конкретные проблемы:

  • Фильтры на уровне 1 представляют собой смесь чрезвычайно высоких и низких частот с небольшим охватом средних частот. Без средних частот возникает цепной эффект: глубокие функции могут учиться только на чрезвычайно высоко- и низкочастотной информации.

Примечание. Информация о пространственной частоте изображения описывает информацию о периодическом распределении «светлого» и «темного» на этом изображении. Высокие пространственные частоты соответствуют таким функциям, как острые края и мелкие детали, тогда как низкие пространственные частоты соответствуют таким функциям, как глобальная форма.

  • Слой 2 показывает артефакты алиасинга, вызванные большим шагом 4, используемым в свертках 1-го слоя. Псевдоним возникает, когда частота дискретизации слишком низкая.

Примечание. На каждом уровне CNN (если не используется повышающая дискретизация или DeconvNet) мы в основном выполняем дискретизацию (дискретизацию) изображения. Если частота дискретизации слишком низкая (недостаточная выборка), мы получим эффекты наложения на дискретизированном изображении, такие как неровные границы/края, повторяющиеся текстуры и т. д.

Чтобы исправить эти проблемы, авторы внесли следующие изменения в архитектуру AlexNet:

  • Уменьшен размер фильтра 1-го слоя с 11×11 до 7×7. Фильтры размером 11x11 пропускали много важной информации.

  • Сделал шаг свертки 2, а не 4. Оказалось, что фильтр с шагом 2 сохраняет много информации о пикселях.

Эта новая архитектура сохраняет гораздо больше информации в функциях 1-го и 2-го уровня. Итак, окончательная архитектура ZFNet выглядит так:

Обучение

Во время обучения визуализация фильтров первого слоя показала, что некоторые из них доминируют. Чтобы бороться с этим, авторы перенормировали каждый фильтр в сверточных слоях до фиксированного радиуса RMS-значения 1e-01.

Модель обучалась на обучающем наборе ImageNet 2012 (1,3 миллиона изображений, распределенных по 1000 различным классам) на одном графическом процессоре NVIDIA GTX 580 с 3 ГБ памяти.

Увеличение изображения:
То же, что и AlexNet. (здесь 224x224)

Отсев:
То же, что AlexNet.

Инициализатор ядра:
1e-02 для каждого уровня

Инициализатор смещения:
0 для каждого слоя

Размер партии:
такой же

Оптимизатор:
То же

Уменьшение веса L2:
Нет

Менеджер скорости обучения:
то же самое.

Всего эпох:
70

Общее время:
12 дней

Результаты

В одиночной модели ZFNet ошибки тестов в топ-1 и топ-5 составляют 38,4% и 16,5% соответственно, что на 1,7% ниже, чем у AlexNet. Их окончательное представление состояло из ансамбля из 6 CNN (в среднем 5 ZFNet и сеть, такая же, как ZFNet, но на уровне Conv3, Conv4, Conv5 с 512, 1024, 512 каналами соответственно), что дало уровень ошибок 14,8%.

Глубина модели важна для получения хорошей производительности:

Удаление двух полносвязных слоев привело к небольшому увеличению ошибки, хотя они содержали большинство параметров модели. Удаление двух средних сверточных слоев также привело к относительно небольшой разнице в частоте ошибок. Однако удаление как средних слоев свертки, так и полностью связанных слоев дало модель только с 4 слоями, производительность которой была значительно хуже.

Перенос обучения:

Наконец, авторы показали, что модель, обученная на ImageNet, хорошо обобщается на другие наборы данных. Для этого они сохранили слои 1–7 обученной модели ImageNet фиксированными и обучили новый классификатор softmax сверху (для соответствующего количества классов), используя обучающие изображения нового набора данных.

Визуализации

Визуализация функций

Проекции каждого слоя показывают иерархический характер признаков в сети. Слой 2 реагирует на углы и другие сочетания краев и цветов.

Слой 3 имеет более сложную инвариантность, захватывая похожие текстуры, такие как узоры сетки и текстовые узоры.

Слой 4 показывает значительную вариацию, но более специфичен для класса, например, собачьи морды и птичьи лапы.

Слой 5 показывает целые объекты со значительными вариациями позы, такие как клавиатуры и собаки.

Эволюция функций во время обучения

Здесь можно увидеть, что нижние слои модели сходятся в течение нескольких эпох. Однако верхние слои развиваются только после значительного количества эпох (40–50), демонстрируя необходимость обучения моделей до полной сходимости.

Неизменность функций

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

Чувствительность окклюзии

При таком подходе к классификации изображений возникает естественный вопрос: действительно ли модель определяет местоположение объекта на изображении или просто использует окружающий контекст?

Авторы пытаются ответить на этот вопрос, систематически закрывая различные части входного изображения серым квадратом и отслеживая выходные данные классификатора. В приведенных выше примерах показаны визуализации из самой сильной карты признаков верхнего слоя свертки, в дополнение к активности на этой карте (суммированной по пространственным местоположениям) в зависимости от положения «окклюдера». Это ясно показывает, что модель локализует объекты в пределах сцены, так как вероятность правильного класса и активности на карте объектов значительно падает, когда объект закрыт. Это показывает, что модель, обученная классификации, очень чувствительна к локальной структуре изображения, а не просто использует широкий контекст сцены.

Примечания

Таким образом, документ сохраняет свое значение для ознакомления нас с точкой зрения, которая нам требуется при структурировании архитектуры CNN. Методы визуализации, представленные здесь для визуализации активности в модели, по-прежнему актуальны для вывода о производительности моделей или определения методов предварительной обработки данных для получения лучших результатов. Авторы обратили внимание на тот факт, что модели CNN не генерируют функции со случайными, не поддающимися интерпретации шаблонами (черный ящик — как многие думают), но раскрывают несколько интуитивно желательных свойств, таких как композиционность, увеличение неизменности и различение классов по мере того, как мы поднимаемся по уровням модели CNN.

Первоначально опубликовано на https://dev.to 25 июля 2020 г.