Введение в остаточные сети

Опубликовано: 23 Июля, 2021

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

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

у = F (х) + х

Модель ResNet152 со 152 слоями выиграла тест ILSVRC Imagenet 2015, имея меньшие параметры, чем сеть VGG19 , которая была очень популярна в то время. Остаточная сеть состоит из остаточных единиц или блоков, которые имеют пропускаемые соединения , также называемые идентичными соединениями .

Пропускаемые соединения показаны ниже:

Выходные данные предыдущего слоя добавляются к выходным данным следующего слоя в остаточном блоке. Переход или пропуск может быть 1, 2 или даже 3 . При добавлении размеры x могут отличаться от F (x) из-за процесса свертки, что приводит к уменьшению его размеров. Таким образом, мы добавляем дополнительный сверточный слой 1 x 1, чтобы изменить размеры x .

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

После того, как было проведено подробное сравнение всех существующих архитектур CNN, ResNet выделялась тем, что удерживала самый низкий верхний 5% -й коэффициент ошибок на уровне 3,57% для задач классификации, обогнав все другие архитектуры. Даже у людей процент ошибок не намного ниже.

Сравнение 34- уровневой сети ResNet с VGG19 и 34- уровневой простой сети:

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

Приведенные ниже графики сравнивают точность простой сети с точностью остаточной сети. Обратите внимание, что с увеличением количества уровней точность 34-уровневой простой сети начинает насыщаться раньше, чем точность ResNet.