Оптимизация
Условия оптимальности
Нулевой градиент, седловые точки — и почему в высокой размерности они правило, а не исключение
Необходимое и достаточное
Точки с нулевым градиентом называются критическими, и их четыре вида:
| вид | спектр гессиана |
|---|---|
| локальный минимум | все |
| локальный максимум | все |
| седловая точка | есть и положительные, и отрицательные |
| вырожденная | есть |
Седла на картинке
Потащите точку к началу координат на седле: градиент обращается в нуль, а точка минимумом не является — вдоль одной оси функция растёт, вдоль другой падает.
- f(x, y)
- 2.25
- градиент
- 2.4, 1.8
- норма градиента
- 3
Единственная критическая точка — минимум. Спектр гессиана (2, 2): оба собственных значения положительны.
Почему седла — правило
Это главный результат урока, и он объясняет, почему невыпуклость глубоких сетей не так страшна, как кажется.
Пусть у гессиана в критической точке собственных значений, и пусть каждое независимо и симметрично имеет случайный знак. Тогда:
| вероятность минимума | |
|---|---|
| неотличима от нуля |
Модель на реальных данных, конечно, не даёт независимых случайных знаков — но качественный вывод подтверждается и теорией случайных матриц, и экспериментом: в большой сети почти всякая точка с нулевым градиентом — седловая.
Практические следствия три:
- бояться локальных минимумов не нужно. Их почти нет; те, что есть, обычно дают сравнимый лосс;
- седла замедляют, а не останавливают. Из седла есть направление спуска, но около него градиент мал, и метод «залипает» на много шагов. Именно с этим борется момент;
- условия второго порядка бесполезны на практике. Гессиан размера не то что не диагонализуется — он не существует в памяти. Проверить оптимальность в глубоком обучении невозможно, и никто не проверяет.
Что делают вместо проверки
Раз условие второго порядка недоступно, останавливаются по эвристикам:
| критерий | что означает |
|---|---|
| норма градиента мала | приблизились к критической точке — любой |
| лосс не падает шагов | плато, седло, или слишком малый шаг |
| валидационный лосс растёт | пора остановиться независимо от оптимальности |
Третья строка — та, которой пользуются в действительности, и она про другое. В машинном обучении цель не «найти минимум обучающего лосса», а «найти хорошую модель», и это буквально разные задачи: полный минимум обучающего лосса обычно означает переобучение. Early stopping — это сознательный отказ от оптимальности, и он же одна из форм регуляризации.
Ограничения меняют условие
Всё сказанное относится к минимуму внутри области. На границе градиент нулевым быть не обязан: минимум на отрезке достигается в , где .
Правильное условие для задач с ограничениями — это условия ККТ, и им посвящён урок 110. Пока достаточно запомнить: «градиент равен нулю» — условие для внутренней точки, и при активных ограничениях оно просто неверно.
Источники
- Nocedal, Wright — Numerical Optimization, гл. 2 — Условия первого и второго порядка
- Dauphin и др. — Identifying and attacking the saddle point problem — Почему в глубоких сетях мешают седла, а не минимумы
Проверки
0 из 2Критические точки
Отметьте все верные утверждения об условиях оптимальности.
Классифицировать критическую точку
Квадратичная форма задана гессианом . В начале координат градиент нулевой, и вид точки определяется спектром .
Реализуйте
classify(a, b, c)— верните[trace, det, lambda_min, lambda_max, kind]:trace= ,det= ;собственные значения симметричной матрицы в закрытой форме:
kind— код вида точки:2.0если оба собственных значения строго положительны (минимум),0.0если оба строго отрицательны (максимум),1.0если знаки разные (седло),-1.0если хотя бы одно равно нулю (вырожденная). Нуль определяйте с допуском , и проверяйте вырожденность первой.
Проверить себя можно двумя тождествами, которые обязаны выполняться точно: и .
Загрузка редактора…
Ctrl/⌘ + Enter