Диссертация (1137108), страница 4
Текст из файла (страница 4)
Известны теоретические условия сходимости θt к локальному экстремуму функции J(θ),а именно последовательность длин шагов должна удовлетворять условиям Роббинса-Монро [45]:∞∑t=1ηt = ∞,∞∑ηt2 < ∞(1.16)t=1Пример такой последовательности –– ηt = ct для любого c > 0. На практике последовательностьдлин шагов почти всегда выбирается убывающей (хотя работа [46] предлагает использовать немонотонную последовательность длин шагов), а конкретный её вид подбирается эмпирически.
Вчастности, популярно уменьшение длины шага в k раз, когда значение функции потерь перестаётуменьшаться, то есть «выходит на плато». Ряд эвристик подбора длин шагов описан в заметке [47].Число шагов метода T зачастую определяется с помощью критерия ранней остановки повалидационной выборке, что позволяет избежать переобучения. Другим критерием остановки может являться стагнация значения функции потерь, но отличить плато функции потерь от сходимости к локальному оптимуму весьма затруднительно.
Как и подбор длин шагов, выбор моментаостановки требует применения метода проб и ошибок.Размер минибатча M обычно выбирается порядка десятков или сотен. Использование слишком маленького размера минибатча нежелательно, поскольку получаемые оценки градиента gt могут иметь слишком большой разброс, что приводит к медленной сходимости. Кроме того, увеличение размера минибатча позволяет использовать параллелизм современных вычислительных15архитектур, таких как видеоускорители, что значительно повышает эффективность обучения, измеряемую числом обработанных объектов за единицу времени. С другой стороны, использованиеслишком большого размера минибатча может привести к нехватке памяти, а также ухудшениюобобщающей способности метода [48].Недостатком описанного метода является его медленная сходимость на практике, связаннаяс передвижением вектора параметров «зигзагами». Распространённое решение этой проблемы ––метод стохастического градиентного спуска с моментом (SGD with momentum), также известный как метод тяжёлого шарика (heavy-ball method) [49].
Неформально этот метод интерпретирует вектор параметров как координаты шарика, имеющего некоторую массу, а стохастическийградиент –– как вектор, задающий силу, действующую на шарик. Также вводится коэффициент,задающий трение, которое препятствует неограниченному росту скорости. За счёт инерции метод приобретает устойчивость к разбросу значений градиента, а также избегает плато и «узких»локальных минимумов. Метод стохастического градиентного спуска может быть получен в предположении нулевой массы шарика и отсутствии трения.Алгоритм 1.2 Стохастический градиентный спуск с моментом по минибатчам.Вход: начальный набор параметров θ0Вход: последовательность длин шагов ηtВход: коэффициент сглаживания α < 1Вход: размер минибатча MВход: число шагов TВыход: итоговый вектор параметров θT1: m0 = ⃗0▷ Оценка «скорости»2: для t = 1, . .
. , T∑3:gt = M1 ∇θ Mi=1 L(xi , yi , θt−1 ), (xi , yi ) ∼ Dобучение4:mt = αmt−1 + ηt gt5:θt = θt−1 − mt6: конец циклаОписание метода приведено в алгоритме 1.2. Как правило, величина гиперпараметра α выбирается близкой к единице, 0,9 или 0,99. Заметим, что этот гиперпараметр влияет на эффективноезначение длины шага [26]. Если предположить, что все длины шагов ηt равна η, а все величины1ηg. Таким образом,стохастических градиентов gt равны g, то скорость m будет стремиться к 1−αэффективная длина шага составляет не η, а1η.1−α(1.17)Поэтому при смене величины α рекомендуется поменять длины шага ηt так, чтобы величина (1.17)не изменилась.
Например, если старое значение α было 0,99, а новое равно 0,9, то требуется уменьшить длины шагов в 10 раз.В последние годы активно развиваются стохастические методы с адаптивной длиной шага [50—53], позволяющие автоматически настраивать длину шага по каждой из координат вектора16параметров. Для этого используется информация о дисперсиях значений стохастического градиента: чем больше дисперсия, тем меньше длина шага.
Опишем один из самых популярных методов этого класса, ADAM [53]. Этот метод принципиально отличается от метода стохастическогоградиентного спуска с моментом двумя аспектами. Во-первых, длина шага по координате нормируется на корень из оценки второго момента соответствующей координаты вектора параметров.Это существенно ускоряет сходимость и снижает чувствительность метода к выбору базовой длины шага. Более того, во многих случаях можно выбрать константную длину шага η. Во-вторых,оценки первого и второго момента перемасштабируются, чтобы избежать смещения, вызванногонулевой инициализацией. За счёт этого метод более эффективен на первых шагах оптимизации..Формальное описание метода приведено в алгоритме 1.3.Алгоритм 1.3 Стохастический градиентный метод оптимизации с адаптивной длиной шагаADAM [53]. Все операции выполняются поэлементно.Вход: начальный набор параметров θ0Вход: последовательность базовых длин шага η (рекомендуемое значение –– константа 0,001)Вход: коэффициенты экспоненциального сглаживания β1 , β2 ∈ [0, 1) (рекомендуемые значения:β1 = 0,999, β2 = 0,9)Вход: константа, обеспечивающая численную устойчивость δ (рекомендуемое значение 10−8 )Вход: размер минибатча MВход: число шагов TВыход: итоговый вектор параметров θT1: m0 = ⃗0▷ Смещённая оценка первых моментов градиента2: v0 = ⃗0▷ Смещённая оценка вторых моментов градиента3: для t = 1, .
. . , T∑4:gt = M1 ∇θ Mi=1 L(xi , yi , θt−1 ), (xi , yi ) ∼ Dобучение5:mt = β1 mt−1 + (1 − β1 )gt6:vt = β2 vt−1 + (1 − β2 )(gt · gt )mt▷ Устранение смещения7:m̂t = 1−βt1vt8:v̂t = 1−β t▷ Устранение смещения2t9:θt = θt−1 − ηt √v̂m̂t +δ10: конец циклаОптимальный выбор метода оптимизации зависит от решаемой задачи и используемой нейросетевой модели. На сегодняшний день в моделях свёрточных нейронных сетей для задач классификации чаще используется стохастический градиентный спуск с моментом, а для вариационныхавтокодировщиков и рекуррентных сетей –– адаптивные методы, такие как ADAM. Считается, чтостохастический градиентный спуск с моментом более устойчив к переобучению, тогда как методыс адаптивной длиной шага проще в использовании [54; 55].171.1.5 Методы инициализацииКорректная инициализация параметров нейронной сети, то есть выбор начальной точкидля метода оптимизации θ0 , оказывает большое влияние на процесс обучения [26, раздел 8.4].Необходимым условием «правильной» инициализации является свойство нарушения симметрии(symmetry breaking): в каждом слое различные нейроны должны иметь различные выходы (какфункции от входов слоя).
Действительно, если предположить, что два нейрона всегда возвращают одинаковые значения, то и величина градиента по их параметрам будет равна, а значит, в ходеобучения любым градиентным методом их выходы будут совпадать. Поэтому веса нейронной сетинельзя инициализировать равными константными значениями. Для нарушения симметрии начальные веса нейронной сети генерируют из вероятностного распределения, как правило, нормальногоили равномерного с нулевым средним. Ключевой параметром такой инициализации –– дисперсияраспределения.Популярным способом выбора дисперсии инициализирующего распределения является подход Глорота и Бенджио [56], также известный как инициализация Завье (Xavier initialization) поимени первого автора. Пусть вход нейронной сети –– случайный вектор с нулевым средним и равной дисперсией компонент (это свойство можно обеспечить нормировкой вектора).
С одной стороны, мы хотели бы получить равные дисперсии активаций нейронов во всех слоях, чтобы избежать«затухания» или «взрыва» активаций сети, отрицательно влияющих на численную устойчивостьмодели. С другой стороны, желательно иметь равные дисперсии градиента функции потерь повходам во всех слоях, чтобы избежать аналогичных проблем с градиентами по параметрам. Еслисделать упрощающее предположение о линейной функции активации в нейронной сети, то можновывести уравнения для обеспечения этих двух требований в случае полносвязного слоя с матрицейвесов W ∈ RT ×S , то есть S входами и T выходами:SDWij = 1∀(i, j),(1.18)T DWij = 1∀(i, j).(1.19)Ясно, что оба требования удовлетворить невозможно при S ̸= T . В качестве компромиссапредлагается выбрать дисперсию весов равной среднему гармоническому, то естьDWij =2S+T∀(i, j).(1.20)Теперь определим параметры равномерного распределения, имеющего нулевое среднее и дисперсию (1.20).
Из требования нулевого среднего, искомое распределение имеет вид22Uniform[−x; x]. Дисперсия такого равномерного распределения равна (2x)= x3 . Решая уравне1222ние x3 = S+T, получаем следующий вид инициализирующего распределения:[ √]√66Uniform −;.(1.21)S+TS+TПрактически все используемые функции нелинейности, в том числе ReLU и сигмоидальная,приводят к снижению дисперсии выходов. Из-за этого инициализация по описанной схеме может18приводить к затуханию активаций в реальных нейронных сетях.
Так, работа [57] предлагает использовать для сетей с нелинейностью ReLU в два раза большую дисперсию весов, чем следуетиз уравнения (1.18):2DWij =∀(i, j).(1.22)SТочный аналитический учёт влияния нелинейности на дисперсию активаций нейронной сети весьма затруднителен. Для решения этой проблемы в работе [58] предлагается итеративно перенормировать веса нейронной сети до тех пор, пока эмпирическая дисперсия активаций на реальных данных не станет близка к единичной.
Показано, что в некоторых случаях это улучшаетскорость сходимости нейронных сетей.Отметим, что все изложенные методы относятся к инициализации матриц весов нейронныхсетей. Смещения нейронов обычно инициализируются нулями [57]. В частности, это устраняетвлияние смещений на дисперсии входов, что улучшает точность аппроксимаций.Другим крайне популярным способом инициализации параметров нейронных сетей является предобучение: нейронная сеть обучается на какой-то задаче, а полученные параметры используются как инициализация для дообучения на целевой задаче. Дообучение выполняется таким жеобразом, что и первичное обучение, но с меньшей длиной шага. Иногда эта стратегия применяется лишь для части параметров, а остальные инициализируются случайно.
Приведём несколькопримеров предобучения глубинных нейронных сетей.В 2006-2007 годах в работах Хинтона и Салахутдинова [59], а также Бенджио и др. [60]были впервые представлены методы совместного обучения с учителем глубинных нейросетевыхмоделей прямого распространения. Ключевым элементом являлось послойное обучение без учителя. Параметры слоёв глубинной модели последовательно настраивались алгоритмом обученияограниченной машины Больцманна (restricted Boltzmann machine) [61; 62].