これは何?
機械学習や数理最適化に関する論文を読んでいると,アルゴリズムの収束性の議論をするときなどに関数の平滑性 (Smoothness) を仮定することがあります.
先日,友人氏 (@IamTakala) から平滑性に関する性質をまとめた記事 [1] において,[1] -> [0] は成立しないのか,という旨の連絡を受け,凸性を仮定すれば成立することを確認したので,その内容をまとめておこうと思います.記事 [1] の [1] -> [0] がどのような主張かというと,「関数 $g(x) = \frac{L}{2} \|x\|^2 - f(x)$ が凸関数であるとき,関数 $f$ は $L$-平滑である」というものです.
なお,本記事では,ベクトルであっても太字を用いないこととし,$\|\cdot\|$ は適当なノルムを表すものとします.
また,本記事は 数理最適化のカレンダー | Advent Calendar 2023 - Qiita の第 11 日目の代理として書かれたものです(何か不都合があれば,@mirucaaura までご連絡頂ければと思います).
準備
まず,関数 $f$ に関する平滑性は次のように定義されるのであった:
上記の平滑性の定義において,関数 $f$ に対する凸性は必要ないことに注意されたい.また,上記の $f$ の平滑性は,$\nabla f(x)$ に関する Lipschitz 連続性と等価であり,$L$ は Lipschitz 定数に他ならない.
次に,関数 $f$ が凸関数であるとき,平滑であることと等価な条件を確認する.証明は [2] などを参照されたい.
(1) $f(y) \leq f(x) + \left<\nabla f(x), y-x\right> + \frac{L}{2} \|x-y\|^2$
(2) $f(y) \geq f(x) + \left<\nabla f(x), y-x\right> + \frac{1}{2L} \|x-y\|^2$
(3) $\left<\nabla f(x) - \nabla f(y), x-y\right> \geq \frac{1}{L} \|\nabla f(x) - \nabla f(y)\|^2$
本題
さて,懸案事項は,凸関数 $f$ が $L$-平滑であるとき,以下のような関係が成立するかどうかである (実際に成立するので命題という形で書いている):
証明の方針:凸関数 $f$ が命題の条件を満たすとき,$f$ に対する $L$-平滑性と等価な条件式 (命題 1-(2)) が成立することを確かめる.
証明.まず,関数 $\phi_x:\mathbb{R}^n\to\mathbb{R}$ を次のように定める:
\begin{align} \phi_x(z) := f(z) - \left<\nabla f(x), z\right>. \end{align}
この関数 $\phi_x$ の勾配ベクトルは,
\begin{align} \nabla \phi_x(z) = \nabla f(z) - \nabla f(x) \end{align}
であるから,$z=x$ において最小となる ($\because \nabla \phi_x(x) = \nabla f(x) - \nabla f(x) = 0$).
いま,命題の条件より,関数 $h(z) := \frac{L}{2} \|z\|^2 - \phi_x(z)$ も凸である.実際,この関数 $h:\mathbb{R}^n\to\mathbb{R}$ は
\begin{align} h(z) = \underbrace{\frac{L}{2} \|z\|^2 - f(z)}_{=g(z)} + \left<\nabla f(x), z\right> \end{align}
であり,凸関数 $g$ に線形項を加えた関数であり,したがって凸である.
さて,関数 $h$ の凸性より,任意の $z, y \in \mathbb{R}^n$ に対して次の不等式が成り立つ:
\begin{align} h(z) \geq h(y) + \left<\nabla h(y), z-y\right>. \end{align}
つまり,任意の $y, z\in\mathbb{R}^n$ に対して,
\begin{align} &\frac{L}{2}\|z\|^2 - \phi_x(z) \geq \frac{L}{2}\|y\|^2 - \phi_x(y) + \left< L y - \nabla \phi_x(y), z-y \right> \\ \iff\quad& \phi_x(z) \leq \phi_x(y) + \left<\nabla \phi_x(y), z-y\right> + \underbrace{\frac{L}{2}\|z\|^2 - \frac{L}{2}\|y\|^2 - \left< Ly, z-y\right>}_{=\frac{L}{2}\|z-y\|^2}. \end{align}
が成り立つ.上式において,左辺の $\phi_x(z)$ は $z=x$ において最小となる.また,右辺全体を $\varphi(z)$ とおくと,$\nabla \varphi(z) = \nabla \phi_x(y) + L(z-y)$ であるから,右辺 $\varphi(z)$ は $z=y-\frac{1}{L}\nabla\phi_x(y)$ で最小となる.したがって,
\begin{align} f(x) - \left< \nabla f(x), x \right> &\leq \phi_x(y) + \left< \nabla \phi_x(y) , -\frac{1}{L} \nabla \phi_x(y) \right> + \frac{L}{2} \left\| -\frac{1}{L} \nabla \phi_x(y) \right\|^2 \\ &= \phi_x(y) - \frac{1}{L} \| \nabla \phi_x(y) \|^2 + \frac{1}{2L} \| \nabla \phi_x(y) \|^2 \\ &= f(y) - \left< \nabla f(x), y\right> - \frac{1}{2L} \| \nabla f(y) - \nabla f(x)\|^2. \end{align}
整理すると,所望の不等式 (命題 2-(2)):
\begin{align} f(y) - f(x) - \left<\nabla f(x), y-x \right> \geq \frac{1}{2L} \| \nabla f(y) - \nabla f(x) \|^2 \end{align}
が得られる.したがって,関数 $g(x) = \frac{L}{2} \|x\|^2 - f(x)$ が凸であるとき,関数 $f$ は $L$-平滑である.(証明終)
参考文献
[1]
Lipschitz continuous gradient · Xingyu Zhou's blog (2023/12/26 閲覧)
[2] 飯塚秀明 (2023)『連続最適化アルゴリズム』, オーム社