Мир глазами нейросетей, Данила Байгушев, Александр Сноркин ()
Дмитрий Кропотов, ВМК МГУ, Группа Байесовских Методов, «Методы оптимизации больших сумм функций»
1. Методы оптимизации больших сумм
функций
Д. А. Кропотов
ВМК МГУ, группа Байесовских методов
p BA)yesgroup.ru|(
Конференция Data Fest2, 6 марта 2016 г.
Д.А. Кропотов Оптимизация больших сумм функций Data Fest2
1 / 24
2. Задача оптимизации больших сумм функций
Рассмотрим задачу
F(w) :=
1
N
N
i=1
fi(w) → min
w∈RD
(1)
Многие задачи из машинного обучения сводятся к этой задаче,
например, линейная и логистическая регрессия, условные
случайные поля, глубинные нейросети и проч.
Случай «больших данных»:
N 1.
Предположения:
все функции fi непрерывно дифференцируемы и сильно выпуклы
градиенты fi удовлетворяют условию Липшица:
fi(w) − fi(u) 2 ≤ L w − u 2 , ∀w, u ∈ RD
.
Д.А. Кропотов Оптимизация больших сумм функций Data Fest2
2 / 24
3. Градиентный спуск (GD)
Итерация метода:
wk+1 = wk − αk F(w) = wk − αk
1
N
N
i=1
fi(wk) (2)
Свойства:
Длина шага αk подбирается путём неточного решения задачи
F(wk − α F(wk)) → min
α
Метод сходится с линейной скоростью
F(wk) − F(w∗) = O(Ck
)
Здесь 0 < C < 1.
Стоимость итерации O(ND).
Д.А. Кропотов Оптимизация больших сумм функций Data Fest2
3 / 24
4. Стохастический градиентный спуск (SGD) [Robbins and Monro,
1951]
Итерация метода:
wk+1 = wk − αk fik
(wk), (3)
где ik ∈ {1, . . . , N} – случайно выбираемый номер компоненты.
Направление оптимизации является несмещённой оценкой F(wk):
Eik
fik
(wk) =
1
N
N
i=1
fi(wk) = F(wk).
Низкие стоимость итерации O(D) и требования по памяти O(D);
Д.А. Кропотов Оптимизация больших сумм функций Data Fest2
4 / 24
5. Стохастический градиентный спуск (SGD) [Robbins and Monro,
1951]
Для сходимости шаг αk выбирается как
∞
k=1
αk = ∞,
∞
k=1
α2
k < ∞. (4)
В частности, метод не сходится для константного шага.
В силу отсутствия доступа к функции F(w), шаг αk выбирается с
помощью априорной стратегии, удовлетворяющей условиям (4):
αk =
α0
kτ
, τ ∈ (0.5, 1].
На практике параметры α0, τ приходится подбирать по сетке.
Скорость сходимости метода сублинейная: EF(wk) − F(w∗) = O(1/k).
Отсутствие обоснованного критерия останова.
Д.А. Кропотов Оптимизация больших сумм функций Data Fest2
5 / 24
6. Траектория SGD
Рассмотрим задачу восстановления линейной регрессии в двухмерном
пространстве:
F(w) =
1
N
N
i=1
(yi − xT
i w)2
→ min
w∈R2
.
траектория SGD траектория в окр. опт.
Д.А. Кропотов Оптимизация больших сумм функций Data Fest2
6 / 24
7. Скорости сходимости GD vs. SGD
Невязка rk = F(wk) − F(w∗). Зависимость log(rk) от номера
итерации k:
Motivation for New Methods
FG method has O(n) cost with O(ρt
) rate.
SG method has O(1) cost with O(1/t) rate.
Stochastic vs. deterministic methods
• Goal = best of both worlds: linear rate with O(1) iteration cost
hybrid
log(excesscost)
stochastic
deterministic
time
It is possible to have linear rate with O(1) cost?
Reza Babanezhad, Mohamed Ahmed, Mark Schmidt Advances in the Minimization of Finite Sums
Цель: гибридный метод со стоимостью итерации, не зависящей от N
Д.А. Кропотов Оптимизация больших сумм функций Data Fest2
7 / 24
8. Стохастический средний градиент (SAG) [Schmidt et al., 2013]
Шаг метода:
wk+1 = wk − αkgk, (5)
где gk – «средний» градиент:
gk =
1
N
N
i=1
fi(vk
i ), (6)
который обновляется в итерациях как:
gk = gk−1 +
1
N
fik
(wk) −
1
N
yk−1
ik
. (7)
Память: O(ND) для хранения yk
i := fi(vk
i ), где vk
i = последняя
точка, в которой вычислялась fi.
Скорость сходимости: линейная, O(Ck), где C ∈ (0, 1).
Д.А. Кропотов Оптимизация больших сумм функций Data Fest2
8 / 24
9. Подбор длины шага αk
Скорость сходимости SAG
Для константного шага αk = 1/16L метод SAG сходится как
EF(wk) − F(w∗) ≤ 1 − min
µ
16L
,
1
8N
k
C0.
Метод автоматически адаптируется к константе сильной выпуклости µ.
На практике: αk = 1/L.
Адаптивная процедура для L:
Инициализировать L.
Увеличивать L, пока для wk+1 = wk − 1
L gk не выполнится
fik
(wk+1) ≤ fik
(wk) + fik
(wk)T
(wk+1 − wk) +
L
2
wk+1 − wk
2
.
Уменьшить L между итерациями.
Д.А. Кропотов Оптимизация больших сумм функций Data Fest2
9 / 24
10. Критерий останова
Для градиентного спуска критерий останова F(wk) < ε.
Для метода SAG при wk → w∗ верно, что gk → F(wk).
Поэтому для метода SAG в качестве критерия останова можно
взять gk < ε.
Д.А. Кропотов Оптимизация больших сумм функций Data Fest2
10 / 24
11. Сравнение SAG с другими методами
Задача логистической регрессии. Данные quantum (N=50000, D=78) и
rcv1 (N=697641, D=47236).
SAG Compared to FG and SG Methods
quantum (n = 50000, p = 78) and rcv1 (n = 697641, p = 47236)
0 10 20 30 40 50
10
−12
10
−10
10
−8
10
−6
10
−4
10
−2
10
0
Effective Passes
ObjectiveminusOptimum
AFG
L−BFGS
SG
ASG
IAG
SAG−LS
0 10 20 30 40 50
10
−15
10
−10
10
−5
10
0
Effective Passes
ObjectiveminusOptimum
AFG
L−BFGS
SG
ASG
IAG
SAG
−LS
SAG starts fast and stays fast.
Mark Schmidt Minimzing Finite Sums with the SAG Algorithm
SAG Compared to FG and SG Methods
quantum (n = 50000, p = 78) and rcv1 (n = 697641, p = 47236)
0 10 20 30 40 50
10
−12
10
−10
10
−8
10
−6
10
−4
10
−2
10
0
Effective Passes
ObjectiveminusOptimum
AFG
L−BFGS
SG
ASG
IAG
SAG−LS
0 10 20 30 40 50
10
−15
10
−10
10
−5
10
0
Effective Passes
ObjectiveminusOptimum
AFG
L−BFGS
SG
ASG
IAG
SAG
−LS
SAG starts fast and stays fast.
Mark Schmidt Minimzing Finite Sums with the SAG AlgorithmД.А. Кропотов Оптимизация больших сумм функций Data Fest2
11 / 24
12. SAG: уменьшение памяти
Исходный алгоритм SAG требует O(ND) памяти.
Варианты сокращения памяти:
Использовать мини-батчи:
F(w) =
1
N
N
i=1
fi(w) =
1
M
M
j=1
M
N
i∈Mj
fi(w)
Память сокращается до O(MD), стоимость итерации
увеличивается до O(DN/M).
Линейные модели: fi(w) := φi(xi w) для некоторого xi ∈ RD.
Градиенты имеют специальную структуру: fi(w) = φi(xi w)xi;
Вместо полного градиента fi(w) достаточно хранить одно число
φi(xi w);
Память сокращается от O(N).
Д.А. Кропотов Оптимизация больших сумм функций Data Fest2
12 / 24
13. SAG: неравномерный выбор компонент
Длина шага αk и скорость сходимости метода определяется
константой L для F(w), где L = max1≤i≤N Li, Li – константа
Липшица для функции fi;
При выборе компонент с вероятностью, пропорциональной Li,
можно уменьшить константу L с maxi Li до ¯L = i Li/N:
F(w) =
1
N
N
i=1
fi(w) =
1
i Li
N
i=1
Li
j=1
¯L
fi(x)
Li
.
При таком подходе компонента с большим значением Li
выбирается чаще.
Для обеспечения сходимости выбор компонент надо осуществлять
по правилу: с вероятностью 0.5 выбирать из равномерного
распределения, с вероятностью 0.5 выбирать с вероятностями
Li/ j Lj.
Для генерации с вероятностями Li/ j Lj существует алгоритм
со сложностью O(log N)
Д.А. Кропотов Оптимизация больших сумм функций Data Fest2
13 / 24
14. SAG: неравномерный выбор компонент
protein (n = 145751, p = 74) and sido (n = 12678, p = 4932)
0 10 20 30 40 50
10
−5
10
−4
10
−3
10
−2
10
−1
10
0
Effective Passes
ObjectiveminusOptimum
IAG
AGD
L−BFGS
SG−C
ASG−C
PCD−L
DCA
SAG
0 10 20 30 40 50
10
−6
10
−5
10
−4
10
−3
10
−2
10
−1
10
0
Effective Passes
ObjectiveminusOptimum
IAG
AG
D
L−BFG
S
SG−C
ASG−C
PCD−L
DCA
SAG
Datasets where SAG had the worst relative performance.
Mark Schmidt Minimzing Finite Sums with the SAG Algorithm
protein (n = 145751, p = 74) and sido (n = 12678, p = 4932)
0 10 20 30 40 50
10
−5
10
−4
10
−3
10
−2
10
−1
10
0
Effective Passes
ObjectiveminusOptimum
IAGAGD
L−BFGS SG−C
ASG−C
PCD−L
DCA
SAG
0 10 20 30 40 50
10
−6
10
−5
10
−4
10
−3
10
−2
10
−1
10
0
Effective Passes
ObjectiveminusOptimum
IAG
AG
D
L−BFG
S
SG−C
ASG−C
PCD−L
DCA
SAG
Datasets where SAG had the worst relative performance.
Mark Schmidt Minimzing Finite Sums with the SAG Algorithm
SAG with Non-Uniform Sampling
protein (n = 145751, p = 74) and sido (n = 12678, p = 4932)
0 10 20 30 40 50
10
−20
10
−15
10
−10
10
−5
10
0
Effective Passes
ObjectiveminusOptimum
IAG
AGDL−BFGS SG−C
ASG−C
PCD−L
DCA
SAG
SAG−LS
(Lipschitz)
0 10 20 30 40 50
10
−15
10
−10
10
−5
10
0
Effective Passes
ObjectiveminusOptimum
IAG AGD L−BFGS
SG−C ASG−C
PCD−L
DCA
SAG
SAG−LS
(Lipschitz)
Lipschitz sampling helps a lot.
SAG with Non-Uniform Sampling
protein (n = 145751, p = 74) and sido (n = 12678, p = 4932)
0 10 20 30 40 50
10
−20
10
−15
10
−10
10
−5
10
0
Effective Passes
ObjectiveminusOptimum
IAG
AGDL−BFGS SG−C
ASG−C
PCD−L
DCA
SAG
SAG−LS
(Lipschitz)
0 10 20 30 40 50
10
−15
10
−10
10
−5
10
0
Effective Passes
ObjectiveminusOptimum
IAG AGD L−BFGS
SG−C ASG−C
PCD−L
DCA
SAG
SAG−LS
(Lipschitz)
Lipschitz sampling helps a lot.
Д.А. Кропотов Оптимизация больших сумм функций Data Fest2
14 / 24
15. SAG: резюме
Метод SAG:
Является стохастическим методом оптимизации, стоимость
итерации которого не зависит от N;
Обладает линейной скоростью сходимости;
Автоматически адаптируется к константе сильной выпуклости;
Не требует настройки параметров пользователем (длина шага
выбирается автоматически с помощью адаптивной процедуры
подбора L);
Имеет обоснованный критерий останова;
Имеет высокие требования по памяти O(ND);
Имеет обобщения на случай разреженных данных,
регуляризаторов специального вида, «нестеризации» и проч.
[Schmidt et al., 2013]
Д.А. Кропотов Оптимизация больших сумм функций Data Fest2
15 / 24
16. Stochastic Variance Reduced Gradient (SVRG) [Johnson and Zhang,
2013]
Пусть известен F(˜w) для некоторой точки ˜w. Итерация SVRG:
gk = fik
(wk) − fik
(˜w) + F(˜w),
wk+1 = wk − αkgk.
Направление dk является несмещённой оценкой F(wk):
Eik
dk = Eik
fik
(wk) − fik
(˜w) + F(˜w) =
= F(wk) − F(˜w) + F(˜w) = F(wk).
Д.А. Кропотов Оптимизация больших сумм функций Data Fest2
16 / 24
17. Общая схема SVRG
Инициализация ˜w0;
Для s = 0, 1, 2, . . .
ds = 1
N
N
i=1 fi( ˜ws);
w0 = ˜ws;
Для k = 1, 2, . . . , m
Случайно выбрать ik из {1, 2, . . . , N};
wk = wk−1 − αk( fik (wk−1) − fik ( ˜ws) + ds)
˜ws+1 = wm;
Достаточно хранить только ds и ˜ws. Требуемая память: O(D),
сложность внутренней итерации: O(D).
Д.А. Кропотов Оптимизация больших сумм функций Data Fest2
17 / 24
18. SVRG: детали
Метод SVRG имеет линейную скорость сходимости для
константного шага αk;
На практике αk = 1/L, где L подбирается адаптивно;
Для ускорения метода рекомендуется выбирать компоненты fi с
вероятностями, пропорциональными Li;
Критерий останова ds < ε;
На практике m = 2N;
Величину N для подсчёта F(˜w) можно снизить за счёт
использования увеличивающихся батчей [Babanezhad et al., 2015].
Д.А. Кропотов Оптимизация больших сумм функций Data Fest2
18 / 24
19. Пример работы SVRG
A PROXIMAL STOCHASTIC GRADIENT METHOD 2071
0 10 20 30 40 50
number of effective passes
10−15
10−12
10−9
10−6
10−3
100
objectivegap:P(xk)−P
Prox-SG
RDA
Prox-FG
Prox-AFG
Prox-SAG
Prox-SVRG
Prox-SDCA
0 10 20 30 40 50
number of effective passes
0
5000
10000
15000
20000
25000
30000
NNZsinxk
Prox-SG
RDA
Prox-FG
Prox-AFG
Prox-SAG
Prox-SVRG
Prox-SDCA
Fig. 4. Comparison of different methods on the rcv1 data set.
10−6
10−4
10−2
100
P(xk)−P
Prox-FG
Prox-AFG 10−1
100
101
P(xk)−P
Prox-FG
Prox-AFG
Prox-SG
RDA
Prox-SAG
Prox-SDCA
Prox-SVRG
Prox-SVRG2
0 10 20 30 40 50
number of effective passes
10−15
10−12
objecti
Prox-SAG
Prox-SVRG
Prox-SDCA
5
Fig. 4. Comparison of different meth
0 10 20 30 40 50
number of effective passes
10−14
10−12
10−10
10−8
10−6
10−4
10−2
100
objectivegap:P(xk)−P
Prox-FG
Prox-AFG
Prox-SG
RDA
Prox-SAG
Prox-SDCA
Prox-SVRG
Prox-SVRG2
1
1
1
1
objectivegap:P(xk)−P
Fig. 5. Comparison of different methods on c
complexity analysis. While the complexity of
tablished, its performance is among the best.
under the 1-regularization, RDA, Prox-SDCA,
rect NNZs quickly, followed by Prox-SVRG anД.А. Кропотов Оптимизация больших сумм функций Data Fest2
19 / 24
20. Шкалирование градиентного спуска
Градиентный спуск: wk+1 = wk − 1
L F(wk);
µ ≈ L µ L
– f convex with L-Lipschitz-continuous gradient
– Minimum attained at θ∗
• Algorithm:
θt = θt−1 −
1
L
f′
(θt−1)
• Algorithm:
θt = θt−1 −
1
L
f′
(θt−1)
Метод Ньютона: wk+1 = wk − αkH−1
k F(wk), Hk = 2F(wk).
Аппроксимации H−1
k F(wk):
квази-ньютоновские методы;
L-BFGS;
безгессианные методы.
Д.А. Кропотов Оптимизация больших сумм функций Data Fest2
20 / 24
21. Добавление шкалирования в стохастические методы
SGD + шкалирование:
wk+1 = wk − Bk fik
(wk).
Такое шкалирование не изменяет сублинейную скорость сходимости
SGD, даже при Bk = 2F(wk)−1! [Bousquet and Bottou, 2008]
SAG + шкалирование:
wk+1 = wk − Bkgk.
Метод L-BFGS приближённо оценивает 2F(wk)−1gk с помощью
истории {yj, sj}k−1
j=k−m, где
yj = F(wj+1) − F(wj), sj = wj+1 − wj.
При замене F(wj) на градиент по батчу 1
|I| i∈I fi(wj) качество
L-BFGS аппроксимации значительно ухудшается! [Byrd at el., 2015]
Д.А. Кропотов Оптимизация больших сумм функций Data Fest2
21 / 24
22. SVRG + L-BFGS [Kolte et al., 2015]
Обозначим ˜ys = ds − ds−1, ˜us = ˜ws − ˜ws−1.
Инициализация ˜w0;
Для s = 0, 1, 2, . . .
ds = 1
N
N
i=1 fi( ˜ws);
w0 = ˜ws;
Выбрать Hk с помощью L-BFGS по данным {˜yj, ˜uj}s−1
j=s−l;
Для k = 1, 2, . . . , m
Случайно выбрать ik из {1, 2, . . . , N};
gk = fik (wk−1) − fik ( ˜ws) + ds;
wk = wk−1 − αkH−1
k gk
˜ws+1 = wm;
Д.А. Кропотов Оптимизация больших сумм функций Data Fest2
22 / 24
23. Пример работы SVRG + L-BFGS
80 100 120 140 160 180 200
passes through the data
(a)
10 20 30 40 50 60 70 80 90 100
10−12
10−11
10−10
10−9
10−8
10−7
passes through the data
log-s
SVRG
SVRG+I
SVRG+II
SLBFGS
LBFGS
(b)
20 40 60 80 100 120 140 160 180 200
10−15
10−13
10−11
10−9
10−7
10−5
10−3
10−1
passes through the data
log-suboptimality
SVRG
SVRG+I
SVRG+II
SLBFGS
LBFGS
(c)
optimality vs number of passes through the data for (a) mnist dataset, (b) covtype
dataset
g and optimization of minibatch size can be incorporated for further performance
accuracy solution. Though SVRG+II updates the Hessi
SLBFGS, the disadvantage of using an outdated approx
due to the use of exact gradient differences.
Dataset n p Dataset n
mnist 60000 717 covtype 581012
Table 1: Datasets used in experiments, obtained from
20 40 60 80 100 120 140 160 180 200
10−4
10−3
10−2
10−1
100
passes through the data
log-suboptimality
SVRG
SVRG+I
SVRG+II
SLBFGS
LBFGS
(a)
10−1
10−1
10−1
10−
10−
10−
10−
10−
10−
10−
10−
10−
10
log-suboptimality
−9
10−7
10−5
10−3
10−1
uboptimality
Д.А. Кропотов Оптимизация больших сумм функций Data Fest2
23 / 24
24. Заключение
Метод SGD является неэффективным из-за медленной
сублинейной скорости сходимости и чувствительности к
пользовательским параметрам;
За счёт использования памяти метод SAG устраняет все основные
недостатки SGD: он имеет линейную скорость сходимости и не
требует настройки параметров;
Метод SVRG является аналогом SAGа, но при этом использует
значительно меньше памяти;
За счёт вычисления внутри SVRG полных градиентов этот метод
допускает эффективное добавление информации второго порядка;
Выбор метода оптимизации зависит от кол-ва допустимых
проходов по выборке:
При одном проходе (онлайн-оптимизация) стохастический
градиент является оптимальным методом;
При нескольких десятках проходах преимущество имеют методы
типа SAG и SVRG;
При нескольких сотнях проходов обычные методы оптимизации
могут оказаться самыми эффективными.
Д.А. Кропотов Оптимизация больших сумм функций Data Fest2
24 / 24