Оптимизация

Выпуклость

Свойство, при котором локальный минимум обязан быть глобальным — и почему глубокое обучение его не имеет

Шаг 61 из 117 · ~28 мин

Определение и что оно даёт

f(λx+(1λ)y)  λf(x)+(1λ)f(y)λ[0,1]\htmlData{k=graph}{f\big(\lambda x + (1-\lambda) y\big)} \ \le \ \htmlData{k=chord}{\lambda f(x) + (1-\lambda) f(y)} \qquad \forall \lambda \in [0,1]

Словами: лежит не ниже . Определение геометрическое, а ценность — вычислительная, потому что из него следует одно свойство, ради которого всё это и нужно:

У выпуклой функции всякий локальный минимум является глобальным.

Доказательство в одну строку: если бы существовала точка yy с f(y)<f(x)f(y) < f(x) при локально минимальном xx, то на отрезке от xx к yy значения были бы не больше хорды, то есть уже вблизи xx нашлись бы точки со значением меньше f(x)f(x) — противоречие с локальной минимальностью.

Отсюда всё остальное: любой метод, который умеет останавливаться в точке с нулевым градиентом, на выпуклой задаче находит ответ, а не «какой-то ответ». Ни инициализация, ни путь не важны.

Как проверять

Три критерия, от самого общего к самому удобному:

критерийусловиекогда применим
по определениюхорда над графикомвсегда
первого порядкаf(y)f(x)+f(x)(yx)f(y) \ge f(x) + \nabla f(x)^\top (y - x)ff дифференцируема
второго порядка2f0\nabla^2 f \succeq 0ff дважды дифференцируема

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

Третий — самый практичный: матрица Гессе положительно полуопределена, то есть все её собственные значения неотрицательны. Это ровно то условие из урока про собственные значения (блок 1, урок 070), и здесь оно наконец получает применение.

Посмотрите на кривые: у выпуклых секущая всегда над графиком, у остальных — не всегда.

x
0.8
f(x)
0.64
производная f'(x)
1.6
Выпуклая: вторая производная равна 2 всюду. Гессиан положительно определён, минимум единственный.

Второй пример стоит отметить отдельно: exe^x выпукла, а минимума у неё нет. Выпуклость даёт «локальный ⟹ глобальный», но не обещает, что минимум существует. Для этого нужна дополнительно коэрцитивность (рост на бесконечности) или компактность области.

Операции, сохраняющие выпуклость

Это то, что позволяет проверять выпуклость реальных задач, не считая гессианы:

  • сумма выпуклых выпукла (отсюда: лосс плюс L2-регуляризатор выпуклы, если лосс выпуклый);
  • максимум выпуклых выпукл (отсюда: hinge loss, ReLU, x\|x\|_\infty);
  • композиция с линейным: f(Ax+b)f(Ax + b) выпукла, если ff выпукла (отсюда: почти любой лосс от линейной модели);
  • неотрицательная комбинация выпуклых выпукла.

А вот произведение и композиция с нелинейным в общем случае выпуклость не сохраняют. Это и есть причина невыпуклости глубоких сетей: слой — это композиция нелинейности с линейным отображением, и уже на двух слоях выпуклость теряется.

Что выпукло в машинном обучении

Список короткий, и его полезно знать точно:

задачавыпукла?
линейная регрессия с MSEда
ridge, lassoда
логистическая регрессияда
SVM с hinge lossда
softmax-регрессияда
MSE с сигмоидой на выходенет
любая сеть с ≥ 1 скрытым слоемнет
матричная факторизациянет

Шестая строка — полезная деталь. Один и тот же классификатор с сигмоидой даёт выпуклую задачу с кросс-энтропией и невыпуклую с MSE. Это ещё один аргумент в пользу кросс-энтропии, независимый от того, что был в блоке 3: она не только выведена из правдоподобия, но и сохраняет выпуклость.

Почему невыпуклость не катастрофа

Естественный вывод «значит, глубокое обучение обречено» — неверен, и стоит понимать, почему.

  • локальные минимумы в высокой размерности редки. Чтобы точка с нулевым градиентом была локальным минимумом, все dd собственных значений гессиана должны быть положительны. При случайном спектре вероятность этого падает экспоненциально с dd, и почти все критические точки оказываются седловыми;
  • плохие минимумы редко хуже хороших. Эмпирически (и с теоретическими подтверждениями для широких сетей) большинство найденных минимумов дают близкое значение лосса;
  • настоящая трудность не в невыпуклости, а в обусловленности. Этому посвящён урок 050, и он объясняет большую часть практических неудач обучения.

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

Источники

Проверки

0 из 2
  1. Что даёт выпуклость

    Отметьте все верные утверждения о выпуклости.

  2. Проверить выпуклость по определению

    Многочлен задан списком коэффициентов: coeffs[i] — коэффициент при xix^i, то есть [5, 3, 1] означает 5+3x+x25 + 3x + x^2.

    Реализуйте chord_gap(coeffs, x, y, lam) — верните [f_mid, chord, gap, second_derivative]:

    • f_mid = f(λx+(1λ)y)f(\lambda x + (1-\lambda)y) — значение в промежуточной точке;
    • chord = λf(x)+(1λ)f(y)\lambda f(x) + (1-\lambda) f(y) — значение хорды там же;
    • gap = chord - f_mid. Для выпуклой функции он неотрицателен на любом отрезке;
    • second_derivative — вторая производная в той же промежуточной точке, f(t)=i2cii(i1)ti2f''(t) = \sum_{i \ge 2} c_i \, i(i-1)\, t^{i-2}.

    Никакой численной аппроксимации не нужно: и значение, и вторая производная многочлена считаются по коэффициентам точно.

    функция chord_gap

    Загрузка редактора…

    Ctrl/⌘ + Enter