Модель ResNet
Модель ResNet [1] стала победителем соревнования ILSVRC-2015, ансамбль из вариантов которой показал частоту ошибок 3.6%, что ниже, чем оцениваемая частота ошибок человека (5.1% из [2]).
Проблема глубоких сетей
Авторы модели проводили эксперименты по увеличению глубины свёрточной сети и обнаружили, что с некоторого момента добавление новых слоёв приводит к ухудшению качества прогнозов модели не только на тестовой, но и на обучающей выборке!
Это показано ниже для частоты ошибок на обучающей выборке (слева) и тестовой выборке (справа) датасета CIFAR-10 [3] при увеличении глубины сети от 20 до 56 слоёв [1]:

После каждой свёртки использовалась батч-нормализация, нормы градиентов не взрывались и не вырождались. Поэтому авторы пришли к выводу, что падение качества прогнозов вызвано чрезмерным замедлением скорости настройки весов.
Остаточный блок
Как мы увидели, простое наращивание числа слоёв может ухудшить качество модели по сравнению с неглубокой. В то же время легко воспроизвести качество неглубокой сети с помощью глубокой, просто дополнив неглубокую сеть новыми тождественными преобразованиями, не изменяющими входы. Это дало понимание того, что глубокой сети сложно воспроизвести тождественное преобразование. Чтобы ей посодействовать в этом, было предложено использовать остаточный блок (residual block), представленный ниже [1]:

Результатом действия остаточного блока является сумма нелинейного преобразования и исходного входа . Такой конструкции гораздо проще воспроизвести тождественное преобразование, для чего достаточно задать нулями все веса преобразования , превратив его в тождественный ноль.
Заключительный слой не содежит нелинейности ReLU. Вместо этого нелинейность ставится после выхода ResNet-блока. Это сделано для того, чтобы преобразование могло как повысить, так и понизить значение входа .
Эксперименты показали, что если наращивать сеть, добавляя в неё остаточные блоки, то точность прогнозов растёт, а не падает, как в обычной свёрточной архитектуре. Эта несложная идея сделало возможным применение очень глубоких сетей, содержащих 100 слоёв и более, а работа [1] стала одной из самых цитируемых в области глубокого обучения!
Архитектура ResNet
Для суммирования преобразования и входа необходимо, чтобы число каналов и пространственные размеры в результате преобразования не изменялись. Поэтому в использовались свёртки 3x3 с шагом 1 и паддингом, равным единице.
Периодически пространственное разрешение уменьшалось в два раза, что реализовывалось свёрткой с шагом 2 в преобразовании , а в тождественной связи применялась свёртка 1x1 также с шагом 2.
Ниже приведена архитек тура VGG-19 (слева), её расширенная версия с большим числом слоёв (в центре) и она же, но с добавлением тождественных связей (справа) [1]:

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