Обзор пяти лучших методов регуляризации и семи стратегий оптимизации в глубоком обучении

глубокое обучение алгоритм регулярное выражение Нейронные сети

от arXiv

Сборник "Сердце машины"

Стратегии регуляризации и оптимизации в глубоком обучении всегда были очень важной частью, и они во многом определяют эффективность обобщения и сходимости модели. В этой статье в качестве примера в основном используются глубокие сверточные сети, обсуждаются пять стратегий регуляризации и семь стратегий оптимизации в глубоком обучении, а также основное внимание уделяется объяснению самого популярного алгоритма оптимизации Адама. Основное введение и краткий анализ этой статьи основаны на обзорной статье Nanyang Technological Technology, а конкретное введение метода Адама основано на статье Адама за 14 лет.

В последнее время в глубоком обучении глубокие модели, такие как сверточные нейронные сети и рекуррентные нейронные сети, очень хорошо показали себя в различных сложных задачах. Например, сверточная нейронная сеть (CNN), сеть, основанная на биологическом вдохновении, может обнаруживать большое количество характеристик изображения на основе математических операций свертки, поэтому ее можно использовать для решения различных задач, связанных со зрением, классификацией объектов и распознаванием речи.

Однако для изучения архитектур глубоких сетей требуется большой объем данных и высокая вычислительная мощность. Большое количество связей между нейронами и параметрами необходимо постоянно итеративно корректировать с помощью градиентного спуска и его вариантов. Кроме того, некоторые архитектуры могут превосходить тестовые данные из-за их сильной репрезентативной способности. На этом этапе мы можем использовать методы регуляризации и оптимизации для решения обеих проблем.

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

Методы регуляризации позволяют избежать переобучения в сетях с большим количеством параметров, чем входные данные. Регуляризация помогает обобщить алгоритм, избегая обучающих коэффициентов, которые идеально соответствуют образцам данных. Чтобы предотвратить переоснащение, хорошим решением является увеличение обучающих выборок. Кроме того, также доступны методы увеличения данных, регуляризации L1, регуляризации L2, Dropout, DropConnect и Early stop.

Увеличение входных данных, увеличение данных, ранняя остановка, отсев и их варианты — обычно используемые методы настройки в глубоких нейронных сетях. Эта статья служит предыдущей статьей "Реализация CNN от руки: обзорный документ, объясняющий математическую природу сверточных сетей, направленный на ознакомление с наиболее часто используемыми стратегиями регуляризации и оптимизации при разработке типичных структур сверточных нейронных сетей.


Основная статья: Стратегии регуляризации и оптимизации в глубокой сверточной нейронной сети

Адрес бумаги:АР Вест V.org/PDF/1712.04…

Аннотация: сверточные нейронные сети (ConvNets) очень хорошо работают в некоторых сложных задачах машинного обучения. Архитектура ConvNet требует большого количества данных и параметров, поэтому процесс ее обучения требует больших вычислительных мощностей, процесс сходимости к глобальному минимуму идет медленно, и легко попасть в ловушку локальных минимумов, что приводит к плохим результатам прогнозирования. . В некоторых случаях архитектура ConvNet переоснащала данные, что затрудняло обобщение архитектуры на новые образцы. Для решения этих проблем в последние годы исследователи разработали различные стратегии регуляризации и оптимизации. Кроме того, исследования показали, что эти методы могут значительно повысить производительность сети при одновременном снижении потребляемой вычислительной мощности. Предпосылкой использования этих методов является всестороннее понимание теоретических принципов, с помощью которых методы улучшают выразительность сети.Эта статья направлена ​​на введение теоретических концепций и математических формулировок наиболее распространенных стратегий разработки архитектур ConvNet.


метод регуляризации

Технология регуляризации является эффективным инструментом для обеспечения обобщающей способности алгоритмов, поэтому исследование регуляризации алгоритмов стало основной темой исследований в области машинного обучения [9][10]. Кроме того, регуляризация является важным шагом в обучении моделей глубокого обучения с большим количеством параметров, чем набор обучающих данных. Регуляризация может избежать переобучения алгоритма, которое обычно происходит, когда входные данные, полученные алгоритмом, не отражают истинное распределение и присутствует некоторый шум. За последние несколько лет исследователи предложили и разработали различные методы регуляризации, подходящие для алгоритмов машинного обучения, такие как увеличение данных, регуляризация L2 (снижение веса), регуляризация L1, Dropout, Drop Connect, случайное объединение и ранняя остановка.

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


4.1 Расширение данных

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


4.2 Регуляризация L1 и L2

Регуляризация L1 и L2 являются наиболее часто используемыми методами регуляризации. Регуляризация L1 добавляет член регуляризации к целевой функции, чтобы уменьшить сумму абсолютных значений параметров; в то время как в регуляризации L2 цель добавления члена регуляризации состоит в том, чтобы уменьшить сумму квадратов параметров. Согласно предыдущим исследованиям, многие векторы параметров в регуляризации L1 являются разреженными векторами, потому что во многих моделях параметры приближаются к 0, поэтому он часто используется в настройках выбора признаков. Наиболее часто используемый метод регуляризации в машинном обучении заключается в наложении ограничений нормы L2 на веса.

Стандартная функция затрат на регуляризацию выглядит следующим образом:

где член регуляризации R(w) равен:

Еще один способ оштрафовать сумму абсолютных значений весов — регуляризация L1:

Регуляризация L1 недифференцируема в нуле, поэтому веса растут на постоянный множитель, приближаясь к нулю. Многие нейронные сети используют шаг первого порядка в формулировке уменьшения веса для решения невыпуклой задачи регуляризации L1 [19]. Примерный вариант нормы L1:

Другой метод регуляризации состоит в том, чтобы смешать регуляризацию L1 и L2, эластичный чистый штраф [20].

В книге «Глубокое обучение» регуляризация L2 со штрафом за норму параметра позволяет алгоритму глубокого обучения «воспринимать» ввод x с более высокой дисперсией, и, таким образом, веса признаков с меньшей ковариацией (относительно увеличивающейся дисперсией) с выходной целью будут уменьшаться. А регуляризация L1 сделает значение w_i равным 0, потому что вклад J(w; X, y) в J(w; X, y) в направлении i отменяется (J(w; X, y) добавляет Член регуляризации L1 к J(w; X, y)). Кроме того, нормальная регуляризация параметров также может быть использована в качестве ограничения. Для нормы L2 веса будут ограничены сферой нормы L2, а для нормы L1 веса будут ограничены границами, определяемыми L1.


4.3 Dropout

Бэггинг — это технология, которая уменьшает ошибку обобщения за счет объединения нескольких моделей.Основной метод — обучать несколько разных моделей по отдельности, а затем позволять всем моделям голосовать за выходные данные тестовых образцов. Dropout можно рассматривать как метод мешков, который объединяет большое количество глубоких нейронных сетей, поэтому он обеспечивает дешевое ансамблевое приближение мешков, способное обучать и оценивать нейронные сети с большим количеством данных.

Выпадение относится к временному отбрасыванию части нейронов и их соединений. Случайное отбрасывание нейронов предотвращает переобучение, экспоненциально и эффективно соединяя различные сетевые архитектуры. Нейроны отбрасываются с вероятностью 1 - p, что снижает коадаптацию нейронов. Скрытые слои обычно отбрасывают нейроны с вероятностью 0,5. Аппроксимируйте среднее значение выборки всех 2 ^ n выпадающих нейронов, используя полную сеть (с выходным весом p для каждого узла). Dropout значительно уменьшает переоснащение, увеличивая скорость обучения алгоритма, избегая обучающих узлов на обучающих данных.


4.4 Drop Connect

Drop Connect — это еще одна стратегия регуляризации, позволяющая уменьшить переоснащение алгоритма и являющаяся обобщением Dropout. Случайно выбранное подмножество весов сетевой архитектуры должно быть установлено равным нулю во время Drop Connect, вместо того, чтобы устанавливать в ноль случайно выбранное подмножество функций активации для каждого уровня в Dropout. Как Drop Connect, так и Dropout могут обеспечить ограниченную производительность обобщения, поскольку каждый блок получает входные данные от случайного подмножества прошлых блоков уровня [22]. Drop Connect похож на Dropout тем, что включает разреженность в модель, разница в том, что он вводит разреженность в весах, а не разреженность в выходных векторах слоев.


4.5 Метод ранней остановки

Ранняя остановка может ограничить количество итераций обучения, необходимых модели для минимизации функции стоимости. Ранняя остановка часто используется для предотвращения плохой производительности обобщения гиперэкспрессированных моделей во время обучения. Если количество итераций слишком мало, алгоритм склонен к недообучению (малая дисперсия и большое отклонение), а если итераций слишком много, алгоритм склонен к переоснащению (большая дисперсия и малое отклонение). Метод ранней остановки решает эту проблему за счет определения количества итераций и не требует ручной установки конкретных значений.


Технология оптимизации


5.1 Импульс

Стохастический градиентный спуск и мини-пакетный градиентный спуск являются наиболее распространенными методами оптимизации в машинном обучении, однако в крупномасштабных приложениях и сложных моделях эффективность обучения алгоритмам очень низка. В то время как политика импульса направлена ​​на ускорение процесса обучения, особенно при высокой кривизне. Алгоритм импульса использует экспоненциально затухающее скользящее среднее предыдущих градиентов, чтобы отступить в этом направлении [26]. Алгоритм вводит переменную v как параметр вектора скорости, который непрерывно перемещается в пространстве параметров, и скорость обычно может быть установлена ​​​​как экспоненциально затухающая скользящая средняя отрицательных градиентов. Для минимизации заданной функции стоимости импульс может быть выражен как:

где α — скорость обучения, γ ∈ (0, 1] — коэффициент импульса, v — вектор скорости, а θ — параметр, сохраняющий то же направление, что и вектор скорости. В общем, алгоритм градиентного спуска спускается в направление локального самого быстрого (математический метод наискорейшего спуска), а его нисходящее направление должно быть перпендикулярно касательной соответствующей контурной линии в каждой точке спуска, так что это также приводит к пилообразному явлению алгоритма GD. Алгоритм SGD медленно сходится, метод импульса является одной из стратегий, позволяющих сделать точку градиента непосредственно на оптимальное решение.На практике γ изначально устанавливается равным 0,5 и увеличивается до 0,9 после стабилизации начального обучения.Точно так же обычно устанавливается α очень мало, потому что величина градиента обычно относительно велика.


5.2 Ускоренный градиент Нестерова (NAG)

Ускоренный градиент Нестерова (NAG) очень похож на классический импульсный алгоритм, это алгоритм оптимизации первого порядка, но отличается оценкой градиента. В NAG оценка градиентов осуществляется через реализацию скорости. NAG обновляется по параметрам, как алгоритм импульса, но NAG сходится быстрее. При пакетном градиентном спуске NAG сходятся быстрее, чем 1/k, к 1/(k^2) [27] по сравнению с гладкими выпуклыми функциями. Однако в SGD NAG не может улучшить скорость сходимости. Обновление NAG выглядит следующим образом:

Коэффициент импульса установлен равным 0,9. Классический импульсный алгоритм сначала вычисляет текущий градиент, а затем обновляет накопленный градиент. И наоборот, в NAG получается сначала обновить накопленный градиент, а затем исправить его. Результатом является предотвращение слишком быстрой работы алгоритма и повышение скорости отклика.


5.3 Adagrad

Adagrad, также известный как адаптивный градиент, позволяет регулировать скорость обучения на основе параметров без искусственной настройки скорости обучения в процессе обучения. Adagrad выполняет большее обновление скорости обучения на основе менее часто используемых параметров и меньшее обновление скорости обучения на основе часто используемых параметров. Таким образом, Adagrad — естественный выбор для разреженных данных, таких как распознавание изображений и НЛП. Однако самая большая проблема с Adagrad заключается в том, что в некоторых случаях скорость обучения становится слишком низкой, и скорость обучения монотонно падает, что приводит к остановке процесса обучения сетью. В классическом импульсном алгоритме и алгоритме Нестерова ускоренное обновление параметров градиента выполняется для всех параметров, а скорость обучения поддерживается постоянной в процессе обучения. В Adagrad для каждого параметра в каждой итерации используется разная скорость обучения.


5.4 AdaDelta

AdaDelta масштабирует скорость обучения, используя последние исторические значения градиента, и, подобно классическим импульсным алгоритмам, накапливает исторические обновления для ускорения обучения. AdaDelta может эффективно преодолеть недостаток скорости обучения Adagrad, стремящейся к нулю. AdaDelta ограничивает диапазон накопленных прошлых квадратов градиентов фиксированным окном w, заменяя практику классического импульсного алгоритма накопления всех исторических значений градиента. Вычисление среднего пробега во время t E[g^2](t) зависит от прошлого среднего значения и текущего значения градиента. Таким образом, этот средний расчет может быть выражен как:

где γ и импульс одинаковы. На практике это значение обычно устанавливается около 0,9. Согласно уравнению 3.13 уравнение для обновления SGD выглядит следующим образом:

Согласно уравнению 5.6, обновление Adagrad:

Используйте прошлые квадратные градиенты

Заменяя диагональную матрицу G_i, получаем

где знаменатель - ошибка квадратного корня градиента,

использовать

Заменив скорость обучения α в предыдущем правиле обновления, мы получим


5.5 RMS prop

Свойство RMS похоже на первый вектор обновления Adadelta,


Правила обновления для реквизита RMS следующие:


В опоре RMS скорость обучения делится на экспоненциально убывающее среднее значение квадрата градиента.


5.6 Adam

1. Базовый механизм алгоритма оптимизации Адама

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

Сторонники алгоритма Адама описывают его как набор преимуществ двух расширений стохастического градиентного спуска, а именно:

  • Алгоритм адаптивного градиента (AdaGrad) резервирует скорость обучения для каждого параметра, чтобы улучшить производительность при разреженных градиентах (т. е. проблемах естественного языка и компьютерного зрения).
  • Среднеквадратичное распространение (RMSProp) адаптивно сохраняет скорость обучения для каждого параметра на основе среднего значения ближайших величин весовых градиентов. Это означает, что алгоритм имеет отличную производительность на нестационарных и онлайн-задачах.

Алгоритм Адама обладает преимуществами алгоритмов AdaGrad и RMSProp. Адам не только вычисляет скорость обучения адаптивного параметра на основе среднего значения момента первого порядка, как алгоритм RMSProp, но также в полной мере использует среднее значение момента второго порядка градиента (т. е. смещенную дисперсию/нецентрированную дисперсию). В частности, алгоритм вычисляет экспоненциальные скользящие средние градиентов, а гиперпараметры beta1 и beta2 управляют скоростью затухания этих скользящих средних.

Начальное значение скользящей средней и значения бета1, бета2 близки к 1 (рекомендуемое значение), поэтому смещение оценок момента близко к 0. Смещение усиливается за счет сначала вычисления смещенной оценки, а затем вычисления скорректированной по смещению оценки.


2. Алгоритм Адама

Бумажный адрес Адама:АР Вест V.org/ABS/1412.69…

Как описано в алгоритме выше, после определения параметров α, β_1, β_2 и случайной целевой функции f(θ) нам необходимо инициализировать вектор параметров, вектор моментов первого порядка, вектор моментов второго порядка и временной шаг. Затем цикл итеративно обновляет каждую часть, когда параметр θ не сходится. То есть добавьте 1 к временному шагу t, обновите градиент, полученный целевой функцией для параметра θ на этом временном шаге, обновите оценку момента первого порядка отклонения и исходную оценку момента второго порядка, а затем вычислите оценка момента первого порядка поправки на отклонение и поправка на отклонение.Оценивается второй момент, а затем параметр θ модели обновляется значением, рассчитанным выше.

Приведенный выше псевдокод показывает основные шаги алгоритма Адама. Предположим, что f(θ) — зашумленная целевая функция: случайная скалярная функция, дифференцируемая по параметру θ. Нас интересует, как уменьшить математическое ожидание этой функции, то есть математическое ожидание f E[f(θ)] для различных параметров θ. где f1(θ), ..., , fT (θ) представляют случайные значения функции на последующих временных шагах 1, ..., T. Случайность здесь возникает из-за оценки случайных подвыборок (мини-пакетов) и собственного функционального шума. и

представляет собой градиент ft(θ) по отношению к θ, вектору частных производных от ft по отношению к θ на практическом шаге t.

Алгоритм обновляет экспоненциальное скользящее среднее (mt) и квадрат градиента (vt) градиента, а параметры β_1, β_2 ∈ [0, 1) управляют скоростью экспоненциального затухания этих скользящих средних. Само скользящее среднее оценивается с использованием первого момента градиента (среднего) и второго необработанного момента (смещенной дисперсии). Однако, поскольку эти скользящие средние инициализируются вектором 0, оценки момента могут быть смещены в сторону 0, особенно на начальном временном шаге и когда скорость затухания очень мала (т. е. β близко к 1). Но хорошая новость заключается в том, что смещение инициализации легко отменить, поэтому мы можем получить оценки m_t hat и v_t hat с поправкой на смещение.

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



3. Правило обновления Адама

Важной особенностью правила обновления алгоритма Адама является то, что он тщательно выбирает размер шага. Предполагая ε = 0, эффективный размер шага спуска по времени t и пространству параметров равен

Существуют две супремумы для эффективного размера шага убывания:

В этом случае верхняя грань эффективного шага удовлетворяет условию

а в противном случае |∆t| ≤ α. Первый случай происходит только тогда, когда он чрезвычайно разрежен: т. Е. Градиенты равны нулю, за исключением текущего временного шага, который не равен нулю. А в менее редких случаях эффективный размер шага будет меньше. когда


, у нас есть

, поэтому супремум |∆t|

. Величина эффективного размера шага на каждом временном шаге в пространстве параметров приближенно ограничена коэффициентом размера шага α, т.е.

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

Мы знаем, что для многих моделей машинного обучения хорошее оптимальное состояние — это состояние с чрезвычайно высокой вероятностью в области наборов в пространстве параметров. Это не редкость, например, у нас может быть априорное распределение параметров. Поскольку α определяет величину эффективного размера шага в пространстве параметров (т. е. супремум), мы часто можем вывести правильную величину α, и оптимальное решение также может быть достигнуто за определенное количество итераций, начиная с θ0. мы можем поставить

Называется отношение сигнал-шум (signal-to-noise ratio/SNR). Если значение SNR мало, эффективный размер шага Δt будет близок к 0, а целевая функция будет сходиться к экстремальному значению. Это очень желательное свойство, так как меньшее SNR означает, что алгоритм

Существует большая неопределенность, соответствует ли оно истинному направлению градиента. Например, значение SNR стремится к 0 вблизи оптимального решения, поэтому в пространстве параметров также имеется меньший эффективный размер шага: форма автоматического отжига. Эффективный размер шага Δt по-прежнему инвариантен к масштабированию градиента, если мы масштабируем градиент g с коэффициентом c, это эквивалентно масштабированию с коэффициентом c

и масштабировать с коэффициентом c^2

, при этом масштабный коэффициент отменяется при расчете отношения сигнал/шум:

4. Инициализируйте коррекцию смещения

Как описано в алгоритме во второй части этой статьи, Адам использует член коррекции смещения инициализации. В этом разделе этот поправочный член смещения будет получен из оценки момента второго порядка, и вывод оценки момента первого порядка полностью аналогичен. Сначала мы можем найти градиент стохастической целевой функции f, затем мы хотим иметь возможность оценить ее необработанный момент второго порядка (смещенную дисперсию), используя экспоненциальное скользящее среднее квадрата градиента и скорость затухания β_2. Пусть g1,...,gT — градиенты на последовательности временных шагов, где каждый градиент подчиняется потенциальному распределению градиентов gt ∼ p(gt). Теперь мы инициализируем экспоненциальное скользящее среднее v0=0 (нулевой вектор), и обновление экспоненциального скользящего среднего на временном шаге t можно выразить как:

где gt^2 представляет произведение Адамара gt⊙gt, произведение между соответствующими элементами. Опять же, мы можем переписать его как функцию, которая включает только градиенты и скорости затухания на всех предыдущих временных шагах, т. е. исключить v:

Мы хотим знать, как ожидаемое значение E[vt] экспоненциальной скользящей средней на временном шаге t связано с истинным вторым моментом

коррелированы, поэтому мы можем скорректировать отклонение между двумя величинами. Далее мы ожидаем как левую, так и правую части выражения (1), следующим образом:

Если истинный второй момент E[g^2] стационарен, то ζ = 0. В противном случае ζ может оставаться малым значением, потому что мы должны выбрать экспоненциальную скорость затухания β1 так, чтобы экспоненциальное скользящее среднее придавало градиенту малый вес. Таким образом, инициализация вектора среднего нуля оставляет только (1 − βt ^ 2 ) членов. Поэтому мы делим на член ζ в алгоритме 1, чтобы скорректировать смещение инициализации.

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


5.7 Nadam

Nadam представляет собой комбинацию оптимизаторов NAG и Adam [28]. Если экспоненциально затухающий средний квадрат прошлых градиентов равен v_t, а экспоненциально затухающий средний прошлый исторический градиент равен m_t, то классическое правило обновления импульса выглядит следующим образом:

Нам нужно изменить правила импульса, чтобы получить оптимизатор Надама. Таким образом, приведенная выше формула расширяется до:

Модификация NAG выглядит следующим образом:

Вместо того, чтобы дважды обновлять импульс, NAG можно изменить, обновив градиент g_t (в первый раз) и обновив параметр θ_t+1 (во второй раз). Следовательно, вектор импульса непосредственно обновляет параметры, можно выразить следующим образом:

Чтобы добавить NAG к Адаму, предыдущий вектор движения необходимо заменить текущим вектором движения. Поэтому, расширяя приведенную выше формулу на m шляпу и m_t, правило обновления Адама выглядит следующим образом:

Правила обновления оптимизатора Надама оценкой вектора импульса с поправкой на смещение на предыдущем временном шаге следующие: