В этой статье рассматривается ResNet [1]. ResNet может иметь очень глубокую сеть, состоящую из до 152 слоев, изучая функции остаточного представления вместо непосредственного изучения представления сигнала.

ResNet вводит пропуск соединения (или ярлыка соединения), чтобы соответствовать входным данным предыдущего уровня следующему уровню без каких-либо изменений входных данных. Пропускное соединение позволяет иметь более глубокую сеть, и, наконец, ResNet становится Победителем ILSVRC 2015 в области классификации, обнаружения и локализации изображений, а также Победителем MS COCO 2015 обнаружения и сегментации. Это статья CVPR за 2016 год с более чем 19000 цитирований. (Сик-Хо Цанг @ средний)

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

Что покрыто

  1. Проблемы простой сети (исчезающий / увеличивающийся градиент)
  2. Пропуск / ярлык подключения в остаточной сети (ResNet)
  3. Архитектура ResNet
  4. Дизайн узких мест
  5. Исследование абляции
  6. Сравнение с современными подходами (классификация изображений)
  7. Сравнение с современными подходами (обнаружение объектов)

1. Проблемы простой сети

Для обычных сетей глубокого обучения они обычно имеют сверточные слои, а затем полностью подключенные (FC) слои для задач классификации, такие как AlexNet, ZFNet и VGGNet, без каких-либо пропущенных / быстрых подключений, мы называем их простыми сетями. здесь. Когда обычная сеть становится глубже (слои увеличиваются), возникает проблема исчезновения / взрыва градиентов.

Исчезающие / взрывающиеся градиенты

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

Когда сеть глубокая, и умножение n этих маленьких чисел станет нулевым (исчезнет).

Когда сеть является глубокой, и умножение n этих больших чисел станет слишком большим (разнесенным).

Мы ожидаем, что более глубокая сеть будет иметь более точные прогнозы. Однако ниже показан пример 20-слойная простая сеть имеет меньшую ошибку обучения и ошибку теста, чем 56-слойная простая сеть, проблема ухудшения возникает из-за исчезающих градиентов.

2. Пропуск / ярлык подключения в остаточной сети (ResNet)

Чтобы решить проблему исчезающих / взрывающихся градиентов, добавляется соединение пропуска / быстрого доступа, чтобы добавить вход x к выходу после нескольких слоев веса, как показано ниже:

Следовательно, вывод H (x) = F (x) + x. Слои весов на самом деле должны изучить своего рода остаточное отображение: F (x) = H (x) -x.

Даже если для весовых слоев существует исчезающий градиент, у нас всегда есть идентификатор x, который нужно перенести обратно на более ранние слои.

3. Архитектура ResNet

На приведенном выше рисунке показана архитектура ResNet.

  1. VGG-19 [2] (внизу) - это современный подход в ILSVRC 2014.
  2. Простая сеть из 34 слоев (в центре) рассматривается как более глубокая сеть VGG-19, то есть более сверточных слоев.
  3. 34-слойная остаточная сеть (ResNet) (вверху) - это простая сеть с добавлением пропуска / быстрого подключения.

Для ResNet существует 3 типа соединений для пропуска / быстрого доступа, когда входные размеры меньше, чем выходные размеры.

(A) Ярлык выполняет сопоставление идентификаторов с дополнительным нулевым заполнением для увеличения размеров. Таким образом, никаких лишних параметров.

(B) Ярлык проекции используется только для увеличения размеров, остальные ярлыки идентичны. Требуются дополнительные параметры.

(C) Все ярлыки являются проекциями. Дополнительные параметры больше, чем у (B).

4. Дизайн узкого места

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

Сверточные слои 1 × 1 добавляются в начало и конец сети, как показано на рисунке (справа). Это метод, предложенный в Network In Network и GoogLeNet (Inception-v1). Оказывается, 1 × 1 conv может уменьшить количество подключений (параметров), но при этом не сильно ухудшит производительность сети. (Если интересно, посетите мой обзор.)

С узким местом 34-слойная ResNet становится 50-слойной ResNet. И есть более глубокая сеть с узким местом: ResNet-101 и ResNet-152. Общая архитектура всей сети приведена ниже:

Отмечается, что VGG-16/19 имеет 15,3 / 19,6 млрд FLOPS. ResNet-152 по-прежнему имеет меньшую сложность, чем VGG-16/19 !!!!

5. Исследование абляции

5.1 Обычная сеть VS ResNet

Когда используется простая сеть, 18-слойный лучше, чем 34-слойный, из-за проблемы исчезающего градиента.

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

Если мы сравним 18-слойную обычную сеть и 18-слойную ResNet, особой разницы нет. Это связано с тем, что проблема исчезающего градиента не возникает для мелкой сети.

5.2 Другие настройки

Пакетная нормализация (из Inception-v2) используется после каждой конверсии. Используется тестирование 10 урожаев. Принята полностью сверточная форма с усреднением оценок по нескольким шкалам {224, 256, 384, 480, 640}. Для усиления ансамбля используются 6 моделей. Это некоторые методы, использованные в предыдущей структуре глубокого обучения. Если интересно, пожалуйста, также не стесняйтесь читать мои обзоры.

6. Сравнение с современными подходами (классификация изображений)

6.1 ILSVRC

Сравнивая ResNet-34 A, B и C, B немного лучше, чем A, а C немного лучше, чем B, потому что вводятся дополнительные параметры, и все они дают около 7% ошибок.

Увеличивая глубину сети до 152 уровней, получается 5,71% первой пятерки ошибок, что намного лучше, чем у VGG-16, GoogLeNet (Inception-v1) и PReLU-Net.

При тестировании 10 культур + полной конверсии с несколькими, ResNet-152 может получить 4,49% ошибок.

При добавлении техники ансамбля из 6 моделей частота ошибок составляет 3,57%.

6.2 CIFAR-10

С пропуском подключения мы можем углубиться. Однако, когда количество уровней увеличивается с 110 до 1202, обнаруживается, что частота ошибок увеличивается с 6,43% до 7,93%, что является открытым вопросом в статье. Тем не менее, ResNet-1202 не имеет проблем с оптимизацией, т.е. он все еще может быть объединен.

7. Сравнение с современными подходами (обнаружение объектов)

Внедряя ResNet-101 в Faster R-CNN [3–4], ResNet получает большую производительность, чем VGG-16.

И ResNet, наконец, заняла 1-е место в области обнаружения, локализации, обнаружения COCO и сегментации COCO в ImageNet !!!

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

  1. [CVPR, 2016] [ResNet]
    Глубокое остаточное обучение для распознавания изображений
  2. [2015 ICLR] [VGGNet]
    Очень глубокие сверточные сети для распознавания крупномасштабных изображений
  3. [2015 NIPS] [Faster R-CNN]
    Быстрее R-CNN: на пути к обнаружению объектов в реальном времени с помощью сетей региональных предложений
  4. [2017 TPAMI] [Faster R-CNN]
    Быстрее R-CNN: на пути к обнаружению объектов в реальном времени с помощью сетей региональных предложений

Мои обзоры

  1. Обзор: Faster R-CNN (обнаружение объектов)
  2. Обзор: пакетная нормализация (Inception-v2 / BN-Inception) - 2-е место, превзошедшее производительность человеческого уровня в ILSVRC 2015 (классификация изображений)
  3. Обзор: PReLU-Net, первый превзошедший человеческий уровень в ILSVRC 2015 (классификация изображений)
  4. Обзор: GoogLeNet (Inception v1) - Победитель ILSVRC 2014 (Классификация изображений)
  5. Обзор: VGGNet - 1 место, занявшее второе место (классификация изображений), победитель (локализация) в ILSVRC 2014