Я очень опаздываю к игре, но я хотел опубликовать, чтобы отразить некоторые текущие события в сверточных нейронных сетях относительно пропуска соединений .
Команда Microsoft Research недавно выиграла конкурс ImageNet 2015 и выпустила технический отчет Deep Residual Learning для распознавания изображений, в котором описаны некоторые их основные идеи.
Один из их основных вкладов - это концепция глубоких остаточных слоев . Эти глубокие остаточные слои используют пропускаемые соединения . Используя эти глубокие остаточные слои, они смогли обучить 152-слойную сетку для ImageNet 2015. Они даже обучили 1000+ слойную сетку для CIFAR-10.
Проблема, которая их мотивировала, заключается в следующем:
Когда более глубокие сети могут начать сходиться, возникает проблема ухудшения : с увеличением глубины сети точность насыщается (что может быть неудивительно), а затем быстро ухудшается. Неожиданно такая деградация не вызвана переоснащением , и добавление большего количества слоев в достаточно глубокую модель приводит к более высокой ошибке обучения ...
Идея состоит в том, что если вы возьмете "мелкую" сеть и просто разместите несколько слоев для создания более глубокой сети, производительность более глубокой сети должна быть как минимум такой же хорошей, как и у мелкой сети, так как более глубокая сеть может выучить точную мелкую сеть. сеть, устанавливая новые уложенные слои на идентичные слои (в действительности мы знаем, что это, вероятно, очень маловероятно, чтобы это произошло без использования архитектурных априоров или современных методов оптимизации). Они заметили, что это не так, и что ошибка тренировки иногда усугубляется, когда они укладывают больше слоев поверх более мелкой модели.
Таким образом, это побудило их использовать пропущенные соединения и использовать так называемые глубокие остаточные уровни, чтобы позволить их сети изучать отклонения от уровня идентичности, отсюда и термин остаточный , остаточный здесь, относящийся к отличиям от идентичности.
Они реализуют пропущенные соединения следующим образом:
F( х ) : = Н ( х ) - хF( х ) + х = Н ( х )F( х )H (х)
Таким образом, использование глубоких остаточных слоев через пропускаемые соединения позволяет их глубоким сетям изучать приблизительные идентичные слои, если это действительно то, что является оптимальным или локально оптимальным. Действительно они утверждают, что их остаточные слои:
Мы показываем экспериментами (рис. 7), что изученные остаточные функции в целом имеют небольшие отклики
Что касается того, почему именно это работает, у них нет точного ответа. Маловероятно, что уровни идентичности являются оптимальными, но они полагают, что использование этих остаточных уровней помогает предопределить проблему и что легче изучить новую функцию, учитывая эталонную / базовую линию сравнения для сопоставления идентификаторов, чем одну "с нуля" без использования базовой линии личности. Кто знает. Но я подумал, что это будет хорошим ответом на твой вопрос.
Кстати, задним числом: ответ Сашкелло еще лучше, не так ли?