Что такое остаточная нейронная сеть?

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

Специалисты реализуют традиционные модели остаточных нейросетей с двух- или трёхслойными пропусками, содержащими пакетную нормализацию и нелинейность между ними. Ученые, занимающиеся данными, также используют дополнительную матрицу весов для изучения весов пропуска в некоторых случаях. Для описания этого явления используется термин “Шоссейные сети”. Модели, состоящие из множества параллельных пропусков, называются “Денсенец”. Недостаточные сети можно также назвать обычными сетями, когда речь идет об остаточных нейронных сетях.

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

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

Пропуск освобождает сеть от осложнений, упрощая ее, используя очень мало слоев на начальном этапе обучения. Это ускоряет обучение в десять раз, минимизируя эффект исчезновения градиентов. Почему? Потому что едва ли есть какие-то слои, которые можно пропустить. После этого, сеть, в конечном счете, откидывает назад опытные слои во время изучения функционального пространства.

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

Что было необходимо для остаточных нейронных сетей?

После того, как AlexNets отпраздновала триумф на классификационном конкурсе LSVRC 2012 года, глубокие остаточные нейронные сети, вероятно, стали самой инновационной и гениальной инновацией в истории глубокого обучения и компьютерного зрения. ResNet позволяет обучать сотни, если не тысячи слоев, при этом достигая увлекательной производительности.

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

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

Проблема исчезающего градиента

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

Перезагрузка и глубокое обучение

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

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

Понимание проблемы с многослойными

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

Как ResNet решает проблему с градиентом исчезновения.

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

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

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

Заключительные Мысли

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