Остаточная нейронная сеть
Остаточная нейронная сеть (также называемая остаточной сетью или ResNet ) [ 1 ] представляет собой архитектуру глубокого обучения , в которой весовые слои изучают остаточные функции со ссылкой на входные данные слоя. Он был разработан в 2015 году для распознавания изображений и выиграл в этом году конкурс ImageNet Large Scale Visual Recognition Challenge ( ILSVRC ). [ 2 ] [ 3 ]
Терминологически «остаточное соединение» или «пропускное соединение» относится к конкретному архитектурному мотиву. , где — произвольный модуль нейронной сети. Остаточные соединения использовались до ResNet, например, в LSTM . сети [ 4 ] и сеть автомобильных дорог [ 5 ] . Однако публикация ResNet сделала его широко популярным, появившись в нейронных сетях, которые в остальном не связаны с ResNet.
Остаточное соединение стабилизирует обучение и конвергенцию глубоких нейронных сетей с сотнями слоев и является распространенным мотивом в глубоких нейронных сетях, таких как модели Transformer (например, модели BERT и GPT, такие как ChatGPT ), система AlphaGo Zero , AlphaStar. система и система AlphaFold .
Математика
[ редактировать ]Остаточное соединение
[ редактировать ]В модели многослойной нейронной сети рассмотрим подсеть с определенным количеством сложенных слоев (например, 2 или 3). Обозначим основную функцию, выполняемую этой подсетью, как , где является входом в подсеть. Остаточное обучение повторно параметризует эту подсеть и позволяет слоям параметров представлять «остаточную функцию». . Выход этой подсети тогда представляется как:
Операция " » реализуется посредством «пропуска соединения», которое выполняет сопоставление идентификаторов для соединения входа подсети с ее выходом. В более поздней работе это соединение будет называться «остаточным соединением». Функция часто представляется матричным умножением, переплетенным с функциями активации и операциями нормализации (например, пакетной нормализацией или нормализацией слоев). В целом одна из этих подсетей называется «остаточным блоком». [ 1 ] Глубокая остаточная сеть создается путем простого объединения этих блоков вместе.
Важно отметить, что основополагающий принцип остаточных блоков также является принципом исходной ячейки LSTM . [ 4 ] рекуррентная нейронная сеть , которая прогнозирует результат во времени как , который становится при обратном распространении ошибки во времени . [ 6 ]
Подключение проекции
[ редактировать ]Если функция имеет тип где , затем является неопределенным. Для обработки этого особого случая используется проекционное соединение: где обычно представляет собой линейную проекцию, определяемую формулой где это матрица. Матрица обучается методом обратного распространения ошибки, как и любой другой параметр модели.
Распространение сигнала
[ редактировать ]Введение сопоставлений идентичности облегчает распространение сигнала как по прямому, так и по обратному пути, как описано ниже. [ 7 ]
Прямое распространение
[ редактировать ]Если вывод -ый остаточный блок является входом в -ый остаточный блок (при условии отсутствия функции активации между блоками), затем -й вход:
Применяя эту формулировку рекурсивно, например,
дает общее соотношение:
где - индекс остаточного блока и — это индекс некоторого более раннего блока. Эта формулировка предполагает, что всегда существует сигнал, который отправляется напрямую из более мелкого блока. в более глубокий блок .
Обратное распространение
[ редактировать ]Формулировка остаточного обучения дает дополнительное преимущество, поскольку в некоторой степени решает проблему исчезающего градиента . Однако важно признать, что проблема исчезновения градиента не является основной причиной проблемы деградации, которая решается с помощью слоев нормализации. Чтобы наблюдать влияние остаточных блоков на обратное распространение ошибки , рассмотрим частную производную функции потерь относительно некоторого входного остаточного блока . Использование приведенного выше уравнения прямого распространения для более позднего остаточного блока : [ 7 ]
Эта формулировка предполагает, что вычисление градиента более мелкого слоя, , всегда имеет более поздний срок это добавляется напрямую. Даже если градиенты члены малы, общий градиент сопротивляется исчезновению благодаря добавленному члену .
Варианты остаточных блоков
[ редактировать ]Базовый блок
[ редактировать ]Базовый блок — это самый простой строительный блок, изученный в оригинальной ResNet. [ 1 ] Этот блок состоит из двух последовательных сверточных слоев 3x3 и остаточной связи. Входные и выходные размеры обоих слоев равны.
Узкий блок
[ редактировать ]Блок с узким местом [ 1 ] состоит из трех последовательных сверточных слоев и остаточной связи. Первый слой в этом блоке представляет собой свертку 1x1 для уменьшения размерности, например, до 1/4 входного измерения; второй слой выполняет свертку 3x3; последний слой — это еще одна свертка 1x1 для восстановления размеров. Модели ResNet-50, ResNet-101 и ResNet-152 в [ 1 ] все они основаны на блоках узких мест.
Блокировка предварительной активации
[ редактировать ]Остаточный блок предварительной активации [ 7 ] применяет функции активации (например, нелинейность и нормализацию) перед применением функции невязки . Формально вычисление остаточного блока предварительной активации можно записать как:
где может быть любой операцией активации нелинейности (например, ReLU ) или нормализации (например, LayerNorm ). Такая конструкция уменьшает количество неидентичных сопоставлений между остаточными блоками. Этот дизайн использовался для обучения моделей с количеством слоев от 200 до более 1000. [ 7 ]
Начиная с GPT-2 , блоки- трансформеры преимущественно реализовывались как блоки предварительной активации. В литературе по моделям Трансформеров это часто называют «предварительной нормализацией». [ 8 ]
Приложения
[ редактировать ]Все архитектуры Transformer включают остаточные соединения. Действительно, очень глубокие модели Трансформаторов не могут быть успешно обучены без Остаточных Связей. [ 9 ]
В оригинальной статье «Остаточная сеть» не утверждалось, что она вдохновлена биологическими системами. Но более поздние исследования связали ResNet с биологически правдоподобными алгоритмами. [ 10 ] [ 11 ]
Исследование, опубликованное в журнале Science в 2023 году. [ 12 ] раскрыл полный коннектом мозга насекомого (личинки плодовой мухи). В ходе этого исследования были обнаружены « многоуровневые ярлыки », напоминающие пропускные соединения в искусственных нейронных сетях, включая ResNet.
История
[ редактировать ]Предыдущая работа
[ редактировать ]В 1961 году Фрэнк Розенблатт описал модель трехслойного многослойного перцептрона (MLP) с пропускаемыми соединениями. [ 13 ] Модель называлась «системой с перекрестной связью», а скиповые соединения представляли собой формы перекрестных соединений.
В конце 1980-х годов в нейронных сетях иногда использовались соединения «пропускаемых слоев». Примеры включают в себя [ 14 ] [ 15 ] . Статья 1988 года [ 16 ] обучили полностью подключенную сеть прямой связи, в которой каждый уровень остаточно соединяется со всеми последующими уровнями, как в более поздней DenseNet (2016).
Проблема деградации
[ редактировать ]Зепп Хохрайтер обнаружил проблему исчезающего градиента в 1991 году. [ 17 ] и утверждал, что это объясняет, почему распространенные в то время формы рекуррентных нейронных сетей не работали для длинных последовательностей. Позже он и Шрмидхубер разработали долговременную кратковременную память (LSTM, 1997). [ 4 ] [ 18 ] чтобы решить эту проблему, которая имеет «состояние ячейки» которая может функционировать как обобщенная остаточная связь. Сеть автомобильных дорог (2015) [ 5 ] [ 19 ] применил идею LSTM, развернутой во времени, для нейронных сетей прямого распространения , в результате чего появилась сеть автомагистралей.
На заре глубокого обучения предпринимались попытки обучать все более глубокие модели. Яркие примеры включают AlexNet (2012) с 8 слоями и VGG19 (2014) с 19 слоями. [ 20 ] Однако наложение слишком большого количества слоев привело к резкому снижению точности обучения . [ 21 ] известная как проблема «деградации». [ 1 ] Теоретически добавление дополнительных слоев для углубления сети не должно приводить к более высоким потерям при обучении , но именно это и произошло с VGGNet. [ 1 ] Однако если дополнительные уровни можно установить как сопоставления идентификаторов , то более глубокая сеть будет представлять ту же функцию, что и ее более мелкий аналог. Это основная идея остаточного обучения, которая объясняется ниже. Предполагается, что оптимизатор не может выполнить сопоставление идентификаторов для параметризованных слоев.
В 2014 году современным уровнем техники было обучение «очень глубокой нейронной сети» с 20–30 слоями. [ 22 ] Исследовательская группа попыталась обучить более глубокие сети, эмпирически проверяя различные приемы обучения более глубоких сетей, пока не обнаружила глубокую остаточную сетевую архитектуру. [ 23 ]
Последующая работа
[ редактировать ]Плотная сеть (2016) [ 24 ] соединяет выход каждого слоя со входом каждого последующего слоя:
Нейронные сети со стохастической глубиной [ 25 ] стали возможными благодаря архитектуре остаточной сети. Эта процедура обучения случайным образом удаляет подмножество слоев и позволяет сигналу распространяться через соединение с пропуском идентификаторов. Это эффективный метод регуляризации, также известный как «DropPath», для обучения больших и глубоких моделей, таких как Vision Transformer (ViT).
Ссылки
[ редактировать ]- ^ Перейти обратно: а б с д и ж г час , Шаоцин; Сунь, Цзянь (10 декабря 2015 г. . Сянюй ; Рен Хэ, Каймин; Чжан , )
- ^ «Итоги ILSVRC2015» . image-net.org .
- ^ Цзя; Фей-Фей, Ли (2009) - Дэн , Цзя; Сочер, Ричард, Ли .
- ^ Перейти обратно: а б с Зепп Хохрайтер ; Юрген Шмидхубер (1997). «Долгая кратковременная память» . Нейронные вычисления . 9 (8): 1735–1780. дои : 10.1162/neco.1997.9.8.1735 . ПМИД 9377276 . S2CID 1915014 .
- ^ Перейти обратно: а б Шривастава, Рупеш Кумар; Грефф, Клаус; Шмидхубер, Юрген (3 мая 2015 г.). «Дорожные сети». arXiv : 1505.00387 [ cs.LG ].
- ^ Сегеди, Кристиан; Иоффе, Сергей; Ванхук, Винсент; Алеми, Алекс (2016). «Inception-v4, Inception-ResNet и влияние остаточных связей на обучение». arXiv : 1602.07261 [ cs.CV ].
- ^ Перейти обратно: а б с д Хэ, Каймин; Чжан, Сянюй; Рен, Шаоцин; Сунь Цзянь ) , 2015 ( .
- ^ Рэдфорд, Алек; Ву, Джеффри; Дитя, Ревон; Луан, Дэвид; Амодей, Дарио; Суцкевер, Илья (14 февраля 2019 г.). «Языковые модели предназначены для многозадачного обучения без присмотра» (PDF) . Архивировано (PDF) из оригинала 6 февраля 2021 года . Проверено 19 декабря 2020 г.
- ^ Донг, Ихе; Кордонье, Жан-Батист; Лукас, Андреас (2021). «Внимание — это еще не все, что вам нужно: чистое внимание теряет свой ранг в двойне экспоненциально с глубиной». arXiv : 2103.03404 [ cs.LG ].
- ^ Ляо, Цяньли; Поджо, Томазо (2016). Преодоление разрыва между остаточным обучением, рекуррентными нейронными сетями и зрительной корой . arXiv : 1604.03640 .
- ^ Сяо, Уилл; Чен, Хунлинь; Ляо, Цяньли; Поджо, Томазо (2018). Биологически правдоподобные алгоритмы обучения могут масштабироваться до больших наборов данных . arXiv : 1811.03567 .
- ^ Виндинг, Майкл; Педиго, Бенджамин; Барнс, Кристофер; Патсолик, Хизер; Пак, Янгсер; Казимирс, Том; Фушики, Акира; Андраде, Ингрид; Хандельвал, Авинаш; Вальдес-Алеман, Хавьер; Ли, Фэн; Рэндел, Надин; Барсотти, Элизабет; Коррейя, Ана; Феттер, Феттер; Хартенштейн, Волкер; Прибе, Кэри; Фогельштейн, Джошуа; Кардона, Альберт; Златич, Марта (10 марта 2023 г.). «Коннектом мозга насекомого» . Наука . 379 (6636): eadd9330. bioRxiv 10.1101/2022.11.28.516756v1 . дои : 10.1126/science.add9330 . ПМК 7614541 . ПМИД 36893230 . S2CID 254070919 .
- ^ Розенблатт, Франк (1961). Принципы нейродинамики. перцептроны и теория механизмов мозга (PDF) .
- ^ Румельхарт, Дэвид Э.; Хинтон, Джеффри Э.; Уильямс, Рональд Дж. (октябрь 1986 г.). «Изучение представлений путем обратного распространения ошибок» . Природа . 323 (6088): 533–536. дои : 10.1038/323533a0 . ISSN 1476-4687 .
- ^ Венейблс, Западная Нью-Йорк; Рипли, Брэйн Д. (1994). Современная прикладная статистика с S-Plus . Спрингер. стр. 261–262. ISBN 9783540943501 .
- ^ Дж, Ланг К. (1988). «Учимся отличать две спирали» . Материалы Летней школы коннекционистских моделей 1988 года : 52–59.
- ^ Хохрейтер, Зепп (1991). Исследования по динамическим нейронным сетям (PDF) (дипломная работа). Технический университет Мюнхена, Институт компьютерных наук, руководитель: Й. Шмидхубер.
- ^ Феликс А. Герс; Юрген Шмидхубер; Фред Камминс (2000). «Учимся забывать: постоянное прогнозирование с помощью LSTM». Нейронные вычисления . 12 (10): 2451–2471. CiteSeerX 10.1.1.55.5709 . дои : 10.1162/089976600300015015 . ПМИД 11032042 . S2CID 11598600 .
- ^ Шривастава, Рупеш Кумар; Грефф, Клаус; Шмидхубер, Юрген (22 июля 2015 г.). «Обучение очень глубоких сетей». arXiv : 1507.06228 [ cs.LG ].
- ^ Симонян, Карен; Зиссерман, Эндрю (10 апреля 2015 г.), Очень глубокие сверточные сети для крупномасштабного распознавания изображений , doi : 10.48550/arXiv.1409.1556 , получено 7 августа 2024 г.
- ^ Он, Кайминг; Чжан, Сянъюй; Рен, Шаоцин; Сунь, Цзянь (2016). «Углубление выпрямителей: превосходство производительности человеческого уровня в классификации ImageNet». arXiv : 1502.01852 [ cs.CV ].
- ^ Симонян, Карен; Зиссерман, Эндрю (10 апреля 2015 г.), Очень глубокие сверточные сети для крупномасштабного распознавания изображений , arXiv : 1409.1556
- ^ Линн, Эллисон (10 декабря 2015 г.). «Исследователи Microsoft выиграли конкурс компьютерного зрения ImageNet» . Блог AI . Проверено 29 июня 2024 г.
- ^ Хуан, Гао; Лю, Чжуан; ван дер Маатен, Лоренс; Вайнбергер, Килиан (2016). Плотносвязанные сверточные сети . arXiv : 1608.06993 .
- ^ Хуан, Гао; Сунь, Ю; Лю, Чжуан; Вайнбергер, Килиан (2016). Глубокие сети со стохастической глубиной . arXiv : 1603.09382 .