logo

近接勾配法 📂最適化理論

近接勾配法

定義 1

微分不可能目的関数H(x):RnRH(\mathbf{x}) : \mathbb{R}^{n} \to \mathbb{R}が微分可能な関数ffと微分不可能な関数ggに分解されるとする。

H(x)=f(x)+g(x) H(\mathbf{x}) = f(\mathbf{x}) + g(\mathbf{x})

以下の繰り返しアルゴリズムでHH最適化問題を解く方法をプロキシマル勾配法proximal gradient methodという。

x(k+1)=proxλg(x(k)λf(x(k))) \mathbf{x}^{(k+1)} = \operatorname{prox}_{\lambda g}(\mathbf{x}^{(k)} - \lambda \nabla f(\mathbf{x}^{(k)}))

説明

勾配降下法プロキシマル最適化を一緒に使うから、プロキシマル勾配法という。

導出

f(x)f(\mathbf{x})をテイラーの定理で近似して導出する方法は、式の展開がスムーズではないと思われ、アルゴリズムの式を納得するのが難しいから、紹介しない。

最適化したい関数はHHであり、これを微分可能な部分ffと微分不可能な部分ggに分けて考える。つまり、ffggを同時に最適化したいのだ。しかし、ffは微分可能であるため、勾配降下法を通じて、次のステップの最適点を得ることができる。

xf=xλf(x) \mathbf{x}_{f} = \mathbf{x} - \lambda \nabla f(\mathbf{x})

この点から遠くないところで同時にggを最適化する点は、プロキシマル最適化で得ることができる。

x=proxλg(xf)=arg minv{g(v)+12λvxf22:vRn} \mathbf{x}_{\ast} = \operatorname{prox}_{\lambda g}(\mathbf{x}_{f}) = \argmin\limits_{\mathbf{v}} \left\{ g(\mathbf{v}) + \dfrac{1}{2\lambda}\left\| \mathbf{v} - \mathbf{x}_{f} \right\|_{2}^{2} : \mathbf{v} \in \mathbb{R}^{n} \right\}

したがって、次のような最適解の更新式を得る。

x(k+1)=proxλg(x(k)λf(x(k)))=arg minv{g(v)+12λv(x(k)λf(x(k)))22:vRn} \begin{align*} \mathbf{x}^{(k+1)} &= \operatorname{prox}_{\lambda g}(\mathbf{x}^{(k)} - \lambda \nabla f(\mathbf{x}^{(k)})) \\ &= \argmin\limits_{\mathbf{v}} \left\{ g(\mathbf{v}) + \dfrac{1}{2\lambda}\left\| \mathbf{v} - \left( \mathbf{x}^{(k)} - \lambda \nabla f(\mathbf{x}^{(k)}) \right) \right\|_{2}^{2} : \mathbf{v} \in \mathbb{R}^{n} \right\} \end{align*}


  1. Parikh, Neal, and Stephen Boyd. “Proximal algorithms.” Foundations and trends® in Optimization 1.3 (2014), Ch4.2 Proximal gradient method ↩︎