При обучении глубокой нейронной сети, если глубина особенно велика, ее на самом деле трудно обучить, потому что возникнут проблемы исчезновения градиента и взрыва градиента. Остаточные сети могут помочь нам лучше обучать глубокие нейронные сети.
1. Остаточный блок
В двух слоях нейронной сети выполняются следующие операции (основной путь)еслиПосле копирования на последнюю линейку, перед ReLU, этот путь называется ярлыком:иногда этоЯрлыктакже известен какПропустить соединение
Таким образом, в процесс расчета вносятся некоторые изменения, как показано ниже.
2. Остаточная нейронная сеть
Сначала дайте обычную нейронную сетьЧтобы превратить его в остаточную нейронную сеть, нужно добавить соединения с длинным переходом.Ярлык добавляется через каждые два слоя для формирования остаточного блока, а остаточные блоки объединяются для формирования остаточной сети. Остаточная нейронная сеть эффективно предотвращает проблему взрыва/исчезновения градиента при обучении глубокой нейронной сети, а также решает проблему раздутой структуры сети, что лучше, чем обычная нейронная сеть.
3. Почему остаточные сети так эффективны?
Когда и вес w, и смещение b установлены равными 0,, эта идентификация не повлияет на эффективность сети, и через эти два уровня можно узнать некоторую информацию об особенностях, но это может повысить эффективность сети. Стоит отметить, чтоиДолжны иметь одинаковые размеры для дополнения к работе! Многие из тех же методов свертки используются в ResNet, поэтому сделайтеРазмерность может быть равна размерности выхода, таким образом реализуя соединение с длинным переходом.
Четыре, остаточная сеть для распознавания изображений
Обычная нейронная сеть
Остаточная нейронная сеть
Каждые два слоя свертки добавляют ярлык для формирования остаточного блока, таким образом формируя большую остаточную сеть. Из-за широкого использования одного и того же метода свертки размерность сохраняется, тем самым реализуя процесс сложения той же размерности в соединении с длинным переходом.