Оптимизация
Стохастический градиентный спуск
Градиент как оценка Монте-Карло — со всеми свойствами оценки, включая дисперсию
Градиент — это ожидание
Лосс на выборке — среднее по примерам, значит его градиент тоже среднее:
Это в точности оценка Монте-Карло из блока 3 (урок 150), и всё, что там было сказано, переносится сюда без изменений:
- оценка несмещена при любом , даже при . Это следует из линейности ожидания и ничего не требует;
- её дисперсия равна , где — дисперсия градиента по отдельным примерам.
Второй пункт проверяется точно. На выборке из тысячи точек с дисперсией градиентов :
| измеренная дисперсия | ||
|---|---|---|
Отсюда сразу видно, почему большие батчи дают убывающую отдачу: чтобы уменьшить шум вдвое, нужно увеличить батч вчетверо — знакомая цена .
Почему стохастический метод вообще выигрывает
Полный градиент по миллиону примеров стоит столько же, сколько тысяча шагов по батчам из тысячи. И вопрос не в том, какая оценка точнее, а в том, что полезнее за одинаковое время:
| один полный шаг | тысяча стохастических шагов | |
|---|---|---|
| стоимость | градиентов | градиентов |
| точность направления | идеальная | шумная |
| пройденное расстояние | один шаг | тысяча шагов |
Тысяча приблизительно верных шагов уводит дальше, чем один точный. Это и есть весь аргумент, и он тем сильнее, чем больше .
Шум не исчезает
Ключевое отличие от полного градиента: SGD с постоянным шагом не сходится в точку. Он приходит в область вокруг минимума и остаётся там, потому что шум не даёт остановиться.
Размер этой области считается точно. Для с шумом градиента стационарная дисперсия равна
и численный эксперимент это подтверждает:
| измеренная | теория | ||
|---|---|---|---|
Формула читается так: шумовой шар пропорционален . Уменьшить его можно двумя способами — уменьшив шаг или уменьшив шум (то есть увеличив батч), и это взаимозаменяемо.
Подвигайте шум и шаг в виджете. При нулевом шуме траектория идёт гладко, при большом начинает дёргаться и в конце не останавливается.
лосс, логарифмическая шкала
- f в конце
- 4.45e-9
- обусловленность κ
- 1
- порог 2/L
- 2
- сходится
Поднимите шум и посмотрите на конец траектории: точка не останавливается, а блуждает вокруг минимума. Радиус блуждания растёт как корень из шага — уменьшите α вдвое, и шар сожмётся примерно в √2 раз по радиусу.
Как всё-таки сходиться
Раз шумовой шар пропорционален , для сходимости в точку шаг обязан убывать. Классические условия Роббинса–Монро:
Первое — «суммарного пути хватает, чтобы дойти куда угодно», второе — «накопленный шум конечен». Расписание удовлетворяет обоим, — только первому.
На практике условия Роббинса–Монро почти не соблюдают буквально: используют кусочно-постоянные или косинусные расписания (урок 090), которые формально не удовлетворяют первому условию, потому что обучение конечно. Это нормально — цель не предельная сходимость, а хорошая модель за отведённое время.
Batch size и learning rate связаны
Из формулы шумового шара следует практическое правило. Величина определяет уровень шума, значит:
сохраняет режим обучения. Отсюда два известных приёма:
- линейное правило масштабирования: увеличили батч в раз — увеличьте шаг в раз. Работает до некоторого предела, после которого мешает уже граница устойчивости ;
- увеличивать батч вместо уменьшения шага: даёт тот же эффект на шум, но лучше параллелизуется.
Предел важен и объясняет «критический размер батча». Шаг нельзя растить бесконечно — над метод расходится независимо от шума. Поэтому за некоторым увеличение батча перестаёт ускорять обучение: шум уже не является узким местом, а шаг поднять нельзя.
Шум как регуляризатор
Последнее, и самое неожиданное: шум SGD бывает полезен, и не только около седел.
- он мешает осесть в узком минимуме, потому что из узкого шумовой шар выбивает легче, чем из широкого. Эмпирически широкие минимумы обобщают лучше;
- он даёт неявную регуляризацию, по эффекту похожую на добавление штрафа;
- полный градиентный спуск на тех же данных часто обобщает хуже при том же обучающем лоссе.
Отсюда важный вывод: минибатчи — не только способ сэкономить. Это часть метода, и попытка «улучшить» обучение, сделав градиент точнее, регулярно ухудшает результат на тесте.
Источники
- Bottou, Curtis, Nocedal — Optimization Methods for Large-Scale Machine Learning — SGD, дисперсия, batch size
- Smith и др. — Don't Decay the Learning Rate, Increase the Batch Size — Взаимозаменяемость шага и размера батча
Проверки
0 из 2Шум стохастического градиента
Отметьте все верные утверждения о SGD.
Шумовой шар SGD
Задача , градиент по одному примеру имеет дисперсию , батч — размера .
Реализуйте
sgd_noise(a, alpha, sigma1, B)— верните[batch_variance, noise_ball, stable, critical_alpha]:batch_variance= — дисперсия градиента по батчу;critical_alpha= — порог устойчивости;stable=1.0, еслиcritical_alpha, иначе0.0;noise_ball= — стационарная дисперсия итерата. Если метод неустойчив, верните-1.0: стационарного распределения нет.
Сентинель однозначен, потому что дисперсия неотрицательна.
Загрузка редактора…
Ctrl/⌘ + Enter