Проблемы исчезающего градиента и Resnet

    По мере создания все более глубоких нейронных сетей, важно понимать, как добавление скрытых уровней способно принести новые сложности. Существуют различные сетевые архитектуру со своими уникальными подходами. Например, ResNet имеет остаточные соединения, через которые входные данные могут быстрее распространяться между уровнями. 

Глубина сетей является важным параметром. В теории многослойность сети должна увеличивать ее точность. Однако на практике возможно появление следующих осложнений:

·      Исчезающие градиенты

В процессе обучения некоторые нейроны могут «умереть» и стать бесполезными. Это может вызвать потерю информации. 

·      Сложность оптимизации

Если такой параметр, как вес увеличивается из-за увеличения глубины, обучение сети становится трудоёмким процессом. 

·      Скорость обучения

Это связано с увеличением количества операций, которые необходимо выполнить центральному или графическому процессору при прохождении сигнала через каждый искусственный нейрон. 

 

При увеличении слоев нейронной сети, использующих различные функции активации, значение производной обратного распространения уменьшается. Это приводит к проблемам исчезающего градиента. 

Для сетей с малым количеством уровней, это не является проблемой. Но если взять большое число слоёв, это может привести к тому, что градиент будет слишком малым для эффективного процесса тренировки. 


Рис. 1) Упрощенная схема 4-уровневой нейронной сети

 

Рис. 2) 4-уровневая нейронная сеть

 

Данные слоя (n+1) получаем по следующей формуле: 

 

Обновить информацию о весе i-го скрытого слоя можно обновив информацию о градиенте в соответствии с формулой: 

 

 

 

Градиенты нейронных сетей обнаруживаются с помощью обратного распространения. Иными словами, обратное распространение находит производные сети, перемещая слой за слоем от последнего слоя к начальному. По цепочке производные каждого уровня умножаются, чтобы вычислить производные начальных уровней.

Однако, когда n-ое количество слоёв используют функцию активации, например ​​функцию сигмоиды, малые производные перемножаются друг на друга. Таким образом, градиент уменьшается экспоненциально по мере того, как мы распространяемся к началу сети.

Небольшой градиент означает, что веса и смещения начальных слоев не будут эффективно обновляться с каждой тренировочной сессией. 

 

Самое легкое решение — это взять другую функцию, которая не вызывает такие проблемы. Иным решением является остаточные нейронные сети. 

Остаточные нейронные сети являются идеальным решением проблемы исчезающего градиента. Чтобы упростить процесс, передача вводимых данных через выходные данные не позволяет некоторым слоям изменять значения градиента, а это означает, что мы можем пропустить процедуру обучения для некоторых конкретных слоев. Это явление также проясняет, как градиент возвращается обратно в сеть. Также факт, что есть возможность скрывать слои, которые не помогают, очень полезен. 

Задача увеличения эффективности нейронной сети заключается в увеличении ее глубины, избегая описанные выше проблемы. 

Одним из самых больших преимуществ остаточной нейронной сети ( ResNet от Residual Network) является то, что, увеличивая глубину сети, удается избавиться от негативных последствий. Таким образом, появляется возможность увеличить глубину нейронной сети, при этом сохраняя быстрое обучение и получая более высокую точность. 

Рис. 3 Остаточный слой ResNet

На рисунке изображена схема остаточного слоя сети. В обычных случаях используется базовое отображение с нелинейной функцией F(x) от входа к выходу. Но если вместо F(x) использовать функцию G(x) = F(x) - x, а на выходе второго весового слоя арифметически добавить x к G(x), то это позволяет переносить важную информацию из предыдущего слоя на следующие уровни без изменений. Сигнал может напрямую распространяться от одного слоя к любым другим. Таким образом, предотвращается проблема исчезновения градиента, а также ускоряет обучение. 

Нейронные связи в человеческом мозге организуют структуры, похожие на остаточные сети. Например, нейроны коры головного мозга получают входные данные от других слоев напрямую, а не последовательно от предыдущего слоя. Конечно, искусственная нейронная сеть не повторяет в точности работу слоёв коры головного мозга. 

Итак, архитектура ResNet позволила достичь высоких результатов в задаче распознавания изображений за счёт использования остаточного слоя и уйти от проблем, связанных с увеличением числа скрытых слоев сети.