Рассмотрите выпуклую функцию, не обязательно дифференцируемую, и задачу нахождения её глобального минимума на выпуклом замкнутом множестве с использованием субградиентных методов; опишите условия сходимости алгоритма, как выбирается шаг и как проверяется оптимальность точки с помощью субградиента, приведите примеры тонкостей в реализации при негладких функционалах.
Коротко — алгоритм, условия сходимости, критерий оптимальности и практические тонкости. 1) Постановка и базовый шаг - Пусть f:Rn→Rf:\mathbb{R}^n\to\mathbb{R}f:Rn→R — выпуклая (не обязательно гладкая) функция, C⊂RnC\subset\mathbb{R}^nC⊂Rn — выпуклое замкнутое множество. Цель: minx∈Cf(x)\min_{x\in C} f(x)minx∈Cf(x). - Проектированный субградиентный метод (PSM): gk∈∂f(xk),yk+1=xk−αkgk,xk+1=PC(yk+1),
g_k\in\partial f(x_k),\qquad y_{k+1}=x_k-\alpha_k g_k,\qquad x_{k+1}=P_C(y_{k+1}), gk∈∂f(xk),yk+1=xk−αkgk,xk+1=PC(yk+1),
где PCP_CPC — ортопроекция на CCC, αk>0\alpha_k>0αk>0 — шаг. 2) Необходимые предпосылки для сходимости (стандартные) - Существует оптимум f∗=minx∈Cf(x)f^*=\min_{x\in C}f(x)f∗=minx∈Cf(x). - Субградиенты ограничены: существует G<∞G<\inftyG<∞ такое, что для всех рассматриваемых итераций ∥gk∥≤G\|g_k\|\le G∥gk∥≤G (например, fff локально липшицева на CCC). - Множество CCC ограничено или расстояние до некоторого решения x∗x^*x∗ ограничено: D=∥x0−x∗∥<∞D=\|x_0-x^*\|<\inftyD=∥x0−x∗∥<∞ или диаметр maxx,y∈C∥x−y∥<∞ \max_{x,y\in C}\|x-y\|<\inftymaxx,y∈C∥x−y∥<∞. 3) Условия на шаги и типы сходимости - Диминирующие шаги (гарантия сходимости в значении функции): αk≥0,∑k=0∞αk=∞,∑k=0∞αk2<∞
\alpha_k\ge0,\quad \sum_{k=0}^\infty \alpha_k=\infty,\quad \sum_{k=0}^\infty \alpha_k^2<\infty αk≥0,k=0∑∞αk=∞,k=0∑∞αk2<∞
(например αk=ak+b\alpha_k=\dfrac{a}{k+b}αk=k+ba с a>0,b≥1a>0,b\ge1a>0,b≥1). Тогда значения f(xk)f(x_k)f(xk) сходятся к f∗f^*f∗ (обычно с медленным темпом). - Фиксированный шаг α\alphaα: после TTT итераций оценка для лучшей итерации (best iterate) mink≤T(f(xk)−f∗)≤D22αT+αG22.
\min_{k\le T} (f(x_k)-f^*) \le \frac{D^2}{2\alpha T} + \frac{\alpha G^2}{2}. k≤Tmin(f(xk)−f∗)≤2αTD2+2αG2.
Оптимальный выбор α=DGT\alpha=\dfrac{D}{G\sqrt{T}}α=GTD даёт скорость порядка mink≤T(f(xk)−f∗)=O (GDT).
\min_{k\le T} (f(x_k)-f^*) = O\!\left(\frac{GD}{\sqrt{T}}\right). k≤Tmin(f(xk)−f∗)=O(TGD).
- Polyak‑шаг (требует известного f∗f^*f∗): αk=f(xk)−f∗∥gk∥2
\alpha_k=\frac{f(x_k)-f^*}{\|g_k\|^2} αk=∥gk∥2f(xk)−f∗
даёт более быстрые гарантии (практически полезен, если f∗f^*f∗ известна или есть хороший нижний bound). - Усреднение: усреднённые итераты xˉT=1T∑k=1Txk\bar x_T=\frac{1}{T}\sum_{k=1}^T x_kxˉT=T1∑k=1Txk часто дают лучшие и более стабильные оценки по функции и достигают той же O(1/T)O(1/\sqrt{T})O(1/T) скорости с лучшей практикой. 4) Критерий оптимальности через субградиент - Необходимое и достаточное условие оптимальности (Ферма) для выпуклой задачи на CCC: 0∈∂f(x∗)+NC(x∗),
0\in\partial f(x^*)+N_C(x^*), 0∈∂f(x∗)+NC(x∗),
где NC(x∗)N_C(x^*)NC(x∗) — нормальное множество к CCC в x∗x^*x∗. - Часто эквивалентно: существует g∈∂f(x)g\in\partial f(x)g∈∂f(x) такой, что x=PC(x−g).
x = P_C(x - g). x=PC(x−g).
Практический остаток для проверки: для некоторого g∈∂f(x)g\in\partial f(x)g∈∂f(x) вычислить r(x,g)=∥x−PC(x−g)∥.
r(x,g)=\|x - P_C(x - g)\|. r(x,g)=∥x−PC(x−g)∥.
Если r(x,g)≤εr(x,g)\le\varepsilonr(x,g)≤ε (малое число), то xxx считается ε\varepsilonε-станционарной/приближённо-оптимальной точкой. - В неограниченном случае (без ограничений) оптимальность эквивалентна 0∈∂f(x)0\in\partial f(x)0∈∂f(x); практический критерий: найти g∈∂f(x)g\in\partial f(x)g∈∂f(x) с ∥g∥≤ε\|g\|\le\varepsilon∥g∥≤ε. 5) Практические тонкости при негладких функциях - Выбор конкретного субградиента. В точках неровности ∂f(x)\partial f(x)∂f(x) — многогранник; разные выборы дают разное поведение итераций. Рекомендуется: - усреднять итераты или субградиенты для стабильности; - использовать bundle‑методы или метод субградиента с адаптивным шагом, если нужна лучшая производительность. - Проекция на CCC может быть вычислительно дорогой; заменяют: - приближенными проекциями (контролируя ошибку), - проксимальными шагами, или - зеркальными/prox‑алгоритмами (mirror descent) при удобной задаче геометрии. - Отсутствие липшицевости. Если субградиенты неограничены, стандартные оценки ломаются — требуется локальная регуляризация/сглаживание (Moreau‑envelope, Nesterov smoothing). - Падающая/осциллирующая динамика при больших шагах; при слишком маленьких шагах — крайне медленная сходимость. Практически выбирают схемы типа αk=ak+b\alpha_k=\dfrac{a}{k+b}αk=k+ba с подбором aaa. - Polyak‑шаг хорош, но требует f∗f^*f∗. Можно использовать оценку нижней грани вместо точного f∗f^*f∗. - Для функций вида f(x)=maxi⟨ai,x⟩+bif(x)=\max_i \langle a_i,x\rangle + b_if(x)=maxi⟨ai,x⟩+bi (макс-линейные) субградиенты — конвексная оболочка активных градиентов; на практике удобно выбирать любой активный индекс или их сочетание. - Численные ошибки: при вычислении субградиента численные приближения могут нарушать критерий 0∈∂f+NC0\in\partial f+N_C0∈∂f+NC; надо учитывать допуск при проверке остатка rrr. 6) Рекомендации для реализации - Используйте проекции/проксиматоры, которые вы можете эффективно считать. - Если GGG или DDD неизвестны, экспериментально подберите параметр aaa в αk=ak+b\alpha_k=\dfrac{a}{k+b}αk=k+ba. - Храните и возвращайте усреднённый iterate или лучшую по функции из просмотренных итератов. - При жёстких негладкостях рассмотрите bundle‑метод или сглаживание (Moreau), если нужно ускорение. - Останавливайте по комбинированному критерию: малое уменьшение значения функции, малый остаток r(x,g)r(x,g)r(x,g) и/или ограничение числа итераций. Кратко: стандартный проектированный субградиентный метод прост в реализации; при условии ограниченных субградиентов и правильно выбранных шагов (обычно диминирующих) значения функции сходятся к оптимуму с темпом примерно O(1/T)O(1/\sqrt{T})O(1/T); оптимальность проверяется через условие 0∈∂f(x)+NC(x)0\in\partial f(x)+N_C(x)0∈∂f(x)+NC(x) (практически — через остаток ∥x−PC(x−g)∥\|x-P_C(x-g)\|∥x−PC(x−g)∥). Для реальных негладких задач нужно заботиться о выборе субградиента, проекции, шагов и/или применять более сложные методы (bundle, прокс/сглаживание) для улучшения скорости и стабильности.
1) Постановка и базовый шаг
- Пусть f:Rn→Rf:\mathbb{R}^n\to\mathbb{R}f:Rn→R — выпуклая (не обязательно гладкая) функция, C⊂RnC\subset\mathbb{R}^nC⊂Rn — выпуклое замкнутое множество. Цель: minx∈Cf(x)\min_{x\in C} f(x)minx∈C f(x).
- Проектированный субградиентный метод (PSM):
gk∈∂f(xk),yk+1=xk−αkgk,xk+1=PC(yk+1), g_k\in\partial f(x_k),\qquad y_{k+1}=x_k-\alpha_k g_k,\qquad x_{k+1}=P_C(y_{k+1}),
gk ∈∂f(xk ),yk+1 =xk −αk gk ,xk+1 =PC (yk+1 ), где PCP_CPC — ортопроекция на CCC, αk>0\alpha_k>0αk >0 — шаг.
2) Необходимые предпосылки для сходимости (стандартные)
- Существует оптимум f∗=minx∈Cf(x)f^*=\min_{x\in C}f(x)f∗=minx∈C f(x).
- Субградиенты ограничены: существует G<∞G<\inftyG<∞ такое, что для всех рассматриваемых итераций ∥gk∥≤G\|g_k\|\le G∥gk ∥≤G (например, fff локально липшицева на CCC).
- Множество CCC ограничено или расстояние до некоторого решения x∗x^*x∗ ограничено: D=∥x0−x∗∥<∞D=\|x_0-x^*\|<\inftyD=∥x0 −x∗∥<∞ или диаметр maxx,y∈C∥x−y∥<∞ \max_{x,y\in C}\|x-y\|<\inftymaxx,y∈C ∥x−y∥<∞.
3) Условия на шаги и типы сходимости
- Диминирующие шаги (гарантия сходимости в значении функции):
αk≥0,∑k=0∞αk=∞,∑k=0∞αk2<∞ \alpha_k\ge0,\quad \sum_{k=0}^\infty \alpha_k=\infty,\quad \sum_{k=0}^\infty \alpha_k^2<\infty
αk ≥0,k=0∑∞ αk =∞,k=0∑∞ αk2 <∞ (например αk=ak+b\alpha_k=\dfrac{a}{k+b}αk =k+ba с a>0,b≥1a>0,b\ge1a>0,b≥1). Тогда значения f(xk)f(x_k)f(xk ) сходятся к f∗f^*f∗ (обычно с медленным темпом).
- Фиксированный шаг α\alphaα: после TTT итераций оценка для лучшей итерации (best iterate)
mink≤T(f(xk)−f∗)≤D22αT+αG22. \min_{k\le T} (f(x_k)-f^*) \le \frac{D^2}{2\alpha T} + \frac{\alpha G^2}{2}.
k≤Tmin (f(xk )−f∗)≤2αTD2 +2αG2 . Оптимальный выбор α=DGT\alpha=\dfrac{D}{G\sqrt{T}}α=GT D даёт скорость порядка
mink≤T(f(xk)−f∗)=O (GDT). \min_{k\le T} (f(x_k)-f^*) = O\!\left(\frac{GD}{\sqrt{T}}\right).
k≤Tmin (f(xk )−f∗)=O(T GD ). - Polyak‑шаг (требует известного f∗f^*f∗):
αk=f(xk)−f∗∥gk∥2 \alpha_k=\frac{f(x_k)-f^*}{\|g_k\|^2}
αk =∥gk ∥2f(xk )−f∗ даёт более быстрые гарантии (практически полезен, если f∗f^*f∗ известна или есть хороший нижний bound).
- Усреднение: усреднённые итераты xˉT=1T∑k=1Txk\bar x_T=\frac{1}{T}\sum_{k=1}^T x_kxˉT =T1 ∑k=1T xk часто дают лучшие и более стабильные оценки по функции и достигают той же O(1/T)O(1/\sqrt{T})O(1/T ) скорости с лучшей практикой.
4) Критерий оптимальности через субградиент
- Необходимое и достаточное условие оптимальности (Ферма) для выпуклой задачи на CCC:
0∈∂f(x∗)+NC(x∗), 0\in\partial f(x^*)+N_C(x^*),
0∈∂f(x∗)+NC (x∗), где NC(x∗)N_C(x^*)NC (x∗) — нормальное множество к CCC в x∗x^*x∗.
- Часто эквивалентно: существует g∈∂f(x)g\in\partial f(x)g∈∂f(x) такой, что
x=PC(x−g). x = P_C(x - g).
x=PC (x−g). Практический остаток для проверки: для некоторого g∈∂f(x)g\in\partial f(x)g∈∂f(x) вычислить
r(x,g)=∥x−PC(x−g)∥. r(x,g)=\|x - P_C(x - g)\|.
r(x,g)=∥x−PC (x−g)∥. Если r(x,g)≤εr(x,g)\le\varepsilonr(x,g)≤ε (малое число), то xxx считается ε\varepsilonε-станционарной/приближённо-оптимальной точкой.
- В неограниченном случае (без ограничений) оптимальность эквивалентна 0∈∂f(x)0\in\partial f(x)0∈∂f(x); практический критерий: найти g∈∂f(x)g\in\partial f(x)g∈∂f(x) с ∥g∥≤ε\|g\|\le\varepsilon∥g∥≤ε.
5) Практические тонкости при негладких функциях
- Выбор конкретного субградиента. В точках неровности ∂f(x)\partial f(x)∂f(x) — многогранник; разные выборы дают разное поведение итераций. Рекомендуется:
- усреднять итераты или субградиенты для стабильности;
- использовать bundle‑методы или метод субградиента с адаптивным шагом, если нужна лучшая производительность.
- Проекция на CCC может быть вычислительно дорогой; заменяют:
- приближенными проекциями (контролируя ошибку),
- проксимальными шагами, или
- зеркальными/prox‑алгоритмами (mirror descent) при удобной задаче геометрии.
- Отсутствие липшицевости. Если субградиенты неограничены, стандартные оценки ломаются — требуется локальная регуляризация/сглаживание (Moreau‑envelope, Nesterov smoothing).
- Падающая/осциллирующая динамика при больших шагах; при слишком маленьких шагах — крайне медленная сходимость. Практически выбирают схемы типа αk=ak+b\alpha_k=\dfrac{a}{k+b}αk =k+ba с подбором aaa.
- Polyak‑шаг хорош, но требует f∗f^*f∗. Можно использовать оценку нижней грани вместо точного f∗f^*f∗.
- Для функций вида f(x)=maxi⟨ai,x⟩+bif(x)=\max_i \langle a_i,x\rangle + b_if(x)=maxi ⟨ai ,x⟩+bi (макс-линейные) субградиенты — конвексная оболочка активных градиентов; на практике удобно выбирать любой активный индекс или их сочетание.
- Численные ошибки: при вычислении субградиента численные приближения могут нарушать критерий 0∈∂f+NC0\in\partial f+N_C0∈∂f+NC ; надо учитывать допуск при проверке остатка rrr.
6) Рекомендации для реализации
- Используйте проекции/проксиматоры, которые вы можете эффективно считать.
- Если GGG или DDD неизвестны, экспериментально подберите параметр aaa в αk=ak+b\alpha_k=\dfrac{a}{k+b}αk =k+ba .
- Храните и возвращайте усреднённый iterate или лучшую по функции из просмотренных итератов.
- При жёстких негладкостях рассмотрите bundle‑метод или сглаживание (Moreau), если нужно ускорение.
- Останавливайте по комбинированному критерию: малое уменьшение значения функции, малый остаток r(x,g)r(x,g)r(x,g) и/или ограничение числа итераций.
Кратко: стандартный проектированный субградиентный метод прост в реализации; при условии ограниченных субградиентов и правильно выбранных шагов (обычно диминирующих) значения функции сходятся к оптимуму с темпом примерно O(1/T)O(1/\sqrt{T})O(1/T ); оптимальность проверяется через условие 0∈∂f(x)+NC(x)0\in\partial f(x)+N_C(x)0∈∂f(x)+NC (x) (практически — через остаток ∥x−PC(x−g)∥\|x-P_C(x-g)\|∥x−PC (x−g)∥). Для реальных негладких задач нужно заботиться о выборе субградиента, проекции, шагов и/или применять более сложные методы (bundle, прокс/сглаживание) для улучшения скорости и стабильности.