Нейронная сеть с пропуском слоев

26

Я заинтересован в регрессии с нейронными сетями.

Нейронные сети с нулевыми скрытыми узлами + соединения с пропуском слоев являются линейными моделями.

А как насчет тех же нейронных сетей, но со скрытыми узлами? Мне интересно, какова будет роль соединений с пропуском слоя?

Интуитивно, я бы сказал, что если вы включите соединения с пропуском слоев, то окончательная модель будет суммой линейной модели + несколько нелинейных частей.

Есть ли какое-либо преимущество или недостаток в добавлении соединений с пропускаемым слоем в нейронные сети?

Сухайб Бен Тайб
источник

Ответы:

38

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

Команда Microsoft Research недавно выиграла конкурс ImageNet 2015 и выпустила технический отчет Deep Residual Learning для распознавания изображений, в котором описаны некоторые их основные идеи.

Один из их основных вкладов - это концепция глубоких остаточных слоев . Эти глубокие остаточные слои используют пропускаемые соединения . Используя эти глубокие остаточные слои, они смогли обучить 152-слойную сетку для ImageNet 2015. Они даже обучили 1000+ слойную сетку для CIFAR-10.

Проблема, которая их мотивировала, заключается в следующем:

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

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

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

Они реализуют пропущенные соединения следующим образом: введите описание изображения здесь

F(Икс)знак равноЧАС(Икс)-ИксF(Икс)+Иксзнак равноЧАС(Икс)F(Икс)ЧАС(Икс)

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

Мы показываем экспериментами (рис. 7), что изученные остаточные функции в целом имеют небольшие отклики

Что касается того, почему именно это работает, у них нет точного ответа. Маловероятно, что уровни идентичности являются оптимальными, но они полагают, что использование этих остаточных уровней помогает предопределить проблему и что легче изучить новую функцию, учитывая эталонную / базовую линию сравнения для сопоставления идентификаторов, чем одну "с нуля" без использования базовой линии личности. Кто знает. Но я подумал, что это будет хорошим ответом на твой вопрос.

Кстати, задним числом: ответ Сашкелло еще лучше, не так ли?

Инди AI
источник
Что вы подразумеваете под предварительным условием? (также ваш ответ намного лучше, чем у Сашкелло, имхо). Кроме того, проблема в том, что добавление дополнительных слоев без пропускаемых соединений затрудняет поиск более точной сети в более глубокой сети? (по какой-то причине?)
Чарли Паркер
20

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

sashkello
источник
@sashkello Вы можете уточнить, что «соединения с пропуском слоев не должны улучшать производительность сети», теоретически. Это было бы здорово понять.
предчувствие
@hunch Это потому, что вы можете смоделировать это без необходимости пропустить слой. Skip-layer это просто линейный термин. Сигмовидная функция ~ линейна около 0. Таким образом, соединение с пропуском слоя будет вести себя как скрытый узел с очень маленькими входными весами.
sashkello
5

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

Как предполагает sashkello (+1), MLP являются универсальными аппроксиматорами, поэтому пропускаемые соединения не улучшат результаты в пределе бесконечных данных и бесконечном количестве скрытых единиц (но когда мы когда-нибудь приблизимся к этому пределу?). Реальным преимуществом является то, что это облегчает оценку хороших значений для весов, если сетевая архитектура хорошо соответствует проблеме, и вы можете использовать меньшую сеть и получить лучшую производительность обобщения.

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

Дикран Сумчатый
источник
3
"попробуй и посмотри" - золотые слова :)
sashkello
0

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

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

Payam Jome Yazdian
источник