Остаточные связи

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
(Новая: {{well|Статья написана с использованием LLM '''Claude Sonnet 5''' и проверена участником Daria Makeeva...)
(Перенаправление на ResNet)
 
Строка 1: Строка 1:
-
{{well|Статья написана с использованием LLM '''Claude Sonnet 5''' и проверена участником [[Участник:Daria Makeeva|Daria Makeeva]] 02:25, 17 июля 2026 (MSD)
+
#REDIRECT [[ResNet]]
-
}}
+
-
{{TOCright}}
+
-
 
+
-
'''Остаточные связи''' (англ. residual connections, также skip connections — пропускающие связи) — архитектурный приём в глубоких [[Искусственная нейронная сеть|нейронных сетях]], при котором вход некоторого блока слоёв добавляется напрямую к его выходу, минуя нелинейное преобразование внутри блока. Приём был предложен в архитектуре '''ResNet''' (Residual Network) Каймином Хэ, Сянъюй Чжаном, Шаоцином Реном и Цзянем Суном в 2015 году и позволил впервые успешно обучать сети глубиной в сотни и тысячи слоёв<ref name="he2016">{{статья |автор=He K., Zhang X., Ren S., Sun J. |заглавие=Deep Residual Learning for Image Recognition |издание=Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR) |год=2016 |страницы=770–778 |doi=10.1109/CVPR.2016.90}}</ref>.
+
-
 
+
-
== Проблема деградации при увеличении глубины ==
+
-
Интуитивно кажется, что более глубокая сеть должна обучаться не хуже, чем её более неглубокий аналог: если добавленные слои настроить так, чтобы они реализовывали тождественное преобразование (то есть просто пропускали вход без изменений), итоговое качество не должно ухудшиться. Формально это означает, что пространство функций, представимых глубокой сетью, включает в себя пространство функций более неглубокой сети как подмножество — глубокая сеть теоретически способна выучить как минимум то же самое отображение, просто занулив вклад дополнительных слоёв.
+
-
 
+
-
Однако на практике при обучении обычных (не остаточных) сетей прямого распространения наблюдалась обратная картина: при увеличении глубины сверх некоторого порога точность на обучающей выборке начинала не улучшаться, а деградировать — то есть проблема заключалась не в переобучении, а в самой оптимизации, которая не могла найти даже тождественное отображение через нелинейные слои с ограниченным числом итераций стохастического градиентного спуска<ref name="he2016"/>. Иными словами, тождественное преобразование, хотя и представимо глубокой сетью в принципе, оказывается на практике трудно достижимым результатом обучения через стек нелинейных слоёв — оптимизатору проще «дообучить» отклонение от уже известного хорошего решения (тождественного отображения), чем построить это отображение с нуля через сложную нелинейную функцию.
+
-
 
+
-
== Формальное определение остаточного блока ==
+
-
Пусть <tex>x</tex> — вход некоторого блока слоёв, а <tex>F(x, W)</tex> — нелинейное преобразование, реализуемое несколькими слоями этого блока с параметрами <tex>W</tex> (например, две свёртки с активацией ReLU между ними). Вместо того чтобы требовать от блока напрямую приближать желаемое отображение <tex>H(x)</tex>, остаточный блок вычисляет выход как сумму нелинейного преобразования и тождественного пути:
+
-
 
+
-
: <tex>y = F(x, W) + x</tex>
+
-
 
+
-
Таким образом, слои внутри блока обучаются приближать не всё отображение <tex>H(x)</tex> целиком, а лишь '''остаток''' (residual) <tex>F(x, W) = H(x) - x</tex> — разницу между желаемым выходом и входом. Если оптимальным решением для данного блока действительно является тождественное отображение, оптимизатору достаточно занулить веса <tex>W</tex>, что оказывается значительно проще, чем подобрать веса нелинейного преобразования, точно воспроизводящие тождественную функцию<ref name="he2016"/>.
+
-
 
+
-
=== Случай несовпадающих размерностей ===
+
-
Прямое сложение <tex>F(x, W) + x</tex> возможно только тогда, когда размерности входа <tex>x</tex> и выхода <tex>F(x, W)</tex> совпадают. Если внутри блока происходит изменение числа каналов или пространственного разрешения (например, при переходе между стадиями сети с уменьшением размера карты признаков), тождественный путь заменяется '''линейной проекцией''' с обучаемой матрицей весов <tex>W_s</tex>, приводящей размерность входа к размерности выхода блока перед суммированием:
+
-
 
+
-
: <tex>y = F(x, W) + W_s x</tex>
+
-
 
+
-
Такая проекция обычно реализуется как свёртка 1×1 с шагом, соответствующим изменению разрешения, и вносит небольшое число дополнительных параметров по сравнению с чисто тождественным путём<ref name="he2016"/>.
+
-
 
+
-
== Связь с проблемой затухающего градиента ==
+
-
Наличие остаточной связи напрямую облегчает распространение градиента при [[Обратное распространение ошибки|обратном распространении ошибки]] и тесно связано с [[Проблема затухающего градиента|проблемой затухающего градиента]] (vanishing gradient problem). Продифференцировав выход блока <tex>y = F(x, W) + x</tex> по входу <tex>x</tex>, получаем:
+
-
 
+
-
: <tex>\frac{\partial y}{\partial x} = \frac{\partial F(x, W)}{\partial x} + I</tex>
+
-
 
+
-
где <tex>I</tex> — единичная матрица. При последовательном применении цепного правила через <tex>L</tex> остаточных блоков градиент функции потерь по входу первого блока принимает вид:
+
-
 
+
-
: <tex>\frac{\partial \mathcal{L}}{\partial x_1} = \frac{\partial \mathcal{L}}{\partial x_L}\prod_{l=1}^{L-1}\left(I + \frac{\partial F_l}{\partial x_l}\right)</tex>
+
-
 
+
-
Раскрывая это произведение, легко видеть, что среди слагаемых обязательно присутствует член <tex>\frac{\partial \mathcal{L}}{\partial x_L} \cdot I</tex> — то есть исходный градиент проходит через все <tex>L</tex> блоков без единого умножения на потенциально малые множители <tex>\partial F_l / \partial x_l</tex><ref name="he2016b">{{статья |автор=He K., Zhang X., Ren S., Sun J. |заглавие=Identity Mappings in Deep Residual Networks |издание=arXiv preprint |год=2016 |номер=arXiv:1603.05027}}</ref>. В отличие от обычной сети прямого распространения, где градиент по входу первого слоя равен произведению всех промежуточных якобианов и экспоненциально затухает, если типичная норма якобианов меньше единицы, в остаточной сети такой прямой («магистральный») путь гарантирует, что градиент не обязан затухать даже при очень большом числе блоков<ref name="he2016b"/>. Именно это свойство авторы называют ключевой причиной, по которой сети с сотнями и тысячами остаточных блоков успешно обучаются стандартным градиентным методом, тогда как их безостаточные аналоги той же глубины не обучаются вовсе.
+
-
 
+
-
== История и практические результаты ==
+
-
Концептуальным предшественником ResNet были '''Highway Networks''', предложенные Рупешем Кумаром Шриваставой, Клаусом Греффом и Юргеном Шмидхубером в 2015 году. В этой архитектуре также вводился прямой путь передачи сигнала между слоями, но, в отличие от последующего ResNet, путь регулировался '''обучаемым гейтом''' (transform gate) — выход блока вычислялся как взвешенная комбинация нелинейного преобразования и тождественного пути с весами, зависящими от входа: <tex>y = F(x, W)\cdot T(x) + x\cdot(1-T(x))</tex>, где <tex>T(x)</tex> — обучаемая гейтирующая функция. Highway Networks позволили обучать сети из сотен слоёв методом стохастического градиентного спуска, однако ключевое отличие от ResNet — необходимость обучать дополнительные параметры гейта, тогда как в ResNet тождественный путь фиксирован и не требует дополнительных параметров<ref name="srivastava2015">{{статья |автор=Srivastava R.K., Greff K., Schmidhuber J. |заглавие=Highway Networks |издание=arXiv preprint |год=2015 |номер=arXiv:1505.00387}}</ref>.
+
-
 
+
-
Архитектура ResNet была представлена Каймином Хэ, Сянъюй Чжаном, Шаоцином Реном и Цзянем Суном (Microsoft Research) и заняла первое место на конкурсе ILSVRC 2015 (ImageNet Large Scale Visual Recognition Challenge); соответствующая статья была опубликована в трудах конференции CVPR в 2016 году<ref name="he2016"/>. Наиболее глубокая протестированная модель — 152-слойная ResNet — достигла ошибки top-5 4,49% на валидационной выборке ImageNet, а ансамбль моделей — 3,57% на тестовой выборке, что впервые превзошло оценённый человеческий уровень ошибки (около 5,1%) на этом наборе данных<ref name="he2016"/>. Авторы также успешно обучили сеть глубиной 1202 слоя на наборе данных CIFAR-10, продемонстрировав, что остаточные связи впервые сделали практически осуществимым обучение сетей такой глубины стандартным градиентным методом без специальных ухищрений<ref name="he2016"/>.
+
-
 
+
-
=== Интерпретация ResNet как ансамбля путей разной длины ===
+
-
Андреас Вайт, Майкл Уилбер и Серж Белонджи в 2016 году предложили альтернативную интерпретацию остаточных сетей: поскольку каждый остаточный блок допускает как прохождение сигнала через нелинейное преобразование, так и через тождественный путь, сеть из <tex>L</tex> блоков можно эквивалентно представить как явную совокупность из <tex>2^L</tex> путей разной длины — от одного (только тождественные переходы) до <tex>L</tex> (через все нелинейные преобразования). Авторы показали, что эти пути ведут себя подобно ансамблю относительно неглубоких сетей: они относительно слабо зависят друг от друга, удаление отдельных блоков после обучения слабо влияет на итоговую точность (в отличие от сетей без остаточных связей, таких как VGG), а основной вклад в градиент при обучении вносят именно короткие пути — например, в сети из 110 слоёв большая часть градиента приходится на пути глубиной всего 10–34 слоя. Это наблюдение объясняет, почему остаточные сети избегают проблемы затухающего градиента: обучение эффективно опирается на короткие пути, способные переносить градиент, а не на весь путь максимальной глубины<ref name="veit2016">{{статья |автор=Veit A., Wilber M., Belongie S. |заглавие=Residual Networks Behave Like Ensembles of Relatively Shallow Networks |издание=Advances in Neural Information Processing Systems (NIPS) |год=2016 |том=29 |номер=arXiv:1605.06431}}</ref>.
+
-
 
+
-
=== Плотные связи (DenseNet) ===
+
-
Дальнейшим развитием идеи пропускающих связей стала архитектура '''DenseNet''' (Densely Connected Convolutional Network), предложенная Гао Хуаном и соавторами в 2017 году. В отличие от ResNet, где выход блока суммируется со входом, в DenseNet выход каждого слоя внутри плотного блока (dense block) объединяется (конкатенируется) с выходами всех предыдущих слоёв этого блока, так что каждый слой получает на вход объединение карт признаков всех предшествующих слоёв. Такая схема усиливает распространение сигнала и градиента ещё сильнее, чем простое суммирование, за счёт явного сохранения всех промежуточных представлений, и позволяет достигать сопоставимой с ResNet точности при существенно меньшем числе параметров<ref name="huang2017">{{статья |автор=Huang G., Liu Z., van der Maaten L., Weinberger K.Q. |заглавие=Densely Connected Convolutional Networks |издание=Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR) |год=2017 |страницы=4700–4708 |doi=10.1109/CVPR.2017.243}}</ref>.
+
-
 
+
-
=== Предактивационные остаточные блоки ===
+
-
В 2016 году те же авторы опубликовали продолжение работы, в котором проанализировали, как именно расположение операций (свёртка, нормализация, активация) внутри остаточного блока влияет на распространение сигнала. Они предложили '''предактивационный''' вариант блока (pre-activation ResNet), в котором нормализация и функция активации применяются перед свёрткой, а не после неё, что делает путь тождественного отображения полностью «чистым» (без дополнительной нелинейности на магистральном пути) и облегчает как прямое, так и обратное распространение сигнала через произвольно удалённые блоки. Этот вариант позволил улучшить результаты на сетях глубиной до 1001 слоя на CIFAR-10 и 200 слоёв на ImageNet<ref name="he2016b"/>. Дальнейшими вариациями базовой остаточной архитектуры стали '''Wide ResNet''' (Загорюйко и Комодакис, 2016), увеличивающая ширину, а не глубину остаточных блоков, и '''ResNeXt''' (Се и соавторы, 2017), вводящая дополнительное измерение «кардинальности» — числа параллельных агрегируемых преобразований внутри блока<ref name="zagoruyko2016">{{статья |автор=Zagoruyko S., Komodakis N. |заглавие=Wide Residual Networks |издание=Proceedings of the British Machine Vision Conference (BMVC) |год=2016 |страницы=87.1–87.12 |doi=10.5244/C.30.87}}</ref><ref name="xie2017">{{статья |автор=Xie S., Girshick R., Dollár P., Tu Z., He K. |заглавие=Aggregated Residual Transformations for Deep Neural Networks |издание=Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR) |год=2017 |номер=arXiv:1611.05431}}</ref>.
+
-
 
+
-
=== Связь с непрерывной глубиной ===
+
-
Формула остаточного блока <tex>y = x + F(x, W)</tex> формально совпадает с шагом явного метода Эйлера для дифференциального уравнения с единичным шагом по времени. Эта наблюдение легло в основу переосмысления остаточных сетей как дискретизации непрерывной динамической системы и привело к разработке [[Нейронные дифференциальные уравнения|нейронных дифференциальных уравнений]] (neural differential equations, в частности Neural ODE), где число дискретных остаточных блоков заменяется на решение обыкновенного дифференциального уравнения с адаптивным числом шагов интегрирования<ref name="chen2018">{{статья |автор=Chen R.T.Q., Rubanova Y., Bettencourt J., Duvenaud D.K. |заглавие=Neural Ordinary Differential Equations |издание=Advances in Neural Information Processing Systems (NeurIPS) |год=2018 |том=31 |номер=arXiv:1806.07366}}</ref>.
+
-
 
+
-
== См. также ==
+
-
* [[Свёрточная нейронная сеть]]
+
-
* [[Проблема затухающего градиента]]
+
-
* [[Нейронные дифференциальные уравнения]]
+
-
* [[Батч-нормализация]]
+
-
* [[Обратное распространение ошибки]]
+
-
* [[Глубокое обучение]]
+
-
 
+
-
== Примечания ==
+
-
{{примечания}}
+
-
 
+
-
== Литература ==
+
-
* {{статья |автор=He K., Zhang X., Ren S., Sun J. |заглавие=Deep Residual Learning for Image Recognition |издание=Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR) |год=2016 |страницы=770–778 |doi=10.1109/CVPR.2016.90}}
+
-
* {{статья |автор=He K., Zhang X., Ren S., Sun J. |заглавие=Identity Mappings in Deep Residual Networks |издание=arXiv preprint |год=2016 |номер=arXiv:1603.05027}}
+
-
* {{статья |автор=Srivastava R.K., Greff K., Schmidhuber J. |заглавие=Highway Networks |издание=arXiv preprint |год=2015 |номер=arXiv:1505.00387}}
+
-
* {{статья |автор=Veit A., Wilber M., Belongie S. |заглавие=Residual Networks Behave Like Ensembles of Relatively Shallow Networks |издание=Advances in Neural Information Processing Systems (NIPS) |год=2016 |том=29 |номер=arXiv:1605.06431}}
+
-
* {{статья |автор=Zagoruyko S., Komodakis N. |заглавие=Wide Residual Networks |издание=Proceedings of the British Machine Vision Conference (BMVC) |год=2016 |страницы=87.1–87.12 |doi=10.5244/C.30.87}}
+
-
* {{статья |автор=Xie S., Girshick R., Dollár P., Tu Z., He K. |заглавие=Aggregated Residual Transformations for Deep Neural Networks |издание=Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR) |год=2017 |номер=arXiv:1611.05431}}
+
-
* {{статья |автор=Huang G., Liu Z., van der Maaten L., Weinberger K.Q. |заглавие=Densely Connected Convolutional Networks |издание=Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR) |год=2017 |страницы=4700–4708 |doi=10.1109/CVPR.2017.243}}
+
-
* {{статья |автор=Chen R.T.Q., Rubanova Y., Bettencourt J., Duvenaud D.K. |заглавие=Neural Ordinary Differential Equations |издание=Advances in Neural Information Processing Systems (NeurIPS) |год=2018 |том=31 |номер=arXiv:1806.07366}}
+
-
 
+
-
[[Категория:Машинное обучение]]
+
-
[[Категория:Глубокое обучение]]
+
-
[[Категория:Компьютерное зрение]]
+

Текущая версия

  1. REDIRECT ResNet
Личные инструменты