Ответ
Skip connection (пропускное соединение) — это архитектурный паттерн, при котором входные данные блока слоев передаются вперед и складываются (или конкатенируются) с выходом этого блока. Это не изобретение ResNet, но именно в ResNet эта идея была применена систематически для решения проблемы деградации глубоких сетей.
Основные типы и применение:
-
Аддитивные skip-connection (ResNet-style):
output = F(x, {W_i}) + xИспользуются для сложения тензоров одинаковой размерности. Их главная цель — облегчить обучение, позволяя градиенту течь напрямую. Если блоку
F(x)не нужно ничего менять, его веса могут стремиться к нулю, и блок становится почти тождественным. -
Конкатенирующие skip-connection (DenseNet-style):
output = concat( x, F(x, {W_i}) )Используются для объединения по глубине (channel dimension). Они явно сохраняют все предыдущие представления, что улучшает поток градиентов и encourages feature reuse, но может быстро увеличивать потребление памяти.
Почему skip connections так эффективны:
- Решение проблемы исчезающего градиента: Они создают "короткие пути" для обратного распространения ошибки. Градиент может течь напрямую через тождественное соединение без затухания нелинейными функциями активации и матрицами весов.
- Обучение тождественной функции: Глубокая сеть должна как минимум не быть хуже shallower сети. Skip connections делают это тривиальным — shallower сеть является подмножеством более глубокой (когда дополнительные слои учатся нулевому отображению).
- Улучшение потока информации: Сеть может выбирать, какую информацию обрабатывать в глубине, а какую передавать неизменной.
Где встречаются, помимо ResNet:
- Трансформеры: Skip connection окружает каждый sub-layer (Multi-Head Attention и Feed-Forward Network) с последующей нормализацией.
- U-Net: Конкатенирующие соединения между encoder и decoder для точной локализации в сегментации изображений.
- Highway Networks: Более общая форма, где пропускное соединение управляется воротами.
По сути, skip connections стали стандартным компонентом для построения глубоких и стабильно обучаемых архитектур.