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

Хотя термин «глубокое обучение» был представлен мировой аудитории в 1986 году Риной Дечтер, одной из многих выдающихся пионеров в области глубокого обучения, идея его возникла еще в 1943 году, когда Уолтер Питтс и Уоррен Маккалок построили компьютерную модель, основанную на нейронных сетях человеческого мозга, которая, несомненно, стала отправной точкой для многих теоретических исследований по этому вопросу.

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

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

Значение глубины и проблема деградации глубоких нейронных сетей

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

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

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

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

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

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

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

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

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

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

Предположим, у нас есть нейронная сеть с «n» слоями, которая выдает ошибку обучения «x». Теперь рассмотрим более глубокую нейронную сеть со слоями «m» (m ›n). Когда мы обучаем эту сеть, мы ожидаем, что она будет работать не хуже, чем предыдущая модель (n слоев), потому что первые «n» слоев из общего числа «m» слоев приведет к такой же точности, и если модель требует более сложного представления, тогда оставшиеся «mn» слои будут изучать ее, и если больше обучения не требуется, то оставшиеся «mn» слоев будут вести себя как функция идентификации, отвечающая за перенос вывода на последний уровень. Отсюда можно сделать вывод, что нейронная сеть со слоями «m» выдаст ошибку обучения «y» (y ≤ x).

Но на практике этого не происходит, и более глубокие нейронные сети не обязательно дают более низкие ошибки обучения. Икс

Что такое ResNets (остаточные сети) и как они помогают решить проблему деградации

Каймин Хэ, Сянюй Чжан, Шаоцинь Рен, Цзянь Сунь из исследовательской группы Microsoft представили структуру остаточного обучения (ResNets), которая помогает упростить обучение сетей, которые значительно глубже, чем раньше, за счет устранения проблемы деградации. Они убедительно доказали, что ResNets легче оптимизировать и могут иметь высокую точность на значительной глубине.

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

Изначально желаемое отображение - H (x). Однако мы позволяем сетям соответствовать остаточному отображению F (x) = H (x) -x, поскольку сеть сочла, что проще оптимизировать остаточное отображение, чем исходное отображение.

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

Интуиция, лежащая в основе пропуска соединения, заключается в том, что сети легче научиться преобразовывать значение f (x) в ноль, чтобы она вела себя как функция идентификации, а не училась вести себя как личность. работают самостоятельно, пытаясь найти правильный набор значений, которые дадут вам результат.

ResNet использует два основных строительных блока для построения всей сети.

  1. Блок идентичности (то же, что и выше)

2. Блокировка конв.

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

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

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