Почему выпуклость является ключом к оптимизации

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

Автор: НВС Яшвант
Компиляция: McGL

Когда вы впервые начинаете изучать машинное обучение, вероятно, наиболее интересным является алгоритм оптимизации, в частности, алгоритм оптимизации градиентного спуска, который представляет собой итеративный алгоритм оптимизации первого порядка, используемый для минимизации функции стоимости.

Интуиция, стоящая за градиентным спуском, состоит в том, чтобы сходиться к решению, которое может быть локальным минимумом в окрестности или, в лучшем случае, глобальным минимумом. Все выглядит хорошо, пока вы не начнете задавать вопросы о сходимости. Хорошее понимание выпуклости может помочь вам продемонстрировать интуицию, стоящую за теорией градиентного спуска. Итак, давайте обсудим это.

Выпуклые наборы

Проще говоря, выпуклое множество можно рассматривать как фигуру, в которой любая линия, соединяющая две точки, не выходит за пределы выпуклого множества. Это называется выпуклым множеством.
Взгляните на пример ниже.

Понимание выпуклых множеств

Очевидно, что любой отрезок, соединяющий 2 точки на круге или квадрате (левая и средняя фигуры), будет включен в фигуру. Это примеры выпуклых множеств. С другой стороны, самая правая фигура на изображении выше имеет часть линейного сегмента вне фигуры. Следовательно, это не выпуклое множество. Выпуклое множество C можно представить следующим образом.

Выпуклое заданное условие

Epigraph

См. график функции f ниже.
Эпиграф — это набор точек в функции или на ней.

эпиграф функции

Выпуклая функция

Хорошо, теперь, когда вы знаете, что такое выпуклые множества и надграфики, мы можем поговорить о выпуклых функциях.

Выпуклая функция и ее эпиграф

Функция называется выпуклой, если ее надграфик выпукл (как показано на нижнем левом зеленом графике).

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

Понимание выпуклых функций

Это означает, что f не является выпуклой, если существуют две точки x, y такие, что отрезок, соединяющий f(x) и f(y), находится ниже кривой функции f. Это приводит к потере выпуклости эпиграфа (показано красным справа на рисунке выше).

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

Тест на выпуклость

В нейронных сетях большинство функций стоимости невыпуклы. Следовательно, необходимо проверить выпуклость функции.
Функция f называется выпуклой, если ее вторая производная больше или равна 0.

Условия выпуклой функции

Примеры выпуклых функций: y=eˣ, y=x². Обе функции квадратично дифференцируемы. Если —f(x) — выпуклая функция, то функция f называется вогнутой.

Условия для вогнутых функций

Пример вогнутой функции: y=-eˣ. Эта функция квадратично дифференцируема.

Проверим выпуклость, построив показательную функцию eˣ.
Код для построения выпуклых и вогнутых функций:
import numpy as np 
import matplotlib.pyplot as plt 
x=np.linspace(-1, 2, 100)
# Convex function y1
y1 = np.exp(x)
plt.figure(1)
plt.plot(x, y1)
plt.xlabel('$x$')
plt.ylabel('$e^x$')
plt.show()

# Concave function y2
y2 = -np.exp(x)
plt.figure(2)
plt.plot(x, y2)
plt.xlabel('$x$')
plt.ylabel('$-e^x$')
plt.show()
view raw
Вывод кода:

Выпуклые и вогнутые функции

Выпуклость в оптимизации градиентного спуска

Как упоминалось ранее, алгоритм оптимизации градиентного спуска представляет собой итеративный алгоритм оптимизации первого порядка, используемый для минимизации функции стоимости. Чтобы понять, как выпуклость играет ключевую роль в градиентном спуске, давайте возьмем пример выпуклых и невыпуклых функций стоимости. Для моделей линейной регрессии мы определяем среднеквадратичную ошибку функции стоимости (MSE), которая измеряет среднее отклонение между фактическими и прогнозируемыми значениями. Наша цель — минимизировать эту функцию стоимости, чтобы повысить точность модели. MSE — выпуклая функция (квадратично дифференцируема). Это означает, что локальных минимумов нет, есть только глобальные минимумы. Следовательно, градиентный спуск будет сходиться к глобальному минимуму.

Уравнение СКО

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

Градиентный спуск для невыпуклых функций

Вы можете видеть, что градиентный спуск остановится на локальном минимуме, а не сойдется к глобальному минимуму. Потому что градиент в этой точке равен нулю (наклон 0) и является минимумом поблизости. Одним из способов решения этой проблемы является использование импульса.

Суммировать

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

источник:к data science.com/understand-…