Оптимизация
Гладкость и сильная выпуклость
Две константы, L и μ, из которых берутся все оценки скорости сходимости
Зачем нужны константы
В прошлых уроках выпуклость дала качественный ответ: минимум единственный. Но она ничего не сказала о том, как быстро его найти — и не может, потому что выпуклая функция бывает и почти линейной, и с изломом.
Чтобы получить оценку скорости, нужны две числовые характеристики: насколько сильно кривизна может быть большой и насколько малой.
Читается это так: разность между функцией и её линейным приближением зажата между двумя параболами. Для дважды дифференцируемой функции условие эквивалентно спектральному:
то есть все собственные значения гессиана лежат в .
Что каждая константа означает
Отношение — число обусловленности, и следующий урок целиком о нём.
Три оценки сходимости
Всё, что нужно помнить из теории сходимости, — эта таблица.
| предположения | шаг | скорость GD |
|---|---|---|
| только выпуклость | ||
| выпуклость + -гладкость + -сильная выпуклость | , | |
| невыпуклая + -гладкая | как |
Вторая строка — единственная, где сходимость линейная (то есть ошибка убывает геометрически). Она же объясняет, зачем нужна регуляризация с точки зрения оптимизации: добавление к выпуклой функции делает её -сильно выпуклой, то есть переводит задачу из первой строки во вторую.
Третья строка — та, в которой находится глубокое обучение, и обещает она немного: только что градиент стремится к нулю. Куда именно сойдётся — теорема не говорит.
Стабильность и предел
Самое практичное следствие -гладкости — жёсткая граница на шаг. На квадратичной функции с кривизной градиентный спуск умножает отклонение на за шаг, откуда:
| шаг | что происходит |
|---|---|
| монотонное убывание | |
| попадание в минимум за один шаг (по этой оси) | |
| сходится, но с колебаниями | |
| вечные колебания без сходимости | |
| расходимость |
Это проверяется точно: при множитель равен , и отклонение не меняется никогда. При множитель , и за шагов величина вырастает в раз.
Отсюда и практический смысл «слишком большого learning rate»: это не «модель учится плохо», а строгий порог, за которым итерация перестаёт быть сжатием. И порог задаётся максимальной кривизной, то есть самым узким направлением ландшафта — даже если по всем остальным можно было бы шагать в сто раз крупнее.
Что бывает без гладкости
-гладкость — не универсальное свойство. Она нарушается там, где градиент меняется скачком:
- x
- 0.8
- f(x)
- 0.64
- производная f'(x)
- 1.6
Второй пример важен практически: ReLU-сети не -гладкие. У них производная скачет на изломах, и формально все оценки сходимости для гладких функций к ним не применимы. Практика от этого не разваливается, но об этом стоит знать, читая теоремы: их условия реальными сетями не выполняются.
Третий и пятый примеры показывают, что и — характеристики функции вместе с областью, а не только функции. Поэтому в статьях гладкость почти всегда заявляют «на множестве уровня начальной точки» или на компакте.
Как это выглядит в обучении
Практических выводов три, и все проверяемы:
- максимальный шаг определяется максимальной кривизной. Одно узкое направление задаёт порог для всех;
- регуляризация улучшает не только обобщение, но и обусловленность. Прибавив , вы добавляете ко всем собственным значениям гессиана: растёт с нуля до , и падает с бесконечности до ;
- градиентное клипование — замена гладкости. Если не существует (или огромна на редких батчах), ограничение нормы градиента возвращает шагу предсказуемый размер. Об этом урок 090.
Источники
- Nesterov — Introductory Lectures on Convex Optimization, гл. 1–2 — L-гладкость, сильная выпуклость, оптимальные методы
- Bubeck — Convex Optimization: Algorithms and Complexity — Оценки сходимости через L и μ
Проверки
0 из 2L и μ
Отметьте все верные утверждения о -гладкости и сильной выпуклости.
Обусловленность и скорость
Квадратичная задача имеет спектр гессиана . К ней добавляют L2-регуляризацию с коэффициентом , что прибавляет ко всем собственным значениям.
Реализуйте
convergence_facts(mu, L, lam)— верните[kappa_before, kappa_after, best_step, rate]:kappa_before= — обусловленность до регуляризации. Если , верните-1.0: отношение бесконечно;kappa_after= , с тем же правилом-1.0, если ;best_step= — оптимальный шаг для градиентного спуска;rate= — множитель сокращения ошибки за шаг. Еслиkappa_afterравна-1.0, верните1.0: сжатия нет.
Проверить себя можно так:
rateобязана равняться . Это тождество, а не приближение — оптимальный шаг выбран именно так, чтобы уравнять два крайних множителя.Загрузка редактора…
Ctrl/⌘ + Enter