остаточный
Предположим, мы хотим найти x такое, что f(x)=b, учитывая оценку x x0
- Остаток: b−f(x0)
- Ошибка: х-х0
Остаточные сети (остаточные сети, ResNets)
Более глубокая (более глубокая) сеть ничем не хуже более мелкой сети. так какпроблема деградации, оптимизация сети становится затруднительной, и эффект не такой хороший, как у более мелкой сети.
Остаточный блок
Как показано на рисунке 2, x представляет собой вход, а F(x) представляет собой выход остаточного блока перед функцией активации второго уровня, то есть F(x)=W2σ(W1x), где W1 и W2 представляют первый слой и второй слой, Вес слоя, σ представляет функцию активации ReLU. (Смещение здесь опущено.) Выход последнего остаточного блока равен σ(F(x)+x).причина
Если в двухслойной сети оптимальным выходом является вход x, то для сети без короткой связи его нужно оптимизировать до H(x)=x, для сети с короткой связью — остаточный блок , наиболее Если оптимальный выход равен x, вам нужно только оптимизировать F(x)=H(x)−x до 0.Последняя оптимизация будет проще первой.
Мы добавляем остаточный блок в сеть либо в середине, либо в конце, и добавляем регуляризацию L2 (уменьшение веса) к весам в остаточном блоке, так что F(x)=0 на рисунке 1 очень просто. В этом случае добавление остаточного блока будет иметь тот же эффект, что и без добавления остаточного блока, поэтому добавление остаточного блока не ухудшит эффект. Если в остаточном блокеСкрытый юнит узнал что-то полезное, то оно может работать лучше, чем тождественное отображение (т. е. F(x)=0).
Пример
Когда карта объектов делится вдвое, количество фильтров удваивается, что гарантирует постоянство вычислительной сложности каждого слоя.
Поскольку ResNet использует сопоставление удостоверений, для коротких соединений нет параметров, поэтому вычислительная сложность простой сети и остаточной сети одинакова: 3,6 миллиарда FLOP.