Обзор самых революционных работ в сообществе компьютерного зрения / глубокого обучения - ResNets

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

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

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

Две основные причины, по которым точность таких сетей падает, а не повышается:

  1. Исчезающие / взрывающиеся градиенты
  2. Проблема деградации

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

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

ResNet [1] представляет эти «сопоставление идентификаторов» или «пропуск подключений», которые пропускают один или несколько слоев, как показано на рисунке:

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

вместо обычного отображения H (x), и исходное отображение преобразовывается в:

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

Первоначально предложенная структура ResNet представлена ​​ниже:

Здесь стоит обратить внимание на пунктирные линии, обозначающие линейную проекцию. В идеале, чтобы выполнить сопоставление идентичности, размеры как F (x), так и X должны быть одинаковыми, но когда это не так, мы используем вектор проекции Ws, чтобы помочь сопоставить размеры.

Другое исследование было проведено, чтобы точно определить, когда следует вводить эти «пропускные соединения»!

Все возможные комбинации были протестированы и опробованы перед тем, как перейти к окончательной версии остаточного блока, имеющего полную предварительную активацию, то есть (e) на приведенном выше рисунке.

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

Популярные варианты ResNets

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

ResNeXt

На основе оригинальной работы была предложена альтернатива под названием ResNeXt [2] со следующим строительным блоком:

Эта модель принимает стратегию ResNets повторяющихся слоев, одновременно включая стратегию разделения-преобразования-слияния простым и расширяемым способом. Блок может быть похож на сеть Inception [3], где мы выполняем различные преобразования (1x1 Conv, 3x3 Conv, 5x5 Conv, MaxPooling) и складываем их вместе, тогда как здесь мы объединяем различные преобразования, складывая их вместе.

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

Предлагаемый строительный блок имеет три возможных варианта:

Авторы также заявляют, что модель легче обучить, чем сеть Inception [3] по разным наборам данных, поскольку у нее есть только один гиперпараметр, который нужно настроить, в отличие от Inception, где у нас есть больше гиперпараметров для настройки.

DenseNet

Другой популярный вариант ResNet - DenseNet [4], где авторы попытались решить проблему исчезающих градиентов, установив дополнительные соединения. В DenseNet они обеспечивают максимальный поток информации между уровнями в сети, напрямую соединяя все уровни друг с другом. Чтобы сохранить прямую связь, каждый слой получает дополнительные входные данные от всех предыдущих слоев и передает свои собственные карты характеристик всем последующим слоям. Модель представлена ​​ниже:

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

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

l -й слой получает в качестве входных данных карты объектов со всех своих предыдущих слоев:

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

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

Я надеюсь, что это поможет читателям лучше понять эту новаторскую работу.

Все рисунки в статье взяты из оригинальных статей в ссылках.

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

[1]. К. Хе, Х. Чжан, С. Рен и Дж. Сунь. Глубокое остаточное обучение для распознавания изображений. Препринт arXiv arXiv: 1512.03385,2015.

[2]. С. Се, Р. Гиршик, П. Доллар, З. Ту и К. Хе. Агрегированные остаточные преобразования для глубоких нейронных сетей. Препринт arXiv arXiv: 1611.05431v1,2016.

[3]. К. Сегеди, В. Лю, Ю. Цзя, П. Серманет, С. Рид, Д. Ангелов, Д. Эрхан, В. Ванхаук и А. Рабинович. Углубляем извилины. В материалах конференции IEEE по компьютерному зрению и распознаванию образов, страницы 1–9,2015.

[4]. Г. Хуанг, З. Лю, К. К. Вайнбергер и Л. Маатен. Плотно связанные сверточные сети. arXiv: 1608.06993v3,2016.