В машинном обучении проблема исчезающего градиента возникает при обучении нейронных сетей с помощью методов обучения на основе градиента и обратного распространения . В таких методах во время каждой итерации обучения каждый вес нейронной сети получает обновление, пропорциональное частной производной функции потерь относительно текущего веса. [1] Проблема заключается в том, что по мере увеличения глубины сети или длины последовательности величина градиента, как правило, должна уменьшаться (или неконтролируемо расти), замедляя процесс обучения. [1] В худшем случае это может полностью остановить дальнейшее обучение нейронной сети. [1] В качестве одного из примеров причины проблемы можно привести традиционные функции активации , такие как функция гиперболического тангенса , имеющие градиенты в диапазоне [-1,1] , а обратное распространение вычисляет градиенты с использованием цепного правила . Это приводит к умножению n этих малых чисел для вычисления градиентов ранних слоев в n -слойной сети, что означает, что градиент (сигнал ошибки) экспоненциально уменьшается с n, в то время как ранние слои обучаются очень медленно.
Обратное распространение позволило исследователям обучать контролируемые глубокие искусственные нейронные сети с нуля, поначалу с небольшим успехом. Дипломная работа Хохрайтера 1991 года формально определила причину этой неудачи в «проблеме исчезающего градиента», [2] [3] , которая влияет не только на многослойные сети прямого распространения , [4] но и на рекуррентные сети . [5] [6] Последние обучаются путем их развертывания в очень глубокие сети прямого распространения, где новый слой создается для каждого временного шага входной последовательности, обрабатываемой сетью (комбинация развертывания и обратного распространения называется обратным распространением во времени ).
При использовании функций активации, производные которых могут принимать большие значения, возникает риск столкнуться с сопутствующей проблемой взрывного градиента .
Прототипные модели
Этот раздел основан на статье « О сложности обучения рекуррентных нейронных сетей» Паскану, Миколова и Бенжио. [6]
Рекуррентная сетевая модель
Обобщенная рекуррентная сеть имеет скрытые состояния входы и выходы . Пусть она параметризована с помощью , так что система развивается как Часто выход является функцией , как некоторые . Проблема исчезающего градиента уже ясно представлена, когда , поэтому мы упростим нашу запись до особого случая с помощью: Теперь возьмем ее дифференциал : Обучение сети требует от нас определения функции потерь, которая должна быть минимизирована. Пусть это будет [примечание 1] , тогда минимизация ее с помощью градиентного спуска дает
где скорость обучения.
Проблема исчезающего/взрывного градиента возникает из-за повторяющихся умножений вида
Пример: рекуррентная сеть с сигмовидной активацией
Для конкретного примера рассмотрим типичную рекуррентную сеть, определяемую следующим образом:
где — параметр сети, — сигмоидальная функция активации [примечание 2] , применяемая к каждой векторной координате отдельно, а — вектор смещения.
Тогда , и так как , норма оператора указанного выше умножения ограничена сверху величиной . Так что если спектральный радиус равен , то при больших , норма оператора указанного выше умножения ограничена сверху величиной . Это прототипическая проблема исчезающего градиента.
Эффект исчезающего градиента заключается в том, что сеть не может изучать эффекты дальнего действия. Вспомним уравнение ( дифференциал потерь ): Компоненты являются просто компонентами и , поэтому если ограничены, то также ограничены некоторыми , и поэтому члены в распадаются как . Это означает, что, по сути, на него влияют только первые члены в сумме.
Если , то приведенный выше анализ не совсем работает. [примечание 3] Для прототипической задачи взрывного градиента следующая модель более ясна.
Модель динамических систем
Следуя (Doya, 1993), [7] рассмотрим эту однонейронную рекуррентную сеть с сигмоидальной активацией: На малом пределе динамика сети становится Рассмотрим сначала автономный случай с . Зададим и изменим по . При уменьшении система имеет 1 устойчивую точку, затем имеет 2 устойчивые точки и 1 неустойчивую точку и, наконец, снова имеет 1 устойчивую точку. Явно, устойчивые точки — это .
Теперь рассмотрим и , где достаточно велико, чтобы система достигла одной из устойчивых точек.
Если система оказывается очень близко к неустойчивой точке, то небольшое изменение в или заставит перейти от одной устойчивой точки к другой. Это делает и обе очень большими, случай взрывного градиента.
Если система находится далеко от неустойчивой точки, то небольшое изменение не окажет никакого влияния на , что делает , случаем исчезающего градиента.
Обратите внимание, что в этом случае ни спадает до нуля, ни раздувается до бесконечности. Действительно, это единственный хорошо себя ведущий градиент, что объясняет, почему ранние исследования были сосредоточены на обучении или проектировании систем рекуррентных сетей, которые могли выполнять долгосрочные вычисления (например, выводить первый ввод, который они видят в самом конце эпизода) путем формирования его стабильных аттракторов. [8]
В общем случае интуиция по-прежнему верна ( [6] Рисунки 3, 4 и 5).
Геометрическая модель
Продолжайте использовать указанную выше однонейронную сеть, фиксируя , и рассмотрите функцию потерь, определяемую . Это создает довольно патологический ландшафт потерь: при приближении сверху потери приближаются к нулю, но как только пересекает , аттракторный бассейн изменяется, и потери подскакивают до 0,50. [примечание 4]
Следовательно, попытка обучения методом градиентного спуска «упрется в стену в ландшафте потерь» и вызовет взрывной градиент. Немного более сложная ситуация представлена на [6] рисунках 6.
Решения
Для решения этой проблемы было предложено несколько методов.
Для задачи взрывного градиента (Паскану и др., 2012) [6] рекомендовали отсечение градиента, то есть деление вектора градиента на , если . Это ограничивает векторы градиента в пределах шара радиуса .
Пакетная нормализация
Пакетная нормализация является стандартным методом решения как проблем взрывающегося, так и исчезающего градиента. [10] [11]
Многоуровневая иерархия
В многоуровневой иерархии сетей ( Шмидхубер , 1992) предварительно обучается по одному уровню за раз посредством неконтролируемого обучения , а затем настраивается посредством обратного распространения . [12] Здесь каждый уровень обучается сжатому представлению наблюдений, которое передается на следующий уровень.
Сеть глубоких убеждений
Похожие идеи использовались в нейронных сетях прямого распространения для неконтролируемого предварительного обучения для структурирования нейронной сети, заставляя ее сначала изучать обычно полезные детекторы признаков . Затем сеть обучается далее контролируемым обратным распространением для классификации помеченных данных. Модель глубокой сети убеждений Хинтона и др. (2006) включает в себя обучение распределения высокоуровневого представления с использованием последовательных слоев двоичных или действительных скрытых переменных . Она использует ограниченную машину Больцмана для моделирования каждого нового слоя высокоуровневых признаков. Каждый новый слой гарантирует увеличение нижней границы логарифмического правдоподобия данных, тем самым улучшая модель, если обучена должным образом. После того, как достаточно много слоев обучено, глубокая архитектура может использоваться в качестве генеративной модели путем воспроизведения данных при выборке вниз по модели («предковый проход») от активаций признаков верхнего уровня. [13] Хинтон сообщает, что его модели являются эффективными извлекателями признаков по высокоразмерным структурированным данным. [14]
Более быстрое оборудование
Развитие аппаратного обеспечения привело к тому, что с 1991 по 2015 год вычислительная мощность (особенно предоставляемая графическими процессорами ) увеличилась примерно в миллион раз, что сделало стандартное обратное распространение возможным для сетей на несколько слоев глубже, чем когда была обнаружена проблема исчезающего градиента. Шмидхубер отмечает, что это «по сути то, что сейчас выигрывает многие соревнования по распознаванию изображений», но что это «на самом деле не решает проблему фундаментальным образом» [15], поскольку исходные модели, решающие проблему исчезающего градиента Хинтоном и другими, обучались на процессоре Xeon , а не на графических процессорах. [13]
Остаточное соединение
Остаточные соединения или пропускные соединения относятся к архитектурному мотиву ,где — произвольный модуль нейронной сети. Это дает градиент , где единичная матрица не страдает от исчезающего или взрывающегося градиента. Во время обратного распространения часть градиента протекает через остаточные связи. [16]
Конкретно, пусть нейронная сеть (без остаточных связей) будет , тогда с остаточными связями градиент выхода относительно активаций на слое будет . Таким образом, градиент не исчезает в произвольно глубоких сетях.
Сети прямого распространения с остаточными связями можно рассматривать как ансамбль относительно неглубоких сетей. В этой перспективе они решают проблему исчезающего градиента, будучи эквивалентными ансамблям многих неглубоких сетей, для которых не существует проблемы исчезающего градиента. [17]
Другие функции активации
Выпрямители, такие как ReLU, меньше страдают от проблемы исчезающего градиента, поскольку они насыщаются только в одном направлении. [18]
Инициализация веса
Инициализация веса — еще один подход, предложенный для уменьшения проблемы исчезающего градиента в глубоких сетях.
Кумар предположил, что распределение начальных весов должно меняться в зависимости от используемой функции активации, и предложил инициализировать веса в сетях с помощью логистической функции активации, используя гауссовское распределение с нулевым средним значением и стандартным отклонением 3.6/sqrt(N), где N— количество нейронов в слое. [19]
Недавно Йилмаз и Поли [20] провели теоретический анализ того, как градиенты зависят от среднего значения начальных весов в глубоких нейронных сетях с использованием логистической функции активации, и обнаружили, что градиенты не исчезают, если среднее значение начальных весов задается в соответствии с формулой: max(−1,-8/N). Эта простая стратегия позволяет очень эффективно и действенно обучать сети с 10 или 15 скрытыми слоями с использованием стандартного обратного распространения .
Другой
Бенке полагался только на знак градиента ( Rprop ) при обучении своей нейронной абстракционной пирамиды [21] для решения таких задач, как реконструкция изображений и локализация лиц. [ необходима цитата ]
Нейронные сети также можно оптимизировать, используя универсальный алгоритм поиска в пространстве весов нейронной сети, например, случайное предположение или более систематически генетический алгоритм . Этот подход не основан на градиенте и позволяет избежать проблемы исчезающего градиента. [22]
^ Более общая функция потерь может зависеть от всей последовательности выходов, для которой проблема та же самая, просто с более сложными обозначениями.
^ Любая функция активации работает, если она дифференцируема с ограниченной производной.
^ Рассмотрим
и , с и . Тогда имеет спектральный радиус , и , который может стремиться к бесконечности или нулю в зависимости от выбора .
^ Это происходит потому, что при , два устойчивых аттрактора — , а неустойчивый аттрактор — .
Ссылки
^ abc Basodi, Sunitha; Ji, Chunyan; Zhang, Haiping; Pan, Yi (сентябрь 2020 г.). «Усиление градиента: эффективный способ обучения глубоких нейронных сетей». Big Data Mining and Analytics . 3 (3): 198. arXiv : 2006.10560 . doi : 10.26599/BDMA.2020.9020004 . ISSN 2096-0654. S2CID 219792172.
^ Хохрайтер, С. (1991). Untersuruchungen zu dynamischen Neuronalen Netzen (PDF) (Дипломная работа). Институт ф. Информатика, Технический университет. Мюнхен.
^ Хохрайтер, С.; Бенджио, И.; Фраскони, П.; Шмидхубер, Дж. (2001). "Градиентный поток в рекуррентных сетях: сложность изучения долгосрочных зависимостей". В Кремер, С. К.; Колен, Дж. Ф. (ред.). Полевое руководство по динамическим рекуррентным нейронным сетям . IEEE Press. ISBN0-7803-5369-2.
^ Го, Гарретт Б.; Ходас, Натан О.; Вишну, Абхинав (15 июня 2017 г.). «Глубокое обучение для вычислительной химии». Журнал вычислительной химии . 38 (16): 1291–1307. arXiv : 1701.04503 . Bibcode :2017arXiv170104503G. doi :10.1002/jcc.24764. PMID 28272810. S2CID 6831636.
^ Bengio, Y.; Frasconi, P.; Simard, P. (1993). Проблема изучения долгосрочных зависимостей в рекуррентных сетях. Международная конференция IEEE по нейронным сетям. IEEE. стр. 1183–1188. doi :10.1109/ICNN.1993.298725. ISBN978-0-7803-0999-9.
^ abcde Паскану, Разван; Миколов, Томас; Бенжио, Йошуа (21 ноября 2012 г.). «О сложности обучения рекуррентных нейронных сетей». arXiv : 1211.5063 [cs.LG].
^ Дойя, К. (1992). «Бифуркации в обучении рекуррентных нейронных сетей». [Труды] 1992 IEEE Международный симпозиум по схемам и системам . Том 6. IEEE. С. 2777–2780. doi :10.1109/iscas.1992.230622. ISBN0-7803-0593-0. S2CID 15069221.
^ Bengio, Y.; Simard, P.; Frasconi, P. (март 1994 г.). «Изучение долгосрочных зависимостей с помощью градиентного спуска — сложная задача». IEEE Transactions on Neural Networks . 5 (2): 157–166. doi :10.1109/72.279181. ISSN 1941-0093. PMID 18267787. S2CID 206457500.
^ Иоффе, Сергей; Сегеди, Кристиан (1 июня 2015 г.). «Пакетная нормализация: ускорение обучения глубокой сети за счет сокращения внутреннего ковариационного сдвига». Международная конференция по машинному обучению . PMLR: 448–456. arXiv : 1502.03167 .
^ Сантуркар, Шибани; Ципрас, Димитрис; Ильяс, Эндрю; Мадри, Александр (2018). «Как пакетная нормализация помогает оптимизации?». Достижения в области нейронных систем обработки информации . 31. Curran Associates, Inc.
^ Дж. Шмидхубер., «Изучение сложных расширенных последовательностей с использованием принципа сжатия истории», Neural Computation , 4, стр. 234–242, 1992.
^ ab Hinton, GE ; Osindero, S.; Teh, Y. (2006). "Быстрый алгоритм обучения для сетей с глубокими убеждениями" (PDF) . Neural Computation . 18 (7): 1527–1554. CiteSeerX 10.1.1.76.1541 . doi :10.1162/neco.2006.18.7.1527. PMID 16764513. S2CID 2309950.
^ Хинтон, Г. (2009). «Сети глубоких убеждений». Scholarpedia . 4 (5): 5947. Bibcode : 2009SchpJ...4.5947H. doi : 10.4249/scholarpedia.5947 .
^ Шмидхубер, Юрген (2015). «Глубокое обучение в нейронных сетях: обзор». Neural Networks . 61 : 85–117. arXiv : 1404.7828 . doi : 10.1016/j.neunet.2014.09.003. PMID 25462637. S2CID 11715509.
^ He, Kaiming; Zhang, Xiangyu; Ren, Shaoqing; Sun, Jian (2016). Глубокое остаточное обучение для распознавания изображений. Конференция IEEE 2016 года по компьютерному зрению и распознаванию образов (CVPR) . Лас-Вегас, Невада, США: IEEE. стр. 770–778. arXiv : 1512.03385 . doi : 10.1109/CVPR.2016.90. ISBN978-1-4673-8851-1.
^ Вайт, Андреас; Уилбер, Майкл; Белонжи, Серж (20 мая 2016 г.). «Остаточные сети ведут себя как ансамбли относительно неглубоких сетей». arXiv : 1605.06431 [cs.CV].
^ Глорот, Ксавье; Бордес, Антуан; Бенжио, Йошуа (14 июня 2011 г.). «Глубокие разреженные выпрямительные нейронные сети». PMLR : 315–323.
^ Йылмаз, Ахмет; Поли, Риккардо (1 сентября 2022 г.). «Успешное и эффективное обучение глубоких многослойных персептронов с логистической функцией активации просто требует инициализации весов с соответствующим отрицательным средним». Нейронные сети . 153 : 87–103. doi : 10.1016/j.neunet.2022.05.030. ISSN 0893-6080. PMID 35714424. S2CID 249487697.
^ Свен Бенке (2003). Иерархические нейронные сети для интерпретации изображений (PDF) . Конспект лекций по информатике. Том 2766. Springer.
^ "Фундаментальная проблема глубокого обучения Зеппа Хохрайтера (1991)". people.idsia.ch . Получено 7 января 2017 г. .