В этой истории рассматривается VGGNet [1]. VGGNet была изобретена VGG (Группа визуальной геометрии) из Оксфордского университета, хотя VGGNet является 1-м занявшим второе место, а не победителем ILSVRC (Конкурс крупномасштабного визуального распознавания ImageNet. ) 2014 г. в задаче классификации, которая значительно превосходит ZFNet (Победитель в 2013 году) [2] и AlexNet (Победитель в 2012 году) [3]. И GoogLeNet - победитель ILSVLC 2014, я также расскажу об этом позже.) Тем не менее, VGGNet превосходит GoogLeNet и выиграл задачу локализации на ILSVRC 2014.

И это первый год, когда есть модели глубокого обучения, которые дают коэффициент ошибок менее 10%. Наиболее важным является то, что существует множество других моделей, построенных на основе VGGNet или основанных на идее 3 × 3 переворота VGGNet для других целей или других областей. Вот почему нам нужно знать о VGGNet! Вот почему это статья ICLR 2015 года с более чем 14000 цитирований, когда я писал эту статью. (Сик-Хо Цанг @ средний)

Обычно говорят только о VGG-16 и VGG-19. Я буду говорить о
VGG-11, VGG-11 (LRN), VGG-13, VGG-16. (Conv1), VGG-16 и VGG-19 по результатам исследования абляции в статье.

Плотное тестирование, которое обычно игнорируется, также будет охвачено.

ImageNet - это набор данных, включающий более 15 миллионов изображений с высоким разрешением и около 22 000 категорий. ILSVRC использует подмножество ImageNet из примерно 1000 изображений в каждой из 1000 категорий. Всего существует примерно 1,3 миллиона обучающих изображений, 50 000 изображений для проверки и 100 000 изображений для тестирования.

Что мы расскажем:

  1. Использование фильтров 3 × 3 вместо фильтров большого размера (например, 11 × 11, 7 × 7)
  2. VGG-16 и VGG-19 на основе исследования абляции
    (VGG-11, VGG-11 (LRN), VGG-13, VGG-16 (Conv1 ) также включены.)
  3. Многоуровневое обучение
  4. Многоуровневое тестирование
  5. Плотное тестирование
  6. Модель Fusion
  7. Сравнение VGGNet и GoogLeNet
  8. Задача локализации

1. Использование фильтров 3x3

Используя 2 слоя фильтров 3 × 3, он фактически уже покрыл область 5 × 5, как показано на рисунке выше. Используя 3 слоя фильтров 3 × 3, он фактически уже покрыл эффективную площадь 7 × 7. Таким образом, фильтры большого размера, такие как 11 × 11 в AlexNet [3] и 7 × 7 в ZFNet [2], действительно не нужны. (Если интересно, перейдите к моим рассказам о ZFNet [5] и AlexNet [6].)

Другая причина в том, что меньше параметров. Предположим, что есть только 1 фильтр на слой, 1 слой на входе, и исключите смещение:

1 слой фильтра 11 × 11, количество параметров = 11 × 11 = 121
5 слоев фильтра 3 × 3
, количество параметров = 3 × 3 × 5 = 45
Количество параметров уменьшено на 63%

1 слой фильтра 7 × 7, количество параметров = 7 × 7 = 49
3
слоев фильтра 3 × 3, количество параметров = 3 × 3 × 3 = 27
Количество параметров уменьшено на 45%

Используя 1 слой фильтра 5 × 5, количество параметров = 5 × 5 = 25
Используя 2 слоя фильтра 3 × 3 , количество параметров = 3 × 3 + 3 × 3 = 18
Количество параметров уменьшено на 28%

Чем больше сеть, тем больше сеть для обучающих изображений. Есть также проблема исчезающего градиента. Но проблема исчезающего градиента была решена путем пропуска соединения в ResNet [9].

Если требуется изучить меньшее количество параметров, это лучше для более быстрой сходимости и уменьшения проблемы переобучения.

2. VGG-16 и VGG-19 на основе исследования абляции

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

  1. Прежде всего, VGG-11 уже имеет коэффициент ошибок 10,4%, что аналогично показателю ZFNet в ILSVRC 2013. VGG-11 установлен в качестве эталона.
  2. VGG-11 (LRN) получает частоту ошибок 10,5%, это вариант с дополнительной операцией локальной нормализации ответа (LRN), предложенной AlexNet. При сравнении VGG-11 и VGG-11 (LRN) частота ошибок не увеличивается, что означает, что LRN бесполезен. Фактически, LRN больше не используется в последующих сетях глубокого обучения, вместо этого используется пакетная нормализация (BN).
  3. VGG-13 получает коэффициент ошибок 9,9%, что означает, что дополнительный переход помогает повысить точность классификации.
  4. VGG-16 (Conv1) дает коэффициент ошибок 9,4%, что означает, что дополнительные три сверточных слоя 1 × 1 помогают повысить точность классификации. 1 × 1 усл на самом деле помогает увеличить нелинейность решающей функции. Не меняя размеров ввода и вывода, 1 × 1 conv выполняет отображение проекции с той же высокой размерностью. Этот метод важен в статье под названием «Сеть в сети» [7], а также в GoogLeNet [8] (победитель ILSVRC 2014) и ResNet [9] (победитель ILSVRC 2015). В ближайшем будущем я расскажу больше об обзорах GoogLeNet и ResNet.
  5. VGG-16 имеет частоту ошибок 8,8%, что означает, что сеть глубокого обучения все еще улучшается за счет добавления количества уровней.
  6. VGG-19 получает частоту ошибок 9,0%, что означает, что сеть глубокого обучения НЕ улучшается за счет добавления количества слоев. Таким образом, авторы перестают добавлять слои.

Наблюдая за добавлением слоев один за другим, мы можем заметить, что VGG-16 и VGG-19 начинают сходиться, и улучшение точности замедляется. Когда люди говорят о VGGNet, они обычно упоминают VGG-16 и VGG-19.

3. Многоуровневое обучение

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

Для одномасштабного обучения изображение масштабируется до меньшего размера, равного 256 или 384, т. Е. S = 256 или 384. Поскольку сеть принимает входные изображения размером 224 × 224 Только. Масштабированное изображение будет обрезано до 224 × 224. Концепция следующая:

Для многомасштабного обучения изображение масштабируется с меньшим размером, равным диапазону от 256 до 512, то есть S = [256; 512], а затем обрезается до 224 × 224. Поэтому с диапазоном S, мы вводим в сеть различные масштабированные объекты для обучения.

Используя многомасштабное обучение, мы можем представить, что оно более точно для объектов тестового изображения с объектами разного размера.

VGG-13 снизил частоту ошибок с 9,4% / 9,3% до 8,8%.
VGG-16
снизил частоту ошибок с 8,8% / 8,7% до 8,1%.
VGG-19
снизил уровень ошибок с 9,0% / 8,7% до 8,0%.

4. Многоуровневое тестирование

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

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

VGG-13 снизил частоту ошибок с 9,4% / 9,3% до 9,2%.
VGG-16
снизил частоту ошибок с 8,8% / 8,7% до 8,6%.
VGG-19
снизил частоту ошибок с 9,0% / 8,7% до 8,7 / 8,6 %.

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

VGG-13 снизил частоту ошибок с 9,2% / 9,2% до 8,2%,
VGG-16
снизил частоту ошибок с 8,6% / 8,6% до 7,5%,
VGG-19
снизил частоту ошибок с 8,7% / 8,6% до 7 0,5%,

5. Плотное (сверточное) тестирование

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

Сеть VGGNet отличается от той, которая используется для обучения, как показано ниже:

Первый FC заменяется конвектором 7 × 7.
Второй и третий FC заменяются преобразованием 1 × 1
Таким образом, все слои FC заменяются сверточными слоями.

Во время тестирования в VGGNet тестовое изображение напрямую проходит через VGGNet и получает карту оценок класса. Эта карта оценок класса пространственно усреднена и представляет собой вектор фиксированного размера.

Есть только 2 раза тестирования, если мы также включим горизонтальный переворот.

По средним результатам как для плотных, так и для нескольких культур частота ошибок VGG-16 и VGG-19 снижается до 7,2% и 7,1%.

6. Модель Fusion

Комбинируя VGG-16 и VGG-19, а также многомасштабное обучение, многомасштабное тестирование, многоуровневое и плотное кадрирование, частота ошибок снижается до 6,8%.

7. Сравнение VGGNet и GoogLeNet

По сравнению с GoogLeNet с использованием 7 сетей, который имеет коэффициент ошибок 6,7%, VGGNet с использованием 2 сетей, плюс многомасштабное обучение, многомасштабное Тестирование, многоцелевое и плотное тестирование имеют коэффициент ошибок 6,8%, что является конкурентоспособным.

Только с 1-net, VGGNet имеет частоту ошибок 7,0%, что лучше, чем GoogLeNet, у которого частота ошибок 7,9%.

Однако, по данным ILSVRC 2014, VGGNet имеет только 7,3% ошибок, что на данный момент занимает 1-е место.

8. Задача локализации (сообщение обновлено 2 сентября 2018 г.)

Для задачи локализации ограничивающая рамка представлена ​​четырехмерным вектором, в котором хранятся его координаты центра, ширина и высота. Таким образом, цель логистической регрессии заменяется евклидовой потерей, которая наказывает отклонение предсказанных параметров ограничивающей рамки от наземной истины.

Можно выбрать, будет ли прогноз ограничивающей рамки совместно использоваться для всех классов (одноклассная регрессия, SCR) или зависит от класса (для каждого класса регрессии, PCR). . В первом случае последним слоем является 4-D, а во втором - 4000-D (поскольку в наборе данных 1000 классов).

Как показано выше, PCR лучше, чем SCR. И точная настройка всех слоев лучше, чем просто точная настройка 1-го и 2-го слоев FC. Приведенные выше результаты получены только при использовании только центрального кадрирования.

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

VGGNet даже превосходит GoogLeNet, как показано выше, и выиграл задачу локализации на ILSVRC 2014.

VGGNet показывает лучшие результаты по набору данных VOC 2007, 2012 и Caltech 256. И у него также есть конкурентный результат по набору данных Caltech 101.

Я расскажу о GoogLeNet [8], ResNet [9] и так далее для классификации изображений.
Следите за обновлениями.

использованная литература

  1. [2015 ICLR] [VGGNet]
    Очень глубокие сверточные сети для распознавания крупномасштабных изображений
  2. [2014 ECCV] [ZFNet]
    Визуализация и понимание сверточных сетей
  3. [2012 NIPS] [AlexNet]
    Классификация ImageNet с глубокими сверточными нейронными сетями
  4. Рейтинг ILSVRC 2014
    http://www.image-net.org/challenges/LSVRC/2014/results#clsloc
  5. Обзор ZFNet - Победитель ILSVRC 2013 (Классификация изображений)
  6. Обзор AlexNet, CaffeNet - Победитель ILSVRC 2012 (Классификация изображений)
  7. [2014 ICLR] [NIN]
    Сеть в сети
  8. [2015 CVPR] [GoogLeNet]
    Углубляясь в свертки
  9. [CVPR, 2016] [ResNet]
    Глубокое остаточное обучение для распознавания изображений

Также прочтите

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