Каждый год победители ILSVRC делились интересными идеями, и 2014 год был особенным в этом отношении. На протяжении большинства лет задачами вызова были:

  • Классификация изображений. Предскажите классы объектов, представленных на изображении.
  • Локализация одного объекта: классификация изображений + рисование ограничивающей рамки вокруг одного примера каждого присутствующего объекта.
  • Обнаружение объектов: классификация изображений + рисование ограничивающей рамки вокруг каждого присутствующего объекта.

К 2014 году стало очевидно, что по мере того, как появляется все больше и больше новых архитектур, ни одна архитектура CNN не может справиться со всеми задачами, и победители 2014 года были идеальным воплощением этого.

VGGNet был представлен в статье Карен Симонян и Эндрю Зиссерман под названием Очень глубокие сверточные сети для крупномасштабного распознавания изображений. Архитектура VGGNet выиграла конкурс в задаче локализация и заняла 2-е место в задаче классификации. Красота этой сети заключается в ее архитектурной простоте и подкреплении идеи наличия более глубоких CNN для повышения производительности.

Улучшения по сравнению с лучшими архитектурами CNN

С 2012 года предпринимались многочисленные попытки всячески улучшить AlexNet. В 2013 году и Overfeat, и ZFNet улучшили свою производительность по сравнению с AlexNet за счет использования меньшего размера рецептивного окна (7 × 7) и меньшего шага (2) в своем первом сверточном слое. Сверточные фильтры малого размера ранее использовались Dan Ciresan Net, но их сети были значительно менее глубокими, и они не оценивали крупномасштабный набор данных. В VGGNet авторы использовали маленькие рецептивные поля 3 × 3 (это наименьший размер, чтобы уловить понятие левого/правого, вверх/вниз, центра) во всех 16- и 19-уровневых сетях с шагом 1 и отступом 1, поэтому что пространственное разрешение сохраняется после каждой свертки. Необязательный пространственный пул был выполнен слоем максимального пула уменьшенного размера 2 x 2 с шагом 2 вместо 3 x 3. Причиной такой реализации, как указано авторами, являются:

  • 2 или 3 последовательных слоя 3x3 имеют эффективное рецептивное поле 5x5 или 7x7 соответственно.
  • поскольку за каждой сверточной операцией следует нелинейная активация ReLU, поэтому их кратность делает функцию принятия решения более разборчивой, чем один ReLU,
  • слой сверточных фильтров 7x7 с C-каналами имеет параметры 7C x 7C, тогда как слой сверточных фильтров 3x3 с C-каналами имеет только параметры 3C x 3C, что на 81% меньше.

HowardNet и Overfeat также улучшили свою производительность за счет использования аналогичного многократного масштабирования изображений как во время обучения, так и при тестировании сети вместо использования единого масштаба, как у AlexNet.

Обучение

Обучение и оценка 140 миллионов параметров VGGNet проводились на 4 графических процессорах NVIDIA Titan Black, установленных в одной системе. Обучение с несколькими графическими процессорами использует параллелизм данных и выполняется путем разделения каждого пакета обучающих изображений на несколько пакетов графических процессоров, которые обрабатываются параллельно на каждом графическом процессоре. После вычисления пакетных градиентов графического процессора они усредняются для получения градиента всего пакета. Вычисление градиента выполняется синхронно между графическими процессорами, поэтому результат такой же, как и при обучении на одном графическом процессоре.
Несмотря на большее количество параметров и большую глубину VGGNet по сравнению с AlexNet, для сходимости потребовалось меньшее количество эпох. , и авторы предполагают, что это может быть связано с неявной регуляризацией, вызванной большей глубиной и меньшими размерами сверточных фильтров, а также предварительной инициализацией определенных слоев.

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

Предварительная обработка: из каждого пикселя вычиталось среднее значение пикселей в обучающем наборе.

Увеличение изображения:

  • Обучение с одним масштабом. Сначала авторы обучили сеть с использованием изображений, масштабированных до 256. Затем, чтобы ускорить обучение сети с изображениями, масштабированными до 384, она была инициализирована с предварительно обученными весами с учетом масштаба. 256, и они использовали меньшую начальную скорость обучения 1e-03.
  • Многомасштабное обучение. Каждое обучающее изображение масштабировалось по отдельности путем случайной выборки масштабов из определенного диапазона [Smin, Smax], где Smin = 256 и Smax = 512. Из соображений скорости авторы обучали многомасштабные модели с помощью тонкая настройка всех слоев одномасштабной модели с одинаковой конфигурацией, предварительно обученной с фиксированным масштабом 384.
  • Multi-Crop: наконец, чтобы передать в сеть входные изображения фиксированного размера 224 × 224, масштабированные обучающие изображения были случайно обрезаны (одна обрезка на изображение — за итерацию SGD). Чтобы еще больше расширить обучающий набор, кадры подверглись случайному горизонтальному отражению и случайному изменению цвета RGB, как это было сделано во время AlexNet.

Выпадение: то же, что и AlexNet.

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

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

Размер пакета: 256

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

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

Диспетчер скорости обучения: то же самое

Всего эпох: 74

Общее время: 21 день (макс. для VGG-19)

Результаты

Увеличение времени тестирования. Во время тестирования сеть плотно применялась к масштабированным тестовым изображениям аналогично Overfeat. А именно, полностью связанные слои были сначала преобразованы в сверточные слои (первый слой FC в сверточный слой 7 × 7, последние два слоя FC в сверточные слои 1 × 1). Полученная полностью сверточная сеть затем применялась ко всем (необрезанным) изображениям. Результатом стала карта оценок классов с количеством каналов, равным количеству классов, и переменным пространственным разрешением, зависящим от размера входного изображения. Наконец, чтобы получить вектор оценок класса фиксированного размера для изображения, карта оценки класса пространственно усредняется (объединяется). Авторы также дополняют набор тестов, переворачивая изображения по горизонтали; апостериорные значения класса soft-max исходных и перевернутых изображений усреднялись для получения окончательных оценок для изображений.

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

Оценка по одной шкале. Размер тестового изображения был установлен следующим образом:

  • Q = S для фиксированного масштаба обучающего изображения S и
  • Q = 0,5(Smin + Smax) для флуктуирующего S ∈ [Smin, Smax].

Авторы заметили, что ошибка классификации уменьшалась с увеличением глубины ConvNet: с 11 слоев в A до 19 слоев в E (но после этого насыщалась). Дрожание шкалы во время обучения (S ∈ [256; 512]) приводит к значительно лучшим результатам, чем обучение на изображениях с фиксированной наименьшей стороной (S = 256 или S = ​​384), даже несмотря на то, что во время тестирования используется одна шкала. Это подтвердило, что увеличение тренировочного набора за счет дрожания масштаба действительно полезно для сбора статистики многомасштабных изображений.

Наименее эффективная сеть A, достигшая 10,4 % ошибки топ-5, подтвердила, что глубокая сеть с небольшими фильтрами превосходит неглубокую сеть с более крупными фильтрами.

Многомасштабная оценка: здесь авторы оценивали эффект дрожания шкалы во время тестирования. Он состоял из запуска модели по нескольким масштабированным версиям тестового изображения (соответствующим разным значениям Q) с последующим усреднением полученных апостериорных классов. Модель, обученная с переменной S ∈ [Smin; Smax] оценивали в более широком диапазоне размеров Q = {Smin, 0,5(Smin + Smax), Smax}.

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

Multi-Crop и Dense. Как упоминалось ранее, самые эффективные сети D (VGG16) и E (VGG19) добились немного лучших результатов с Multi-Crop и Dense. Обрезка и плотная оценка вместе.

Окончательная подача в ансамбле VGG16 и VGG19

Как и в случае с AlexNet (2012) и ZFNet (2013), авторы также представили ансамбль (объединив выходные данные нескольких моделей путем усреднения их апостериорных классов soft-max) своих лучших моделей D и Е; всего две, что значительно меньше моделей, чем в предыдущих представлениях, и значительно превосходит их. Последний представленный топ-5 с ошибкой 6,8% превзошел все ранее представленные результаты.

Примечания

Архитектура VGGNet, простота в лучшем виде по сравнению с ее конкурентом GoogLeNet, могла предложить несколько важных идей. Именно здесь было положено начало использованию теперь повсеместных сверточных слоев 3x3 во всей архитектуре. И VGGNet, и GoogLeNet, победители 2014 года, используя концепцию эффективного рецептивного поля, подчеркнули важность глубины в визуальных репрезентациях, что в конечном итоге стало ступенькой к революционному преобразованию, которое произойдет в следующем году.

Первоначально опубликовано на https://dev.to 1 августа 2020 г.