Обмен технологиями

[Глубокое обучение] Основы графической модели (7): метод уменьшения дисперсии в оптимизации машинного обучения (1)

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Краткое содержание

Стохастическая оптимизация является жизненно важным компонентом машинного обучения, и в ее основе лежит алгоритм стохастического градиентного спуска (SGD), метод, который широко используется с момента его первого предложения более 60 лет назад. За последние восемь лет мы стали свидетелями новой интересной разработки: методов уменьшения дисперсии для методов стохастической оптимизации. Эти методы уменьшения дисперсии (методы VR) хорошо работают в сценариях, которые допускают несколько итераций обучающих данных, демонстрируя более быструю сходимость, чем SGD, как в теории, так и на практике. Такое увеличение скорости подчеркивает растущий интерес к методам виртуальной реальности и быстрое накопление результатов исследований в этой области. В этой статье рассматриваются ключевые принципы и основные достижения в методах VR для оптимизации ограниченных наборов данных с целью информирования читателей, не являющихся экспертами. Мы фокусируемся в первую очередь на средах выпуклой оптимизации и предоставляем справочную информацию для читателей, интересующихся расширениями минимизации невыпуклых функций.

Ключевые слова Оптимизация машинного обучения;

1. Введение

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

x ∗ ∈ arg ⁡ min ⁡ x ∈ R d 1 n ∑ i = 1 n ( ai T x − bi ) 2 x^* в argmin_{x в mathbb{R}^d} frac{1}{n} sum_{i=1}^{n} (a_i^T x - b_i)^2ИксаргИксргминн1я=1н(аяТИксбя)2

В этой модели мы имеем ддг параметры, которые представлены векторами x ∈ R dx в mathbb{R}^dИксрг данный.А пока у нас есть под рукой ннн точки данных, включая векторы признаков ai ∈ R d a_i в mathbb{R}^dаярг и целевое значение bi ∈ R b_i в mathbb{R}бяр .Процесс адаптации модели заключается в корректировке этих параметров таким образом, чтобы прогнозируемый результат модели ай Т х а_й^Т хаяТИкс в среднем как можно ближе к целевому значению би б_ибя

В более широком смысле мы могли бы использовать функцию потерь фи ( х ) f_i(x)фя(Икс) Чтобы измерить предсказания модели и iiя Насколько близки точки данных:

x ∗ ∈ arg ⁡ min ⁡ x ∈ R df ( x ) : = 1 n ∑ i = 1 nfi ( x ) x^* в argmin_{x в mathbb{R}^d} f(x) := frac{1}{n} sum_{i=1}^{n} f_i(x)ИксаргИксргминф(Икс):=н1я=1нфя(Икс)

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

Проблемы, подобные форме (2), приведенной выше, применимы не только к линейным задачам наименьших квадратов, но и ко многим другим моделям, изучаемым в машинном обучении. Например, в модели логистической регрессии мы решаем:

x ∗ ∈ arg ⁡ min ⁡ x ∈ R d 1 n ∑ i = 1 n log ⁡ ( 1 + e − biai T x ) + λ 2 ∥ x ∥ 2 2 x^* в argmin_{x в mathbb{R}^d} frac{1}{n} sum_{i=1}^{n} log(1 + e^{-b_i a_i^T x}) + frac{lambda}{2} |x|_2^2ИксаргИксргминн1я=1нвотг(1+ебяаяТИкс)+2λИкс22

Здесь мы имеем дело с bi ∈ { − 1 , + 1 } b_i в {-1, +1}бя{1,+1} Для задачи бинарной классификации прогноз основан на ай Т х а_й^Т хаяТИкс символы.В формулу также введен регуляризационный член λ 2 ∥ x ∥ 2 2 frac{lambda}{2} |x|_2^22λИкс22 чтобы избежать переобучения данных, где ∥ х ∥ 2 2 |х|_2^2Икс22 выражать ххИкс Квадрат евклидовой нормы .

В большинстве моделей обучения с учителем процесс обучения может быть выражен в виде (2), включая регуляризованный метод наименьших квадратов L1, машину опорных векторов (SVM), анализ главных компонентов, условные случайные поля и глубокие нейронные сети и т. д.

Ключевой проблемой в современных примерах проблем является количество точек данных. ннн Наверное, очень большой. Мы часто имеем дело с наборами данных, размер которых выходит далеко за пределы терабайта и которые могут поступать из самых разных источников, таких как Интернет, спутники, удаленные датчики, финансовые рынки и научные эксперименты. Для работы с такими большими наборами данных обычно используют алгоритм стохастического градиентного спуска (SGD), который использует лишь небольшое количество случайно выбранных точек данных на каждой итерации. Кроме того, в последнее время резко возрос интерес к методам стохастического градиента уменьшения дисперсии (VR), которые имеют более высокую скорость сходимости, чем традиционные методы стохастического градиента.
Вставьте сюда описание изображения
Рисунок 1. В задаче логистической регрессии, основанной на грибовидном наборе данных [7], градиентном спуске (GD), ускоренном градиентном спуске (AGD, ускоренном GD в [50]), стохастическом градиентном спуске (SGD) и методе ADAM [30] по сравнению с методами уменьшения дисперсии (VR) SAG и SVRG, где n = 8124, d = 112.

1.1. Градиентный и стохастический методы градиентного спуска.

Градиентный спуск (GD) — это классический алгоритм, используемый для решения вышеуказанной проблемы (2), и его формула итеративного обновления выглядит следующим образом:
xk + 1 = xk − γ 1 n ∑ i = 1 n ∇ fi ( xk ) x_{k+1} = x_k - гамма-дробность{1}{n} сумма_{i=1}^{n} набла f_i(x_k)Икск+1=Икскγн1я=1нфя(Икск)

здесь, γ гаммаγ — фиксированное значение шага, большее нуля.Во время каждой итерации алгоритма GD каждая точка данных должна быть iiя Рассчитать градиент ∇ fi ( xk ) набла f_i(x_k)фя(Икск), а это значит, что GD требует всех ннн выполнить полный обход точек данных.Когда размер набора данных ннн Когда он становится очень большим, стоимость каждой итерации алгоритма GD становится очень высокой, что ограничивает его применение.

В качестве альтернативы можно рассмотреть метод стохастического градиентного спуска (SGD), который впервые был предложен Роббинсом и Монро, и его формула итеративного обновления выглядит следующим образом:
xk + 1 = xk − γ ∇ fik ( xk ) x_{k+1} = x_k - гамма набла f_{i_k}(x_k)Икск+1=Икскγфяк(Икск)

Алгоритм SGD работает, используя только градиент одной случайно выбранной точки данных на каждой итерации. ∇ фик ( xk ) набла f_{i_k}(x_k)фяк(Икск) снизить стоимость каждой итерации. На рисунке 1 мы видим, что SGD достигает более значительного прогресса, чем GD (включая ускоренные методы GD) на ранних этапах процесса оптимизации.На графике показан ход оптимизации с точки зрения эпох, которые определяются как расчет всех ннн Количество градиентов для обучающих выборок. Алгоритм GD выполняет одну итерацию в каждом раунде, а алгоритм SGD выполняет одну итерацию в каждом раунде. ннн итерации.Мы используем раунды в качестве основы для сравнения SGD и GD, поскольку по предположению ннн В очень больших случаях основная стоимость обоих методов сосредоточена в градиенте. ∇ fi ( xk ) набла f_i(x_k)фя(Икск) расчет.

1.2. Проблема дисперсии

Рассмотрим случайную индексацию ик и_кяк из коллекции { 1 , … , n } {1, лточки, n}{1,,н} В случае равномерного случайного отбора это означает, что для всех iiя,выбирать ик = я i_k = яяк=я Вероятность P [ ik = i ] P[i_k = i]п[як=я] равный 1 н фрак{1}{н}н1 . в этом случае, ∇ фик ( xk ) набла f_{i_k}(x_k)фяк(Икск) как ∇ f ( xk ) набла f(x_k)ф(Икск) Оценка является несмещенной, поскольку по определению ожидания мы имеем:
E [ ∇ fik ( xk ) ∣ xk ] = 1 n ∑ i = 1 n ∇ fi ( xk ) = ∇ f ( xk ) ( 6 ) E[набла f_{i_k}(x_k) | x_k] = frac{1}{n} sum_{i=1}^{n} набла f_i(x_k) = набла f(x_k) quad (6)Э[фяк(Икск)Икск]=н1я=1нфя(Икск)=ф(Икск)(6)

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

Однако наличия несмещенной оценки градиента недостаточно для обеспечения сходимости итераций SGD. Чтобы проиллюстрировать этот момент, на рисунке 2 (слева) показана итеративная траектория SGD при применении функции логистической регрессии с использованием постоянного размера шага к набору данных из четырех категорий, предоставленному LIBSVM [7].Концентрические эллипсы на рисунке представляют контуры функции, то есть значение функции f ( x ) = cf(x) = cф(Икс)=с соответствующая точка ххИкс собирать, копийс — это определенная константа в наборе действительных чисел.разные постоянные значения копийс Соответствует различным эллипсам.

Итерационная траектория SGD не сходится к оптимальному решению (обозначен на рисунке зеленой звездочкой), а формирует облако точек вокруг оптимального решения. Напротив, на рисунке 2 мы показываем итерационную траекторию метода уменьшения дисперсии (VR), стохастического среднего градиента (SAG), с использованием того же постоянного размера шага, который мы представим позже. Причина, по которой SGD не сходится в этом примере, заключается в том, что сам стохастический градиент не сходится к нулю, и, следовательно, метод SGD с постоянным шагом (5) никогда не останавливается.Это резко контрастирует с методами градиентного спуска (GD), которые, естественно, прекращаются при хк х_кИкск Подходы х ∗ х^*Икс,градиент ∇ f ( xk ) набла f(x_k)ф(Икск) будет стремиться к нулю.
Вставьте сюда описание изображения
Рисунок 2. Графики набора уровней для двумерной логистической регрессии с использованием итеративных методов SGD (слева) и SAG (справа) с фиксированным шагом. Зеленая звездочка обозначает xразвязать.

1.3. Классический метод уменьшения дисперсии.

обработка из-за ∇ fi ( xk ) набла f_i(x_k)фя(Икск) Существует несколько классических методов решения проблем несходимости, вызванных дисперсией значений.Например, Роббинс и Монро [64] используют серию убывающих ступеней. γ k гамма_kγк решить проблему дисперсии, гарантируя, что произведение γ k ∇ fik ( xk ) gamma_k набла f_{i_k}(x_k)γкфяк(Икск) может сходиться к нулю. Однако корректировка этой последовательности уменьшающихся шагов во избежание слишком ранней или слишком поздней остановки алгоритма является сложной проблемой.

Другой классический метод уменьшения дисперсии — использование нескольких ∇ fi ( xk ) набла f_i(x_k)фя(Икск) среднее значение для получения полного градиента ∇ f ( x ) набла f(x)ф(Икс) более точная оценка. Этот подход называется мини-пакетом и особенно полезен, когда несколько градиентов можно оценивать параллельно. Это приводит к повторению формы:
xk + 1 = xk − γ 1 ∣ B k ∣ ∑ i ∈ B k ∇ fi ( xk ) ( 7 ) x_{k+1} = x_k - гамма-дробность{1}{|B_k|} сумма_{i в B_k} набла f_i(x_k) четверка (7)Икск+1=ИкскγБк1яБкфя(Икск)(7)
в Б к Б_кБк представляет собой случайный набор индексов, ∣ Б к ∣ |Б_к|Бк выражать Б к Б_кБк размер.если Б к Б_кБк При равномерной выборке с заменой дисперсия этой оценки градиента связана с «размером партии». ∣ Б к ∣ |Б_к|Бк обратно пропорциональна, поэтому дисперсию можно уменьшить, увеличив размер партии.

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

Другая распространенная стратегия уменьшения дисперсии и улучшения эмпирических показателей SGD — добавление «импульса», дополнительного термина, основанного на направлении, использованном на прошлых этапах. В частности, форма SGD с импульсом выглядит следующим образом:
xk + 1 = xk − γ mk ( 9 ) x_{k+1} = x_k - гамма m_k квад (9)Икск+1=Икскγмк(9)
где параметр импульса β бетаβ Расположен в диапазоне (0, 1).Если начальный импульс м 0 = 0 м_0 = 0м0=0, и разложим в (8) тк м_кмк Для обновлений мы получаем тк м_кмк представляет собой средневзвешенное значение предыдущих градиентов:
mk = ∑ t = 0 k β k − t ∇ fit ( xt ) ( 10 ) m_k = sum_{t=0}^{k} beta^{kt} nabla f_{i_t}(x_t) quad (10)мк=т=0кβктфят(Икст)(10)
поэтому, тк м_кмк представляет собой взвешенную сумму стохастических градиентов.потому что ∑ t = 0 k β k − t = 1 − β k + 1 1 − β сумма_{t=0}^{k} бета^{kt} = дробь{1 - бета^{k+1}}{1 - бета}т=0кβкт=1β1βк+1, мы можем конвертировать 1 − β 1 − β кмк фрак{1 - бета}{1 - бета^k} м_к1βк1βмк Рассматривается как средневзвешенное значение стохастических градиентов.Если мы сравним это с выражением для полного градиента ∇ f ( xk ) = 1 n ∑ i = 1 n ∇ fi ( xk ) набла f(x_k) = frac{1}{n} sum_{i=1}^{n} набла f_i(x_k)ф(Икск)=н1я=1нфя(Икск) Для сравнения мы можем 1 − β 1 − β кмк фрак{1 - бета}{1 - бета^k} м_к1βк1βмк(а также тк м_кмк ) интерпретируется как оценка полного градиента. Хотя эта взвешенная сумма уменьшает дисперсию, она также поднимает ключевые проблемы.Поскольку взвешенная сумма (10) придает больший вес недавно выбранным градиентам, она не будет сходиться к полному градиенту. ∇ f ( xk ) набла f(x_k)ф(Икск) , последнее представляет собой простое среднее. Первый метод уменьшения дисперсии, который мы увидим в разделе II-A, решает эту проблему, используя простое среднее вместо любого взвешенного среднего.

1.4. Современные методы уменьшения дисперсии.

В отличие от классических методов, они напрямую используют один или несколько ∇ fi ( xk ) набла f_i(x_k)фя(Икск) как ∇ f ( xk ) набла f(x_k)ф(Икск) В качестве приближения современные методы уменьшения дисперсии (VR) используют другую стратегию.Эти методы используют ∇ fi ( xk ) набла f_i(x_k)фя(Икск) обновить оценку градиента гк г_кгк, цель которого – сделать гк г_кгк подход ∇ f ( xk ) набла f(x_k)ф(Икск) .В частности, мы надеемся гк г_кгк способен удовлетворить gk ≈ ∇ f ( xk ) g_k приблизительно набла f(x_k)гкф(Икск) . На основе таких оценок градиента мы затем выполняем приблизительный шаг градиента в форме:
xk + 1 = xk − γ gk ( 11 ) x_{k+1} = x_k - гамма g_k квад (11)Икск+1=Икскγгк(11)
здесь γ > 0 гамма > 0γ>0 — параметр размера шага.

Чтобы гарантировать использование постоянного размера шага γ гаммаγ Когда итерация (11) может сойтись, нам нужно убедиться, что оценка градиента гк г_кгк Дисперсия стремится к нулю. Математически это можно выразить так:
E [ ∥ gk − ∇ f ( xk ) ∥ 2 ] → 0 при k → ∞ ( 12 ) Eleft[ | g_k - nabla f(x_k) |^2 right] rightarrow 0 quad text{as } k rightarrow infty quad (12)Э[гкф(Икск)2]0какк(12)
ожидания здесь ЭЭЭ основан на алгоритме с точностью до ккк Все случайные величины рассчитываются для итераций. Свойство (12) обеспечивает возможность остановки метода VR при достижении оптимального решения. Мы считаем это свойство отличительной чертой подхода виртуальной реальности и поэтому называем его свойством виртуальной реальности. Стоит отметить, что выражение «приведенная» дисперсия может ввести в заблуждение, поскольку на самом деле дисперсия стремится к нулю. Свойство (12) является ключевым фактором, позволяющим методам VR достигать более быстрой сходимости в теории (при соответствующих предположениях) и на практике (как показано на рисунке 1).

1.5. Первый пример метода уменьшения дисперсии: SGD².

Простой метод улучшения может заставить рекурсивную формулу SGD (5) достичь сходимости без уменьшения размера шага, то есть перевода каждого градиента. Конкретный метод заключается в вычитании. ∇ fi ( x ∗ ) набла f_i(x^*)фя(Икс), этот метод определяется следующим образом:
xk + 1 = xk − γ ( ∇ fik ( xk ) − ∇ fik ( x ∗ ) ) ( 13 ) x_{k+1} = x_k - гамма (набла f_{i_k}(x_k) - набла f_{i_k}(x^*)) четверка (13)Икск+1=Икскγ(фяк(Икск)фяк(Икс))(13)
Этот метод называется SGD² [22].Хотя мы обычно не можем знать наверняка каждый ∇ fi ( x ∗ ) набла f_i(x^*)фя(Икс) , но SGD², как пример, может хорошо проиллюстрировать основные характеристики метода уменьшения дисперсии.Более того, многие методы уменьшения дисперсии можно рассматривать как приблизительную форму метода SGD². Эти методы не полагаются на известные данные; ∇ fi ( x ∗ ) набла f_i(x^*)фя(Икс), но вместо этого используйте метод, который может аппроксимировать ∇ fi ( x ∗ ) набла f_i(x^*)фя(Икс) расчетная стоимость.

Стоит отметить, что SGD² использует несмещенную оценку полного градиента.потому что ∇ f ( x ∗ ) = 0 набла f(x^*) = 0ф(Икс)=0,Ф:
E [ ∇ fik ( xk ) − ∇ fik ( x ∗ ) ] = ∇ f ( xk ) − ∇ f ( x ∗ ) = ∇ f ( xk ) E[набла f_{i_k}(x_k) - набла f_{i_k}(x^*)] = набла f(x_k) - набла f(x^*) = набла f(x_k)Э[фяк(Икск)фяк(Икс)]=ф(Икск)ф(Икс)=ф(Икск)
Кроме того, когда SGD² достигнет оптимального решения, он, естественно, остановится, поскольку для любого iiя,иметь:
( ∇ fi ( x ) − ∇ fi ( x ∗ ) ) ∣ x = x ∗ = 0 (набла f_i(x) - набла f_i(x^*)) bigg|_{x=x^*} = 0(фя(Икс)фя(Икс)) Икс=Икс=0

При дальнейшем наблюдении с хк х_кИкск около х ∗ х^*Икс(для последовательных ∇ фи набла ф_ифя), SGD² удовлетворяет свойству уменьшения дисперсии (12), потому что:
E [ ∥ gk − ∇ f ( xk ) ∥ 2 ] = E [ ∥ ∇ fik ( xk ) − ∇ fik ( x ∗ ) − ∇ f ( xk ) ∥ 2 ] ≤ E [ ∥ ∇ fik ( xk ) − ∇ fik ( x ∗ ) ∥ 2 ] Увеличить[ | g_k - набла f(x_k) |^2 вправо] = \Eвлево[ | набла f_{i_k}(x_k) - набла f_{i_k}(x^*) - набла f(x_k) |^2 вправо] leq Eleft[ | набла f_{i_k}(x_k) - набла f_{i_k}(x^*) |^2 вправо]Э[гкф(Икск)2]=Э[∥∇фяк(Икск)фяк(Икс)ф(Икск)2]Э[∥∇фяк(Икск)фяк(Икс)2]
Здесь воспользуемся леммой 2, пусть X = ∇ fik ( xk ) − ∇ fik ( x ∗ ) X = набла f_{i_k}(x_k) - набла f_{i_k}(x^*)Икс=фяк(Икск)фяк(Икс), и воспользовался E [ ∇ fik ( xk ) − ∇ fik ( x ∗ ) ] = ∇ f ( xk ) E[набла f_{i_k}(x_k) - набла f_{i_k}(x^*)] = набла f(x_k)Э[фяк(Икск)фяк(Икс)]=ф(Икск) природа. Это свойство указывает на то, что SGD² имеет более высокую скорость сходимости, чем традиционные методы SGD, которые мы подробно описали в Приложении B.

1.6. Метод быстрой сходимости дисперсии.

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

Предположение 1 (непрерывность Липшица)

Предположим, что функция фффявляется дифференцируемым и ЛЛЛ- гладко, для всех ххИкс и ггу и кто-то 0 &lt; L &lt; ∞ 0 &lt; L &lt; бесконечность0<Л<,Следующие условия:
∥ ∇ f ( x ) − ∇ f ( y ) ∥ ≤ L ∥ x − y ∥ ( 14 ) | набла f(x) - набла f(y)| leq L|x - y| quad (14)∥∇ф(Икс)ф(у)ЛИксу(14)
Это означает, что каждый fi : R d → R fi: mathbb{R}^d правая стрелка mathbb{R}фя:ргр является дифференцируемым, Л и Л_иЛя- гладкая, определяем L макс L_{text{макс}}ЛМакс для макс ⁡ { L 1 , . . . , L n } макс{L_1, . . . , Л_н}Макс{Л1,...,Лн}

Хотя обычно это предположение считается слабым, в последующих главах мы обсудим методы виртуальной реальности, подходящие для решения негладких задач. Для дважды дифференцируемой одномерной функции ЛЛЛ- Гладкость можно интуитивно понимать как: это эквивалентно предположению, что вторая производная равна ЛЛЛ верхний предел, то есть ∣ f ′ ′ ( x ) ∣ ≤ L |f''(x)| leq Lф′′(Икс)Л для всех x ∈ R dx в mathbb{R}^dИксрг .Для дважды дифференцируемых функций многих переменных это эквивалентно предположению матрицы Гессе ∇ 2 f ( x ) набла^2 f(x)2ф(Икс) Единственное значение ЛЛЛ верхний предел.

Предположение 2 (сильная выпуклость)

Вторая гипотеза, которую мы рассматриваем, заключается в том, что функция (f) μ мюμ-сильно выпуклый, что означает, что для определенного μ &gt; 0 мю &gt; 0μ>0, функция x ↦ f ( x ) − μ 2 ∥ x ∥ 2 x отображается в f(x) - frac{mu}{2}|x|^2Иксф(Икс)2μИкс2 Он выпуклый.Более того, для каждого я = 1 , . . . , ni = 1, . . . , ня=1,...,н fi : R d → R fi: mathbb{R}^d правая стрелка mathbb{R}фя:ргр Он выпуклый.

Это сильное предположение.В задаче наименьших квадратов каждая (fi$ выпукла, но общая функция (f) находится только в матрице плана А : = [ а 1 , . . . , а н ] А := [а_1, . . . , а_н]А:=[а1,...,ан] Он сильно выпуклый только в том случае, если имеет совершенный ранг строки. Задача регуляризованной логистической регрессии L2 удовлетворяет этому предположению из-за существования члена регуляризации, где μ ≥ λ mu geq лямбдаμλ

Важным классом задач, удовлетворяющих этим предположениям, являются задачи оптимизации вида:
x ∗ ∈ arg ⁡ min ⁡ x ∈ R df ( x ) = 1 n ∑ i = 1 n ℓ i ( ai T x ) + λ 2 ∥ x ∥ 2 ( 15 ) x^* в argmin_{x в mathbb{R}^d} f(x) = frac{1}{n} sum_{i=1}^{n} ell_i(a_i^Tx) + frac{lambda}{2}|x|^2 quad (15)ИксаргИксргминф(Икс)=н1я=1ня(аяТИкс)+2λИкс2(15)
где каждая функция «потери» ℓ i : R → R ell_i: mathbb{R} стрелка вправо mathbb{R}я:рр дважды дифференцируема, а ее вторая производная ℓ я ′ ′ ell_i''я′′ ограничено 0 и некоторой верхней границей МММ между. Сюда входят различные функции потерь с регуляризацией L2 в машинном обучении, такие как метод наименьших квадратов, логистическая регрессия, пробит-регрессия, робастная регрессия Хубера и т. д.В этом случае для всех iiя,У нас есть L i ≤ M ∥ ai ∥ 2 + λ L_i leq M|a_i|^2 + лямбдаЛяМая2+λ и μ ≥ λ mu geq лямбдаμλ

В этих предположениях скорость сходимости метода градиентного спуска (ГР) определяется числом обусловленности κ : = L / μ каппа := L/мюκ:=Л/μ Решать. Число обусловленности всегда больше или равно 1, а когда оно значительно больше 1, контуры функции становятся очень эллиптическими, что приводит к колебаниям итераций метода GD.Напротив, когда κ каппаκ Когда оно близко к 1, метод GD сходится быстрее.

При предположениях 1 и 2 метод VR сходится с линейной скоростью.Мы говорим, что значение функции случайного метода ({f(x_k)}) определяется выражением 0 &lt; ρ ≤ 1 0 &lt; ро leq 10<ρ1 Скорость линейной сходимости (ожидаемая), если существует константа С &gt; 0 С &gt; 0С>0 Делает:
E [ f ( xk ) ] − f ( x ∗ ) ≤ ( 1 − ρ ) k C = O ( exp ⁡ ( − k ρ ) ) ∀ k ( 16 ) E[f(x_k)] - f(x^*) leq (1 - rho)^k C = O(exp(-krho)) quad forall k quad (16)Э[ф(Икск)]ф(Икс)(1ρ)кС=О(эксп(кρ))к(16)
В этом отличие от классических методов SGD, которые полагаются только на несмещенные оценки градиента на каждой итерации, которые получают сублинейные скорости только при этих предположениях:
E [ f ( xk ) ] − f ( x ∗ ) ≤ O ( 1 / k ) E[f(x_k)] - f(x^*) leq O(1/k)Э[ф(Икск)]ф(Икс)О(1/к)
Минимум, удовлетворяющий этому неравенству ккк Это называется итеративной сложностью алгоритма. Ниже приведены итерационная сложность и стоимость одной итерации для базовых вариантов методов GD, SGD и VR:

алгоритмКоличество итерацийстоимость итерации
ГД O ( κ log ⁡ ( 1 / ϵ ) ) O(каппа log(1/эпсилон))О(κвотг(1/ϵ)) О ( н ) О(н)О(н)
сингапурский доллар O ( κ макс макс ⁡ ( 1 / ϵ ) ) O(kappa_{text{max}} макс(1/эпсилон))О(κМаксМакс(1/ϵ)) О ( 1 ) О(1)О(1)
ВР O ( ( κ max + n ) log ⁡ ( 1 / ϵ ) ) O((kappa_{text{max}} + n) log(1/epsilon))О((κМакс+н)вотг(1/ϵ)) О ( 1 ) О(1)О(1)

Общее время работы алгоритма определяется произведением сложности итерации и времени ее выполнения.используется здесь κ макс : = макс ⁡ i L i / μ каппа_{текст{макс}} := макс_i L_i/мюκМакс:=МаксяЛя/μ .Уведомление κ макс ≥ κ каппа_{text{макс}} гэк каппаκМаксκ; Следовательно, сложность итерации GD меньше, чем у метода VR;

Однако, поскольку стоимость одной итерации GD равна стоимости метода VR ннн раз, метод VR превосходит по общему времени работы.

Преимущество классических методов SGD в том, что время их работы и скорость сходимости не зависят от ннн, но у него есть толерантность ϵ эпсилонϵ Зависимость гораздо хуже, что объясняет плохую работу SGD при малом допуске.

В Приложении B мы приводим простое доказательство того, что метод SGD² имеет ту же итерационную сложность, что и метод VR.

2. Базовый метод уменьшения дисперсии

Разработка методов уменьшения дисперсии (VR) прошла несколько этапов, и первая партия методов привела к значительному улучшению скорости сходимости. Началом этой серии методов является алгоритм SAG. Впоследствии один за другим появились алгоритм стохастического подъема двойной координаты (SDCA), алгоритм MISO, алгоритм уменьшения стохастического градиента (SVRG/S2GD) и алгоритм SAGA (что означает «улучшенный» SAG).

В этой главе мы подробно опишем эти новаторские методы виртуальной реальности. В главе 4 мы рассмотрим некоторые новые методы, которые демонстрируют превосходные характеристики по сравнению с этими базовыми методами в конкретных сценариях применения.

2.1. Метод стохастического среднего градиента (SAG).

Наше исследование первого метода уменьшения дисперсии (VR) начинается с имитации полной градиентной структуры.Поскольку полный градиент ∇ f ( x ) набла f(x)ф(Икс) это все ∇ fi ( x ) набла f_i(x)фя(Икс) Простое среднее градиентов, затем наша оценка полного градиента гк г_кгк Это также должно быть среднее значение этих оценок градиента. Эта идея породила наш первый метод VR: метод стохастического среднего градиента (SAG).

Метод SAG [37], [65] представляет собой рандомизированную версию метода раннего инкрементного агрегированного градиента (IAG) [4]. Основная идея SAG заключается в том, что для каждой точки данных iiя поддерживать оценку vik ≈ ∇ fi ( xk ) v_{ik} приблизительно набла f_i(x_k)викфя(Икск) .Затем используйте эти вик в_{ик}вик В качестве оценки полного градиента используется среднее значение, то есть:
g ˉ k = 1 n ∑ j = 1 nvjk ≈ 1 n ∑ j = 1 n ∇ fj ( xk ) = ∇ f ( xk ) ( 18 ) bar{g}_k = frac{1}{n} sum_{j=1}^{n} v_{jk} approx frac{1}{n} sum_{j=1}^{n} nabla f_j(x_k) = nabla f(x_k) quad (18)гˉк=н1дж=1нвшучун1дж=1нфдж(Икск)=ф(Икск)(18)

В каждой итерации SAG из набора { 1 , … , n } {1, лточки, n}{1,,н} Извлечь индекс из ик и_кяк, а затем обновляется в соответствии со следующими правилами вжк в_{жк}вшучу
vjkk + 1 = { ∇ fik ( xk ) , если j = ikvjkk , если j ≠ ik ( 19 ) v_{jk}^{k+1} ={фяк(Икск),еслидж=яквкджк,еслиджяк квадроцикл (19)вшучук+1={фяк(Икск),вшучук,еслидж=якеслидж=як(19)
Среди них каждый в 0 я в_{0i}в0я Может быть инициализирован нулем или ∇ fi ( x 0 ) набла f_i(x_0)фя(Икс0) приблизительная стоимость.С решением х ∗ х^*Икс приближение, каждый вик в_{ик}вик постепенно сойдется к ∇ fi ( x ∗ ) набла f_i(x^*)фя(Икс), тем самым удовлетворяя свойству VR (12).

Чтобы эффективно реализовать SAG, нам необходимо обратить внимание на расчет г ˉ к бар{г}_кгˉк чтобы не начинать суммирование каждый раз с нуля ннн вектор, потому что это ннн Цена высока, когда она большая.К счастью, поскольку каждая итерация имеет только один вик в_{ик}вик Условия изменятся и нам не придется каждый раз пересчитывать всю сумму.В частности, предположим, что при итерации ккк Индекс извлечен из ик и_кяк, то есть:
g ˉ k = 1 n ∑ j = 1 j ≠ iknvjk + 1 nvikk = g ˉ k − 1 − 1 nvikk − 1 + 1 nvikk ( 20 ) бар{g}_k = фрак{1}{n} сумма_{подстек{j=1 \ j neq i_k}}^{n} v_{jk} + фрак{1}{n} v_{i_k}^k = бар{g}_{k-1} - фрак{1}{n} v_{i_k}^{k-1} + фрак{1}{n} v_{i_k}^k четверка (20)гˉк=н1дж=1дж=якнвшучу+н1вякк=гˉк1н1вякк1+н1вякк(20)

Поскольку помимо вик в_{и_к}вяк все, кроме вжк в_{жк}вшучу Все значения остаются прежними, мы просто сохраняем каждое дждждж Вектор, соответствующий вж в_жвдж . Алгоритм 1 показывает конкретную реализацию метода SAG.

SAG — первый стохастический метод, обеспечивающий линейную сходимость, сложность его итерации равна O ( ( κ max + n ) log ⁡ ( 1 / ϵ ) ) O((kappa_{text{max}} + n) log(1/epsilon))О((κМакс+н)вотг(1/ϵ)), используя размер шага γ = O ( 1 / L макс ) гамма = O(1/L_{text{макс}})γ=О(1/ЛМакс) . Эту линейную сходимость можно наблюдать на рисунке 1.Стоит отметить, что из-за L макс L_{text{макс}}ЛМакс-Плавная функция для любого L ′ ≥ L макс L' geq L_{text{max}}ЛЛМакс Слишком Л ′ Л'Л- Гладкие методы SAG достигают линейной скорости сходимости при достаточно малых размерах шагов, в отличие от классических методов SGD, которые достигают сублинейных скоростей только с последовательностями уменьшения размеров шагов, которые трудно регулировать на практике.

В то время линейная сходимость SAG была значительным достижением, поскольку она вычисляла только один стохастический градиент (обработка одной точки данных) на каждой итерации. Однако доказательство сходимости, предоставленное Шмидтом и др. [65], очень сложно и основано на компьютерно проверенных шагах. Основная причина, по которой SAG трудно анализировать, заключается в том, что гк г_кгк является смещенной оценкой градиента.

Далее мы представляем метод SAGA, вариант SAG, который использует концепцию ковариат для создания несмещенного варианта метода SAG, который имеет аналогичную производительность, но его легче анализировать.


Алгоритм 1: метод SAG

  1. Параметры: размер шага γ &gt; 0 гамма &gt; 0γ>0
  2. инициализация: х 0 х_0Икс0 vi = 0 ∈ R d v_i = 0 в mathbb{R}^dвя=0рг для i = 1, …, ni = 1, ldots, nя=1,,н
  3. верно k = 1, …, T − 1 k = 1, ldots, T - 1к=1,,Т1 осуществлять:
    а. Случайный выбор ik ∈ { 1 , … , n } i_k в {1, ldots, n}як{1,,н}
    б. Рассчитать g ˉ k = g ˉ k − 1 − 1 nvikk − 1 бар{g}_k = бар{g}_{k-1} - frac{1}{n} v_{i_k}^{k-1}гˉк=гˉк1н1вякк1
    в. Обновление викк = ∇ фик ( xk ) v_{i_k}^k = набла f_{i_k}(x_k)вякк=фяк(Икск)
    d. Обновить оценку градиента. g ˉ k = g ˉ k + 1 nvikk бар{g}_k = бар{g}_k + фрак{1}{n} v_{i_k}^kгˉк=гˉк+н1вякк
    е. Обновление xk + 1 = xk − γ g ˉ k x_{k+1} = x_k - гамма-бар{g}_kИкск+1=Икскγгˉк
  4. Выход: х Т х_ТИксТ

2.2.Метод САГА

Сокращенная базовая несмещенная оценка градиента ∇ фик ( xk ) набла f_{i_k}(x_k)фяк(Икск) Дисперсионный подход заключается в использовании так называемых ковариат или контрольных переменных.для i = 1, …, ni = 1, ldots, nя=1,,н,настраивать vi ∈ R d v_i в mathbb{R}^dвярг является вектором.Используя эти векторы, мы можем преобразовать полный градиент ∇ f ( x ) набла f(x)ф(Икс) Переписано как:
∇ f ( x ) = 1 n ∑ i = 1 n ( ∇ fi ( x ) − vi + vi ) = 1 n ∑ i = 1 n ∇ fi ( x ) − vi + 1 n ∑ j = 1 nvj набла f(x) = frac{1}{n} sum_{i=1}^{n}(набла f_i(x) - v_i + v_i) = frac{1}{n} sum_{i=1}^{n} набла f_i(x) - v_i + frac{1}{n} sum_{j=1}^{n} v_jф(Икс)=н1я=1н(фя(Икс)вя+вя)=н1я=1нфя(Икс)вя+н1дж=1нвдж
: = 1 n ∑ i = 1 n ∇ fi ( x , v ) ( 21 ) := frac{1}{n} sum_{i=1}^{n} nabla f_i(x, v) quad (21):=н1я=1нфя(Икс,в)(21)
который определяет ∇ fi ( x , v ) : = ∇ fi ( x ) − vi + 1 n ∑ j = 1 nvj набла f_i(x, v) := набла f_i(x) - v_i + frac{1}{n} sum_{j=1}^{n} v_jфя(Икс,в):=фя(Икс)вя+н1дж=1нвдж .Теперь мы можем случайным образом выбрать ∇ fi ( x , v ) набла f_i(x, v)фя(Икс,в) построить полный градиент ∇ f ( x ) набла f(x)ф(Икс) Непредвзятая оценка i ∈ { 1 , … , n } i в {1, ldots, n}я{1,,н}, вы можете применить метод SGD и использовать оценку градиента:
gk = ∇ fik ( xk , v ) = ∇ fik ( xk ) − vik + 1 n ∑ j = 1 nvj ( 22 ) g_k = набла f_{i_k}(x_k, v) = набла f_{i_k}(x_k) - v_{i_k} + frac{1}{n} sum_{j=1}^{n} v_j quad (22)гк=фяк(Икск,в)=фяк(Икск)вяк+н1дж=1нвдж(22)

для наблюдения ви в_ивя Разница в паре выбора гк г_кгк влияние, мы можем gk = ∇ fik ( xk , v ) g_k = набла f_{i_k}(x_k, v)гк=фяк(Икск,в) Заменить и использовать E i ∼ 1 n [ vi ] = 1 n ∑ j = 1 nvj E_i сим дробь{1}{n}[v_i] = дробь{1}{n} сумма_{j=1}^{n} v_jЭян1[вя]=н1дж=1нвдж Чтобы вычислить математическое ожидание, получим:
E [ ∥ ∇ fi ( xk ) − vi + E i ∼ 1 n [ vi − ∇ fi ( xk ) ] ∥ 2 ] ≤ E [ ∥ ∇ fi ( xk ) − vi ∥ 2 ] ( 23 ) E левое[ |набла f_i(x_k) - v_i + E_i сим фрак{1}{n}[v_i - набла f_i(x_k)]|^2 правое] левое E левое[ |набла f_i(x_k) - v_i|^2 правое] четверное (23)Э[∥∇фя(Икск)вя+Эян1[вяфя(Икск)]2]Э[∥∇фя(Икск)вя2](23)
Здесь используется лемма 2, где X = ∇ fi ( xk ) − vi X = набла f_i(x_k) - v_iИкс=фя(Икск)вя .Эта оценка (23) показывает, что если ви в_ивя вместе с ккк Увеличение близко к ∇ fi ( xk ) набла f_i(x_k)фя(Икск) , мы можем получить атрибуты VR (12).Вот почему мы звоним ви в_ивя являются ковариатами, и мы можем выбрать их, чтобы уменьшить дисперсию.

Например, этот подход также реализуется методом SGD² (13), где vi = ∇ fi ( x ∗ ) v_i = набла f_i(x^*)вя=фя(Икс) .Однако на практике это обычно не используется, поскольку мы обычно не знаем, ∇ fi ( x ∗ ) набла f_i(x^*)фя(Икс) .Более практичный вариант ви в_ивя как мы знаем x ˉ i ∈ R d bar{x}_i в mathbb{R}^dИксˉярг ближайший градиент ∇ fi ( x ˉ i ) набла f_i(bar{x}_i)фя(Иксˉя) . SAGA для каждой функции фи ф_ифя использовать ориентир x ˉ i ∈ R d bar{x}_i в mathbb{R}^dИксˉярги используйте ковариаты vi = ∇ fi ( x ˉ i ) v_i = набла f_i(bar{x}_i)вя=фя(Иксˉя), каждый, из которых x ˉ i бар{x}_iИксˉя будет нашей последней оценкой фи ф_ифя точка. Используя эти ковариаты, мы можем построить оценку градиента, следуя (22), давая:
gk = ∇ fik ( xk ) − ∇ fik ( x ˉ ik ) + 1 n ∑ j = 1 n ∇ fj ( x ˉ j ) ( 24 ) g_k = набла f_{i_k}(x_k) - набла f_{i_k}(bar{x}_{i_k}) + frac{1}{n} sum_{j=1}^{n} набла f_j(bar{x}_j) quad (24)гк=фяк(Икск)фяк(Иксˉяк)+н1дж=1нфдж(Иксˉдж)(24)

Чтобы реализовать SAGA, мы можем хранить градиенты. ∇ fi ( x ˉ i ) набла f_i(bar{x}_i)фя(Иксˉя) вместо ннн ориентир x ˉ i бар{x}_iИксˉя .То есть предположим vj = ∇ fj ( x ˉ j ) v_j = набла f_j(bar{x}_j)вдж=фдж(Иксˉдж) для j ∈ { 1 , … , n } j в {1, ldots, n}дж{1,,н}, на каждой итерации мы обновляем стохастический градиент, такой как SAG вж в_жвдж

Алгоритм 2 САГА

  1. Параметры: размер шага γ &gt; 0 гамма &gt; 0γ>0
  2. инициализация: х 0 х_0Икс0 vi = 0 ∈ R d v_i = 0 в mathbb{R}^dвя=0рг для i = 1, …, ni = 1, ldots, nя=1,,н
  3. руководить k = 1, …, T − 1 k = 1, ldots, T - 1к=1,,Т1 итерации:
    а. Случайный выбор ik ∈ { 1 , … , n } i_k в {1, ldots, n}як{1,,н}
    б. Сохранить старое значение. v старый = вик v_{text{old}} = v_{i_k}встарый=вяк
    в. Обновление vik = ∇ fik ( xk ) v_{i_k} = набла f_{i_k}(x_k)вяк=фяк(Икск)
    д. Обновление xk + 1 = xk − γ ( vik − v old + g ˉ k ) x_{k+1} = x_k - гамма (v_{i_k} - v_{text{old}} + bar{g}_k)Икск+1=Икскγ(вяквстарый+гˉк)
    e. Обновить оценку градиента. g ˉ k = g ˉ k − 1 + 1 n ( vik − v old ) bar{g}_k = bar{g}_{k-1} + frac{1}{n} (v_{i_k} - v_{text{old}})гˉк=гˉк1+н1(вяквстарый)
  4. Выход: х Т х_ТИксТ

Метод SAGA имеет ту же сложность итерации, что и SAG. O ( ( κ max + n ) log ⁡ ( 1 / ϵ ) ) O((kappa_{text{max}} + n) log(1/epsilon))О((κМакс+н)вотг(1/ϵ)), используя размер шага γ = O ( 1 / L макс ) гамма = O(1/L_{text{макс}})γ=О(1/ЛМакс) , но доказательство гораздо проще.Однако, как и SAG, метод SAGA требует хранения ннн вспомогательные векторы vi ∈ R d v_i в mathbb{R}^dвярг для i = 1, …, ni = 1, ldots, nя=1,,н, что означает необходимость О ( й ) О(й)О(нг) места для хранения.когда ддг и ннн Когда оба велики, это может быть неосуществимо. В следующем разделе мы подробно расскажем, как уменьшить требования к памяти для распространенных моделей, таких как регуляризованные линейные модели.

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

2.3.Метод СВРГ

До появления метода SAGA в некоторых ранних работах впервые были введены ковариаты для решения проблемы большого объема памяти, необходимой для метода SAG.Эти исследования основаны на фиксированной контрольной точке. x ˉ ∈ R d bar{x} в mathbb{R}^dИксˉрг ковариаты, мы вычислили полный градиент в этой точке ∇ f ( x ˉ ) набла f(bar{x})ф(Иксˉ) .сохраняя контрольные точки x ˉ бар{x}Иксˉ и соответствующий полный градиент ∇ f ( x ˉ ) набла f(bar{x})ф(Иксˉ), мы можем сделать это, не сохраняя каждый ∇ fj ( x ˉ ) набла f_j(bar{x})фдж(Иксˉ) В случае, используйте x ˉ j = x ˉ бар{x}_j = бар{x}Иксˉдж=Иксˉ все дждждж для реализации обновления (24).В частности, вместо хранения этих векторов мы используем сохраненные опорные точки на каждой итерации. x ˉ бар{x}Иксˉ вычислять ∇ fik ( x ˉ ) набла f_{i_k}(bar{x})фяк(Иксˉ) . Первоначально этот метод был предложен разными авторами под разными названиями, но позже был унифицирован как метод SVRG, следуя номенклатуре [28] и [84].

Формализуем метод SVRG в алгоритме 3.

Используя (23), можно получить оценку градиента гк г_кгк Дисперсия ограничена:
E [ ∥ gk − ∇ f ( xk ) ∥ 2 ] ≤ E [ ∥ ∇ fi ( xk ) − ∇ fi ( x ˉ ) ∥ 2 ] ≤ L max 2 ∥ xk − x ˉ ∥ 2 Eleft[ | g_k - набла f(x_k) |^2 справа] leq Eleft[ | набла f_i(x_k) - набла f_i(bar{x}) |^2 справа] leq L_{text{max}}^2 | x_k - bar{x} |^2Э[гкф(Икск)2]Э[∥∇фя(Икск)фя(Иксˉ)2]ЛМакс2ИкскИксˉ2
где второе неравенство использует каждый фи ф_ифя из Л и Л_иЛя-Гладкость.

Стоит отметить, что ориентир x ˉ бар{x}Иксˉ Чем ближе к текущей точке хк х_кИкск, тем меньше дисперсия оценки градиента.

Чтобы метод SVRG был эффективным, нам необходимо часто обновлять контрольные точки. x ˉ бар{x}Иксˉ (тем самым требуя расчета полного градиента) сопоставляется с выгодой от уменьшения дисперсии.По этой причине каждый из нас ттт Обновляйте контрольную точку один раз на каждой итерации, чтобы она была близка к хк х_кИкск (См. строку 11 алгоритма II-C).То есть метод SVRG содержит два цикла: внешний цикл SSс, где вычисляется опорный градиент ∇ f ( x ˉ s − 1 ) набла f(bar{x}_{s-1})ф(Иксˉс1)(строка 4) и внутренний цикл, в котором опорная точка фиксируется, а внутренняя итерация обновляется на основе шага стохастического градиента (22). хк х_кИкск(Строка 10).

В отличие от SAG и SAGA, SVRG требует только О ( д ) О(д)О(г) памяти. К недостаткам SVRG относятся: 1) У нас есть дополнительный параметр. ттт, то есть длину внутреннего цикла, необходимо скорректировать. 2) Для каждой итерации необходимо рассчитывать два градиента, а полный градиент необходимо рассчитывать каждый раз при изменении опорной точки;

Джонсон и Чжан [28] показали, что SVRG имеет итеративную сложность. O ( ( κ max + n ) log ⁡ ( 1 / ϵ ) ) O((kappa_{text{max}} + n) log(1/epsilon))О((κМакс+н)вотг(1/ϵ)) , аналогично SAG и SAGA.Это количество петель в гипотезе. ттт из коллекции { 1 , … , м } {1, лточки, м}{1,,м} Получено при условии равномерной выборки, где L макс L_{text{макс}}ЛМакс μ мюμ, размер шага γ гаммаγ и ттт Между ними должны быть удовлетворены определенные зависимости.На практике, используя γ = O ( 1 / L макс ) гамма = O(1/L_{text{макс}})γ=О(1/ЛМакс) и длина внутреннего цикла т = нт = нт=н, SVRG имеет тенденцию работать хорошо, и это именно та настройка, которую мы использовали на рисунке 1.

Сейчас существует множество вариаций исходного метода SVRG.Например, в некоторых вариантах используется ттт альтернативное распределение [32], некоторые варианты допускают вид O ( 1 / L макс ) O(1/L_{text{макс}})О(1/ЛМакс) Размер шага [27], [33], [35].Существуют также некоторые варианты использования ∇ f ( x ˉ ) набла f(bar{x})ф(Иксˉ) аппроксимация мини-пакета, чтобы снизить стоимость этих полных оценок градиента, и увеличить размер мини-пакета, чтобы сохранить свойства VR.Существуют также варианты, в которых обновления повторяются во внутреннем цикле согласно [54] гк г_кгк
[ g_k = набла f_{i_k}(x_k) - набла f_{i_k}(x_{k-1}) + g_{k-1} quad (25) ]
Это обеспечивает более локальное приближение. Использование этого варианта непрерывного обновления (25) показывает уникальные преимущества в минимизации невыпуклых функций, как мы кратко обсудим в разделе IV.Наконец, обратите внимание, что SVRG может воспользоваться преимуществами ∇ f ( x ˉ s ) набла f(bar{x}_s)ф(Иксˉс) значение, помогающее решить, когда завершить работу алгоритма.

Алгоритм 3. Метод СВРГ.

  1. Параметры: размер шага γ &gt; 0 гамма &gt; 0γ>0
  2. Инициализировать контрольную точку x ˉ 0 = x 0 ∈ R d bar{x}_0 = x_0 в mathbb{R}^dИксˉ0=Икс0рг
  3. Осуществить внешнюю циркуляцию s = 1 , 2 , … s = 1, 2, ldotsс=1,2,
    а. Рассчитайте и сохраните. ∇ f ( x ˉ s − 1 ) набла f(bar{x}_{s-1})ф(Иксˉс1)
    б. Предположим x 0 = x ˉ s − 1 x_0 = бар{x}_{s-1}Икс0=Иксˉс1
    c. Выберите количество итераций внутреннего цикла. ттт
    г. Осуществить внутреннюю циркуляцию. k = 0, 1, …, t − 1 k = 0, 1, ldots, t - 1к=0,1,,т1
    я. случайный выбор ik ∈ { 1 , … , n } i_k в {1, ldots, n}як{1,,н}
    ii. Расчет gk = ∇ fik ( xk ) − ∇ fik ( x ˉ s − 1 ) + ∇ f ( x ˉ s − 1 ) g_k = набла f_{i_k}(x_k) - набла f_{i_k}(bar{x}_{s-1}) + набла f(bar{x}_{s-1})гк=фяк(Икск)фяк(Иксˉс1)+ф(Иксˉс1)
    3. Обновление xk + 1 = xk − γ gk x_{k+1} = x_k - гамма g_kИкск+1=Икскγгк
    e. Обновление контрольной точки. x ˉ s = xt бар{x}_s = x_tИксˉс=Икст

2.4. СДКА и его варианты.

Одним из недостатков методов SAG и SVRG является то, что размер их шага зависит от неизвестных значений, которые могут быть неизвестны в некоторых задачах. L макс L_{text{макс}}ЛМакс . До SVRG метод SDCA [70], как один из первых методов VR, расширил исследования методов координатного спуска на задачи конечных сумм. Идея SDCA и его вариантов заключается в том, что координаты градиента обеспечивают естественную оценку градиента, уменьшающую дисперсию.В частности, предположим j ∈ { 1 , … , d } j в {1, ldots, d}дж{1,,г}и определить ∇ jf ( x ) : = ( ∂ f ( x ) ∂ xj ) ej nabla_j f(x) := left( frac{partial f(x)}{partial x_j} right) e_jджф(Икс):=(Иксджф(Икс))едж является числом (f(x)) дждждж производные по координатным направлениям, где ej ∈ R d e_j в mathbb{R}^dеджрг Это первый дждждж единичный вектор.Ключевым свойством производных по координатам является то, что ∇ jf ( x ∗ ) = 0 набла_j f(x^*) = 0джф(Икс)=0, потому что мы знаем ∇ f ( x ∗ ) = 0 набла f(x^*) = 0ф(Икс)=0 .Производная этого с каждой точкой данных ∇ fj набла f_jфдж другое, последнее х ∗ х^*Икс может быть не нулевым. Поэтому мы имеем:
∥ ∇ f ( x ) − ∇ jf ( x ) ∥ 2 → 0 当 x → x ∗ ( 26 ) | nabla f(x) - nabla_j f(x) |^2 стрелка вправо 0 квадратный текст{当} квадратный x стрелка вправо x^* квадратный (26)∥∇ф(Икс)джф(Икс)20когдаИксИкс(26)
Это означает, что производная по координате удовлетворяет свойству уменьшения дисперсии (12).Кроме того, мы можем использовать ∇ jf ( x ) набла_j f(x)джф(Икс) строить ∇ f ( x ) набла f(x)ф(Икс) несмещенная оценка.Например, предположим дждждж это из коллекции { 1 , … , d } {1, ldots, d}{1,,г} Равномерно случайно выбранный индекс в .Следовательно, для любого i ∈ { 1 , … , d } i в {1, ldots, d}я{1,,г},У нас есть P [ j = i ] = 1 d P[j = i] = frac{1}{d}п[дж=я]=г1 . поэтому, d × ∇ jf ( x ) d раз nabla_j f(x)г×джф(Икс) да ∇ f ( x ) набла f(x)ф(Икс) Непредвзятая оценка, потому что:
E [ d ∇ jf ( x ) ] = d ∑ i = 1 d P [ j = i ] ∂ f ( x ) ∂ xiei = ∑ i = 1 d ∂ f ( x ) ∂ xiei = ∇ f ( x ) Eleft[ d nabla_j f(x) right] = d sum_{i=1}^{d} P[j = i] frac{partial f(x)}{partial x_i} e_i = sum_{i=1}^{d} frac{partial f(x)}{partial x_i} e_i = nabla f(x)Э[гджф(Икс)]=гя=1гп[дж=я]Иксяф(Икс)ея=я=1гИксяф(Икс)ея=ф(Икс)

поэтому, ∇ jf ( x ) набла_j f(x)джф(Икс) Обладает всеми идеальными свойствами, которые мы ожидаем от VR-оценки полных градиентов, без необходимости использования ковариат. Одним из недостатков использования этого координатного градиента является то, что он требует больших вычислительных затрат для нашей задачи о суммах (2).Это связано с тем, что расчет ∇ jf ( x ) набла_j f(x)джф(Икс) Необходимо пройти весь набор данных, потому что ∇ jf ( x ) = 1 n ∑ i = 1 n ∇ jfi ( x ) набла_j f(x) = frac{1}{n} сумма_{i=1}^{n} набла_j f_i(x)джф(Икс)=н1я=1нджфя(Икс) . Поэтому использование производных по координатам кажется несовместимым со структурой нашей задачи о сумме. Однако мы часто можем переписать исходную задачу (2) в так называемую двойственную формулировку, в которой производные по координатам могут использовать внутреннюю структуру.

Например, двойственная формула регуляризованной линейной модели L2 (15):
v ∗ ∈ arg ⁡ max ⁡ v ∈ R n 1 n ∑ i = 1 n − ℓ i ∗ ( − vi ) − λ 2 ∥ 1 λ ∑ i = 1 nviai ∥ 2 ( 27 ) v^* в argmax_{v в mathbb{R}^n} дробь{1}{n} сумма_{i=1}^{n} -ell_i^*(-v_i) - дробь{лямбда}{2} левая| дробь{1}{лямбда} сумма_{i=1}^{n} v_i a_i правая|^2 четверка (27)варгврнМаксн1я=1ня(вя)2λ λ1я=1нвяая 2(27)
в ℓ i ∗ ( v ) ell_i^*(v)я(в) да ℓ я ell_iя выпуклое сопряжение.Мы можем использовать отображение x = 1 λ ∑ i = 1 nviaix = frac{1}{лямбда} сумма_{i=1}^{n} v_i a_iИкс=λ1я=1нвяая восстановить исходную проблему (15) ххИкс переменная.решит в ∗ в^*в Подставив в правую часть приведенного выше отображения, мы можем получить решение (15) х ∗ х^*Икс

Обратите внимание, что эта двойная проблема имеет ннн действительные переменные vi ∈ R v_i в mathbb{R}вяр , что соответствует одному для каждой обучающей выборки.Более того, каждая функция двойных потерь ℓ я ∗ ell_i^*я только ви в_ивя Функция. То есть первый член функции потерь отделим по координатам. Такая разделимость по координатам в сочетании с простой формой второго слагаемого позволяет эффективно реализовать метод подъема координат.Действительно, Шалев-Шварц и Чжан показали, что подъем координат в этой задаче имеет аналогичную итерационную сложность, что и SAG, SAGA и SVRG. O ( ( κ max + n ) log ⁡ ( 1 / ϵ ) ) O((kappa_{text{max}} + n) log(1/epsilon))О((κМакс+н)вотг(1/ϵ))

Стоимость итерации и структура алгоритма также очень похожи: суммирование путем отслеживания ∑ i = 1 nviai сумма_{i=1}^{n} v_i a_iя=1нвяая Чтобы обработать второй член в (27), каждая итерация подъема по двойной координате должна учитывать только одну обучающую выборку, а стоимость каждой итерации такая же, как и ннн Нечего делать.Кроме того, мы можем использовать поиск по 1D-линии, чтобы эффективно вычислить размер шага для максимизации как ви в_ивя Двойная цель функции.Это означает, что даже без L макс L_{text{макс}}ЛМакс Или знание соответствующих величин также позволяет добиться быстрого времени работы методов виртуальной реальности в наихудшем случае.

3. Практические вопросы уменьшения дисперсии

Чтобы реализовать базовый метод уменьшения дисперсии (VR) и добиться приемлемой производительности, необходимо решить несколько проблем реализации. В этом разделе мы обсудим несколько вопросов, не затронутых выше.

3.1.Размер шага настройки SAG/SAGA/SVRG

В области алгоритмов оптимизации, особенно в методах уменьшения вариаций, таких как стохастический средний градиент (SAG), алгоритм стохастического среднего градиента (SAGA) и стохастический градиент (SVRG), установка размера шага является ключевым вопросом.Хотя для метода стохастического подъема по двойной координате (SDCA) мы можем использовать двойную цель для определения размера шага, теоретическая основа исходных методов переменных SAG, SAGA и SVRG заключается в том, что размер шага должен быть равен γ = O ( 1 L max ) gamma = Oleft(frac{1}{L_{text{max}}}right)γ=О(ЛМакс1) форма.Однако в практических приложениях мы часто не знаем, L макс L_{text{макс}}ЛМакс точное значение, а использование других размеров шага может дать лучшую производительность.

Классической стратегией установки размера шага в методе полного градиентного спуска (full-GD) является поиск линий Armijo.данная текущая точка хк х_кИкск и направление поиска гк г_кгк, поиск линии Armijo в γ k гамма_kγк осуществляется на линии, которая определяется как γ k ∈ { γ : xk + γ gk } gamma_k в {gamma : x_k + gamma g_k}γк{γ:Икск+γгк}, причем функция должна быть достаточно редуцированной, т.е.:
f ( xk + γ kgk ) &lt; f ( xk ) − c γ k ∥ ∇ f ( xk ) ∥ 2 f(x_k + gamma_k g_k) &lt; f(x_k) - c gamma_k |набла f(x_k)|^2ф(Икск+γкгк)<ф(Икск)сγк∥∇ф(Икск)2
Однако этот подход требует нескольких шагов-кандидатов. γ k гамма_kγк Расчет f ( xk + γ kgk ) f(x_k + gamma_k g_k)ф(Икск+γкгк), который оценивает ф ( х ) ф(х)ф(Икс) Стоимость обхода всего набора данных непомерно высока.

Для решения этой проблемы можно использовать метод случайных вариаций, чтобы найти те, которые удовлетворяют следующим условиям: γ k гамма_kγк
fik ( xk + γ kgk ) &lt; fik ( xk ) − c γ k ∥ ∇ fik ( xk ) ∥ 2 f_{ik}(x_k + gamma_k g_k) &lt; f_{ik}(x_k) - c gamma_k |набла f_{ik}(x_k)|^2фик(Икск+γкгк)<фик(Икск)сγк∥∇фик(Икск)2
Этот подход обычно хорошо работает на практике, особенно когда ∥ ∇ фик ( xk ) ∥ |набла ф_{ик}(x_k)|∥∇фик(Икск) не близок к нулю, хотя в настоящее время не существует теории, подтверждающей этот подход.

Кроме того, Майрал предложил «технику Ботту» для практической установки размера шага. Этот метод выполняет двоичный поиск, беря небольшую часть набора данных (например, 5%), чтобы попытаться найти оптимальный размер шага за один проход по этой выборке. Подобно поиску по линии Армихо, этот метод часто хорошо работает на практике, но ему снова не хватает теоретической основы.

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

Однако метод SDCA также имеет некоторые недостатки.Во-первых, для этого требуется вычислить выпуклое сопряжение ℓ я ∗ ell_i^*я а не простой градиент. У нас нет автоматического дифференциального эквивалента для выпуклых сопряжений, поэтому это может увеличить усилия по реализации. В недавней работе были предложены методы SDCA с «двойной свободой», которые не требуют сопряжения и вместо этого напрямую используют градиенты. Однако в этих методах больше невозможно отслеживать двойную цель, чтобы установить размер шага.Во-вторых, хотя SDCA требует только О (n + d) О(n + d)О(н+г) памяти для решения задачи (15), но для этой категории задач SAG/SAGA требуется только О (n + d) О(n + d)О(н+г) памяти (см. раздел 3).Вариант SDCA, подходящий для более общих проблем с SAG/SAGA. О ( й ) О(й)О(нг) память, потому что ви в_ивя стать обладателем ддг вектор элементов. Последний тонкий недостаток SDCA заключается в том, что он неявно предполагает сильную константу выпуклости. μ мюμ равный λ лямбдаλ .для μ мюμ больше, чем λ лямбдаλ Проблема заключается в том, что оригинальный метод VR обычно значительно превосходит SDCA.

3.2 Определение условий прекращения действия.

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

В традиционном методе полного градиентного спуска (full-GD) мы обычно используем норму градиента. ∥ ∇ f ( xk ) ∥ | набла f(x_k) |∥∇ф(Икск) Или какая-то другая величина, связанная с этим, чтобы решить, когда остановить итерацию.Для метода SVRG мы можем принять тот же критерий, но использовать ∥ ∇ f ( x ˉ s ) ∥ | набла f(bar{x}_s) |∥∇ф(Иксˉс) как основание для приговора.Для метода SAG/SAGA, хотя мы и не рассчитываем явно полный градиент, величина $g_{bar{k}}$ будет постепенно приближаться ∇ f ( xk ) набла f(x_k)ф(Икск), поэтому используйте ∥ гк ˉ ∥ | г_{бар{к}} |гкˉ в качестве условия остановки является разумной эвристикой.

В методе SDCA, с некоторой дополнительной работой по записи, мы можем отслеживать градиент двойной цели без добавления дополнительных асимптотических затрат.Кроме того, более систематическим подходом было бы отслеживание двойного разрыва, хотя это увеличило бы О ( н ) О(н)О(н) стоимость, но он способен обеспечить условия завершения с двойным доказательством разрыва. Кроме того, на основе условия оптимальности сильно выпуклых целей метод MISO использует принципиальный метод, основанный на квадратичной нижней границе [41].

Ниже приведены математические формулы и переменные, выраженные в формате Markdown:

  • Норма градиента: ∥ ∇ f ( xk ) ∥ | набла f(x_k) |∥∇ф(Икск)
  • Норма градиента в методе СВРГ: ∥ ∇ f ( x ˉ s ) ∥ | набла f(bar{x}_s) |∥∇ф(Иксˉс)
  • Величина градиента аппроксимации в методе SAG/SAGA: $ g_{bar{k}} $
  • Увеличение стоимости за итерацию: О ( н ) О(н)О(н)
  • МИСО-метод
  • квадратичная нижняя граница

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

3.3. Уменьшите требования к памяти.

Хотя алгоритм стохастического вариационного уменьшения градиента (SVRG) устраняет требования к памяти, присущие более ранним методам уменьшения вариации, в практических приложениях во многих задачах используются алгоритмы SAG (стохастический средний градиентный спуск) и SAGA (стохастический средний градиентный спуск с накоплением градиента). . обычно требуют меньше итераций, чем алгоритм SVRG.Это вызвало мысль: есть ли какие-то проблемы, которые позволяют SAG/SAGA О ( й ) О(й)О(нг) Требования к памяти реализованы ниже. В этом разделе исследуется класс линейных моделей, для которых требования к памяти могут быть значительно снижены.

Рассмотрим линейную модель, в которой каждая функция фи ( х ) f_i(x)фя(Икс) Это может быть выражено как ξ i ( ai ⊤ x ) xi_i(mathbf{a}_i^top x)ξя(аяИкс) .верно ххИкс Производная дает форму градиента:
∇ fi ( x ) = ξ ′ ( ai ⊤ x ) ai набла f_i(x) = xi'(mathbf{a}_i^top x) mathbf{a}_iфя(Икс)=ξ(аяИкс)ая
здесь, ξ ′ xi'ξ выражать ξ ксиξ производная от.Предполагая, что у нас есть прямой доступ к собственным векторам ай mathbf{a}_iая, то для реализации метода SAG/SAGA нам нужно всего лишь сохранить скаляр ξ ( ai ⊤ x ) xi(mathbf{a}_i^top x)ξ(аяИкс) .Таким образом, требования к памяти варьируются от О ( й ) О(й)О(нг) уменьшено до О ( н ) О(н)О(н) . Алгоритм SVRG также может использовать эту структуру градиентов: сохраняя это ннн скаляр, мы можем уменьшить количество оценок градиента, необходимых для каждой «внутренней» итерации SVRG, до 1 для этого класса задач.

Существуют и другие типы задач, например вероятностные графические модели, которые также предлагают возможность снижения требований к памяти [66]. Благодаря специальной структуре данных и оптимизации алгоритма ресурсы памяти, необходимые алгоритму во время выполнения, могут быть дополнительно сокращены.

Ниже приведены математические формулы и переменные, выраженные в формате Markdown:

  • Функция линейной модели: fi ( x ) = ξ i ( ai ⊤ x ) f_i(x) = xi_i(mathbf{a}_i^top x)фя(Икс)=ξя(аяИкс)
  • Градиентное выражение: ∇ fi ( x ) = ξ ′ ( ai ⊤ x ) ai набла f_i(x) = xi'(mathbf{a}_i^top x) mathbf{a}_iфя(Икс)=ξ(аяИкс)ая
  • Вектор признаков: ай mathbf{a}_iая
  • Требования к памяти варьируются от О ( й ) О(й)О(нг) Сократить до О ( н ) О(н)О(н)

3.4. Обработка разреженных градиентов.

В некоторых задачах градиент ∇ fi ( x ) набла f_i(x)фя(Икс) Может содержать большое количество нулевых значений, например, линейная модель с редкими функциями.В этом случае традиционный алгоритм стохастического градиентного спуска (SGD) может быть эффективно реализован, при этом вычислительная сложность линейно зависит от количества ненулевых элементов в градиенте, которое обычно намного меньше размерности задачи. ддг . Однако в стандартных методах вариационного сокращения (VR) это преимущество не используется. К счастью, есть два известных способа улучшить это.

Первое улучшение было предложено Шмидтом и др., которое использует преимущества простоты процесса обновления и реализует вариант вычислений «на лету», так что стоимость каждой итерации пропорциональна количеству ненулевых вычислений. элементы.Если взять в качестве примера SAG (но этот подход работает для всех вариантов), это достигается за счет не сохранения полного вектора после каждой итерации. вик в_{ик}вик, но вычисляет только те, которые соответствуют ненулевым элементам викдж в_{ик_дж}вякдж, обновляя каждую переменную с тех пор, как последний раз этот элемент был ненулевым викдж в_{ик_дж}вякдж

Второй метод улучшения был предложен Леблоном и др. для SAGA, который обновляет формулу. xk + 1 = xk − γ ( ∇ fik ( xk ) − ∇ fik ( x ˉ ik ) + g ˉ k ) x_{k+1} = x_k - гамма(набла f_{ik}(x_k) - набла f_{ik}(bar{x}_{ik}) + bar{g}_k)Икск+1=Икскγ(фик(Икск)фик(Иксˉик)+гˉк) Вводится дополнительная случайность. здесь, ∇ фик ( xk ) набла f_{ik}(x_k)фик(Икск) и ∇ fik ( x ˉ ik ) набла f_{ik}(bar{x}_{ik})фик(Иксˉик) является редким, и г ˉ к бар{г}_кгˉк плотный.В этом методе плотный член ( г ˉ к ) j (бар{г}_к)_j(гˉк)дж Каждый компонент заменяется на wj ( г ˉ к ) j w_j (бар{г}_к)_jждж(гˉк)дж w ∈ R dw в mathbb{R}^dжрг — случайный разреженный вектор, набор опорных элементов которого содержится в ∇ фик ( xk ) набла f_{ik}(x_k)фик(Икск) , и ожидается, что это постоянный вектор со всеми элементами, равными 1. Таким образом, процесс обновления остается несмещенным (хотя теперь и разреженным), а увеличенная дисперсия не влияет на скорость сходимости алгоритма. Более подробную информацию предоставили Leblond et al.

Ниже приведены математические формулы и переменные, выраженные в формате Markdown:

  • градиент: ∇ fi ( x ) набла f_i(x)фя(Икс)
  • Обновление SGD: xk + 1 = xk − γ ( ∇ fik ( xk ) − ∇ fik ( x ˉ ik ) + g ˉ k ) x_{k+1} = x_k - гамма(набла f_{ik}(x_k) - набла f_{ik}(bar{x}_{ik}) + bar{g}_k)Икск+1=Икскγ(фик(Икск)фик(Иксˉик)+гˉк)
  • Разреженный градиент: ∇ фик ( xk ) набла f_{ik}(x_k)фик(Икск) и ∇ fik ( x ˉ ik ) набла f_{ik}(bar{x}_{ik})фик(Иксˉик)
  • Плотный градиент: г ˉ к бар{г}_кгˉк
  • Случайные разреженные векторы: ввж
  • Ожидается постоянный вектор: вектор, все элементы которого равны 1.