53
правки
Изменения
→Residual block
=== Residual block ===
[[Файл:Residual.png|upright=1.0|thumb|[https://arxiv.org/pdf/1512.03385.pdf Рисунок 7.]Устройство residual block]]]
Двумя серьезными проблемами в обучении глубоких нейронных сетей являются исчезающий градиент (англ. ''vanishing gradient'') и взрывающийся градиент (англ. ''exploding gradient''). Они возникают из-за того, что при дифференцировании по цепному правилу, до глубоких слоев нейронной сети доходит очень маленькая величина градиента (из-за многократного домножения на небольшие величины на предыдущих слоях). Для борьбы с этой проблемой был предложен так называемый ''residual block''<ref name=ResNet>[https://arxiv.org/pdf/1512.03385.pdf Deep residual learning for image recognition]</ref>. Идея заключается в том, чтобы взять пару слоёв (например, сверточных), и добавить дополнительную связь, которая проходит мимо этих слоёв. Пусть <math>z^{(k)}</math> {{---}} выход <math>k</math>-ого слоя до применения функции активации, а <math>a^{(k)}</math> {{---}} выход после. Тогда residual block будет выполнять следующее преобразование: <math>a^{(k + 2)} = g(z^{(k + 2)} + a^{(k)})</math>, где <math>g</math> {{---}} функция активации.