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

Материал из MachineLearning.

Версия от 19:53, 14 июля 2026; Kamilia Gibadullina (Обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск
Статья написана с использованием LLM GPT-5.6 Thinking и проверена участником К.Н.Гибадуллина 22:50, 14 июля 2026 (MSD)


Содержание

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

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

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

Определение

Пусть D — выпуклое множество, а f — вещественнозначная функция, определённая на множестве D. Функция f называется выпуклой, если для любых точек x,y\in D и любого числа \lambda\in[0,1] выполняется неравенство


f(\lambda x+(1-\lambda)y)\leq
\lambda f(x)+(1-\lambda)f(y).

Точка


\lambda x+(1-\lambda)y

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

Функция называется строго выпуклой, если для любых различных точек x\neq y и любого \lambda\in(0,1) выполняется строгое неравенство


f(\lambda x+(1-\lambda)y)\lt
\lambda f(x)+(1-\lambda)f(y).

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

Вогнутой функцией называется функция, для которой выполняется противоположное неравенство:


f(\lambda x+(1-\lambda)y)\geq
\lambda f(x)+(1-\lambda)f(y).

Функция f является вогнутой тогда и только тогда, когда функция -f является выпуклой.

Примеры

К простейшим примерам выпуклых функций относятся следующие функции.

Квадратичная функция


f(x)=x^2

строго выпукла на всей числовой прямой. Её график представляет собой параболу, направленную ветвями вверх.

Функция модуля


f(x)=|x|

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

Экспоненциальная функция


f(x)=e^x

строго выпукла на всей числовой прямой. Её скорость роста увеличивается с ростом аргумента.

Не всякая гладкая функция является выпуклой. Например, функция


f(x)=x^3

не является выпуклой на всей числовой прямой. При отрицательных значениях x её график имеет один характер изгиба, а при положительных — противоположный. При этом на промежутке [0,+\infty) функция x^3 выпукла, а на промежутке (-\infty,0] — вогнута.

Линейная функция


f(x)=ax+b

одновременно является выпуклой и вогнутой. Для неё неравенство из определения выпуклости всегда выполняется как равенство.

Критерии выпуклости

Для дважды дифференцируемой функции одной переменной существует простой критерий выпуклости. Если на некотором интервале выполняется условие


f''(x)\geq 0,

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

Например, для функции f(x)=x^2


f''(x)=2>0,

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


f''(x)=e^x>0,

что также подтверждает её строгую выпуклость.

Для функции f(x)=x^3 вторая производная равна


f''(x)=6x.

Она отрицательна при x<0 и положительна при x>0, поэтому функция не является выпуклой на всей числовой прямой.

Условие f''(x)>0 является достаточным условием строгой выпуклости. Однако оно не является необходимым: строго выпуклая функция может иметь отдельные точки, в которых вторая производная равна нулю. Например, функция f(x)=x^4 строго выпукла, хотя f''(0)=0.

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

Значение в оптимизации и машинном обучении

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

Строго выпуклая функция может иметь не более одной точки глобального минимума. При этом существование минимума не следует только из строгой выпуклости: оно также зависит от области определения и поведения функции на её границе или при больших значениях аргумента.

Для дифференцируемой выпуклой функции точка x^*, в которой градиент равен нулю,


\nabla f(x^*)=0,

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

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


L(w)=\frac{1}{n}\sum_{i=1}^{n}(w^\mathsf{T}x_i-y_i)^2

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

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


\ell(z,y)=\ln(1+e^{-yz}),

где y\in{-1,1}, а z — значение линейной модели.

Распространённые виды регуляризации сохраняют выпуклость задачи. L1-регуляризация использует функцию


\|w\|_1=\sum_j|w_j|,

а L2-регуляризация — квадратичную функцию


\|w\|_2^2=\sum_j w_j^2.

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

Для минимизации дифференцируемых функций часто применяется Градиентный спуск. Его итерация имеет вид


x_{k+1}=x_k-\eta_k\nabla f(x_k),

где \eta_k — величина шага. В выпуклой задаче направление антиградиента позволяет последовательно приближаться к глобальному минимуму при подходящем выборе шага и выполнении условий сходимости.

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

См. также