エンジニアを目指す浪人のブログ

情報系に役立ちそうな応用数理をゆるめにメモします

制約なし凸最適化問題に対する最急降下法と,ノルム選択,目的関数に強凸性を仮定するときの収束解析をまとめる

本記事は以下の過去記事の内容を用います.

制約なし凸最適化問題の目的関数に強凸性を仮定することの意味について考える - エンジニアを目指す浪人のブログ

降下法の枠組みと,厳密直線探索,バックトラッキング直線探索の概要をまとめる - エンジニアを目指す浪人のブログ

制約なし凸最適化問題に対する勾配降下法と目的関数に強凸性を仮定するときの収束解析をまとめる - エンジニアを目指す浪人のブログ

二次ノルムの定義をメモする - エンジニアを目指す浪人のブログ

二次ノルムの双対ノルムを導出する - エンジニアを目指す浪人のブログ


制約なし凸最適化問題に対する最急降下法(steepest descent method)について,内容をまとめておくことにしました.Boyd and Vandenberghe(2004)の9章4節をベースにしています.なお,本記事の最急降下法におけるノルムとしてユークリッドノルムを選択したものについて,最急降下法ということも多いようです.

=================================================================================

目次

{\displaystyle \; } 0. 準備

{\displaystyle \; } 1. 最急降下法
{\displaystyle \;\;\; } 1.1. 理論
{\displaystyle \;\;\; } 1.2. アルゴリズム

{\displaystyle \; } 2. ノルム選択の例
{\displaystyle \;\;\; } 2.1. ユークリッドノルム
{\displaystyle \;\;\; } 2.2. 二次ノルム
{\displaystyle \;\;\; } 2.3. {\displaystyle l_1 } ノルム

{\displaystyle \; } 3. 考察
{\displaystyle \;\;\; } 3.1. 収束解析
{\displaystyle \;\;\; } 3.2. 二次ノルムと座標変換



[ 0. 準備 ]

冒頭の過去記事(制約なし凸最適化問題の目的関数)[ 0. 準備 ]と同じです.

冒頭の過去記事(降下法の枠組み)の内容も必要です.


[ 1. 最急降下法 ]

[ 1.1. 理論 ]

{\displaystyle f(x) }{\displaystyle  x } のまわりのテイラー展開の一次近似は以下です. {\displaystyle  \langle \cdot , \cdot \rangle } は通常の内積です.

(1.1.1){\displaystyle \;\;\; f(x + v) \approx \hat{f}(x + v) }

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; = f(x) + \nabla f(x)^T v  \;\;\; \because } テイラーの定理(文献[2])

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; = f(x) + \langle \nabla f(x) , v \rangle }

右辺第二項 {\displaystyle \nabla f(x)^T v } は方向 {\displaystyle v } における {\displaystyle f }{\displaystyle x } での方向微分(directional derivative)といい,小さなステップ {\displaystyle v } に対する {\displaystyle f } の近似的な変化です.方向微分 {\displaystyle \nabla f(x)^T v } が負の値をとるときステップ {\displaystyle v } は降下方向(descent direction)です(冒頭の過去記事(降下法の枠組み)(1.1.6)にあります).

方向微分を可能な限り負にする {\displaystyle v } を選択する方法について述べます.方向微分 {\displaystyle \nabla f(x)^T v }{\displaystyle v } に対して線形なので,(与えられる {\displaystyle v } が降下方向,すなわち {\displaystyle \nabla f(x)^T v  \lt 0 } であれば) {\displaystyle v } を大きくすることで {\displaystyle \nabla f(x)^T v } を好きなだけ負にすることができます.問いを目的にかなったものにするためには,{\displaystyle v } のサイズを制限するか {\displaystyle v } の長さを正規化しなければなりません.

{\displaystyle \left\| \cdot \right\| }{\displaystyle \mathbb{R}^n } 上の任意のノルムとします.(ノルム {\displaystyle \left\| \cdot \right\| } の意味での)正規化された最急降下方向(normalized steepest descent direction)を定義します.(複数の最急降下方向があり得ます.)

(1.1.2){\displaystyle \;\;\; \Delta x_\mathrm{nsd} = \mathrm{arg \ min}_{ \{ v \ : \ \left\| v \right\| = 1 \} } \ \langle \nabla f(x) , v \rangle }

これは以下のように解釈できます.{\displaystyle \left\| \cdot \right\| } ノルムの意味での単位球内で,方向 {\displaystyle - \nabla f(x) } と同方向(方向 {\displaystyle \nabla f(x) } と反対方向)に最大限伸ばした方向を意味します.

(1.1.3){\displaystyle \;\;\; \Delta x_\mathrm{nsd} = \mathrm{arg \ min}_{ \{ v \ : \ \left\| v \right\| \le 1 \} } \ \langle \nabla f(x) , v \rangle }

{\displaystyle  \Delta x_\mathrm{nsd} } をスケーリングすることで得られる,正規化されていない最急降下ステップ {\displaystyle  \Delta x_\mathrm{sd} } を考慮すると便利です.{\displaystyle \left\| \cdot \right\|_{*} } は双対ノルムです(文献[3]にあります).

(1.1.4){\displaystyle \;\;\; \Delta x_\mathrm{sd} =  \left\| \nabla f(x) \right\|_{*} \Delta x_\mathrm{nsd} }

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  =  \sup_{ \{ v \ : \ \left\| v \right\| \le 1 \} } \langle \nabla f(x) , v \rangle \ \Delta x_\mathrm{nsd} }

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  =  \sup_{ \{ v \ : \ \left\| v \right\| \le 1 \} } \langle \nabla f(x) , v \rangle \ \mathrm{arg \ min}_{ \{ v \ : \ \left\| v \right\| \le 1 \} } \ \langle \nabla f(x) , v \rangle \;\;\; \because } (1.1.3)

{\displaystyle  \Delta x_\mathrm{sd} } は,{\displaystyle \nabla f(x) = 0 } でないかぎり降下方向(冒頭の過去記事(降下法の枠組み)(1.1.6))であることがわかります.

(1.1.5){\displaystyle \;\;\; \nabla f(x)^T  \Delta x_\mathrm{sd} = \nabla f(x)^T \left\| \nabla f(x) \right\|_{*} \Delta x_\mathrm{nsd} \;\;\; \because } (1.1.4)

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  = \left\| \nabla f(x) \right\|_{*} \nabla f(x)^T \Delta x_\mathrm{nsd} }

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  = \left\| \nabla f(x) \right\|_{*} \nabla f(x)^T \ \mathrm{arg \ min}_{ \{ v \ : \ \left\| v \right\| \le 1 \} } \ \langle \nabla f(x) , v \rangle \;\;\; \because } (1.1.3)

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  = \left\| \nabla f(x) \right\|_{*} \nabla f(x)^T \ \mathrm{arg \ min}_{ \{ v \ : \ \left\| v \right\| \le 1 \} } \ \nabla f(x)^T v  }

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  = \left\| \nabla f(x) \right\|_{*} \min_{ \{ v \ : \ \left\| v \right\| \le 1 \} } \ \nabla f(x)^T v }

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  = \left\| \nabla f(x) \right\|_{*} \min_{ \{ v \ : \ \left\| v \right\| \le 1 \} } \ \langle \nabla f(x) , v \rangle }

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  = \left\| \nabla f(x) \right\|_{*} \max_{ \{ v \ : \ \left\| v \right\| \le 1 \} } \ - \langle \nabla f(x) , v \rangle }

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  = - \left\| \nabla f(x) \right\|_{*} \max_{ \{ v \ : \ \left\| v \right\| \le 1 \} } \ \langle \nabla f(x) , v \rangle }

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  = - \left\| \nabla f(x) \right\|_{*} \sup_{ \{ v \ : \ \left\| v \right\| \le 1 \} } \ \langle \nabla f(x) , v \rangle }

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  = - \left\| \nabla f(x) \right\|_{*} \left\| \nabla f(x) \right\|_{*} \;\;\; \because } 双対ノルムの定義(文献[3])

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  = - \left\| \nabla f(x) \right\|_{*}^2 }

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  \lt 0 }


[ 1.2. アルゴリズム ]

最急降下法は探索方向に最急降下方向 {\displaystyle \Delta x_\mathrm{sd} } を用います.アルゴリズムを以下に示します.厳密直線探索(exact line search)とバックトラッキング直線探索(backtracking line search)は冒頭の過去記事(降下法の枠組み)にあります.

f:id:seetheworld1992:20201124160106p:plain

厳密直線探索(冒頭の過去記事(降下法の枠組み)(1.2.1))を用いるときは,スケールファクターの効果はないので {\displaystyle \Delta x_\mathrm{nsd} }{\displaystyle \Delta x_\mathrm{sd} } の区別はありません.



[ 2. ノルム選択の例 ]

最急降下方向を決定するときに用いるノルムによって,最急降下方向が変わります.本章では,いくつかのノルムについて,それらを選択する場合の性質を調べていきます.


[ 2.1. ユークリッドノルム ]

ノルム {\displaystyle \left\| \cdot \right\| } としてユークリッドノルム {\displaystyle \left\| \cdot \right\|_{2} } を選択すると,双対ノルム {\displaystyle \left\| \cdot \right\|_{*} = \left\| \cdot \right\|_{2} } です(文献[3]にあります).このとき以下を得ます.この {\displaystyle \Delta x_\mathrm{sd} } は勾配降下法(gradient descent method)(冒頭の過去記事(制約なし凸最適化問題に対する勾配降下法)(1.1.1))に一致します.したがって,勾配降下法は最急降下法の特別な場合であることがわかります.

(2.1.1){\displaystyle \;\;\; \Delta x_\mathrm{nsd} = \mathrm{arg \ min}_{ \{ v : \left\| v \right\|_2 = 1 \} } \ \langle \nabla f(x) , v \rangle  \;\;\; \because } (1.1.2) {\displaystyle , \ \left\| \cdot \right\| = \left\| \cdot \right\|_2 }

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; = - \frac{ \nabla f(x) }{ \left\| \nabla f(x) \right\|_2 } }

(2.1.2){\displaystyle \;\;\; \Delta x_\mathrm{sd} = \left\| \nabla f(x) \right\|_{*} \Delta x_\mathrm{nsd} }

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  = \left\| \nabla f(x) \right\|_{2} \Delta x_\mathrm{nsd} \;\;\;\;\;\; \because \left\| \cdot \right\|_{*} = \left\| \cdot \right\|_2 }

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  = \left\| \nabla f(x) \right\|_{2} \left[ - \frac{ \nabla f(x) }{ \left\| \nabla f(x) \right\|_2 } \right]  \;\;\; \because } (2.1.1)

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  = - \nabla f(x) }


[ 2.2. 二次ノルム ]

ノルム {\displaystyle \left\| \cdot \right\| } として二次ノルム(quadratic norm)(冒頭の過去記事(二次ノルムの定義)定義.にあります) {\displaystyle \left\| \cdot \right\|_{P} } を選択すると,任意の {\displaystyle x \in \mathbb{R}^n } について双対ノルム {\displaystyle \left\| x \right\|_{*} = \left\| P^{-1/2} x \right\|_{2} } です(冒頭の過去記事(二次ノルムの双対ノルム)事実.にあります).このとき以下を得ます.

(2.2.1){\displaystyle \;\;\; \Delta x_\mathrm{nsd} = \mathrm{arg \ min}_{ \{ v \ : \ \left\| v \right\|_{P} = 1 \} } \ \langle \nabla f(x), v \rangle }

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; = \mathrm{arg \ min}_{ \{ v \ : \ \left\| P^{1/2} v \right\|_2 = 1 \} } \ \langle \nabla f(x), v \rangle }

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; = \mathrm{arg \ min}_{ \{ v \ : \ \left\| P^{1/2} v \right\|_2 = 1 \} } \ \nabla f(x)^T v }

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; = \mathrm{arg \ min}_{ \{ v \ : \ \left\| P^{1/2} v \right\|_2 = 1 \} } \ \nabla f(x)^T P^{-1/2} P^{1/2} v }

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; = \mathrm{arg \ min}_{ \{ v \ : \ v = P^{-1/2} \ y, \ \left\| y \right\|_2 = 1 \} } \ ( \nabla f(x)^T P^{-1/2} ) y }

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; = \mathrm{arg \ min}_{ \{ v \ : \ v = P^{-1/2} \ y, \ \left\| y \right\|_2 = 1 \} } \ y^T ( \nabla f(x)^T P^{-1/2} )^T  }

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; = \mathrm{arg \ min}_{ \{ v \ : \ v = P^{-1/2} \ y, \ \left\| y \right\|_2 = 1 \} } \ y^T (P^{-1/2} \nabla f(x)) \;\;\; \because (P^{-1/2})^T = P^{-1/2}  }

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  = P^{-1/2} \left[ - \frac{ P^{-1/2} \nabla f(x) }{ \left\| P^{-1/2} \nabla f(x) \right\|_2  } \right]  }

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  = - \frac{ P^{-1} \nabla f(x) }{ \left\| P^{-1/2} \nabla f(x) \right\|_2  } }

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  = - P^{-1} \nabla f(x) / \left[ \left\| P^{-1/2} \nabla f(x) \right\|_2^2 \right]^{1/2} }

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  = - P^{-1} \nabla f(x) / \left[ ( P^{-1/2} \nabla f(x) )^T ( P^{-1/2} \nabla f(x) ) \right]^{1/2} }

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  = - P^{-1} \nabla f(x) / \left[ \nabla f(x)^T P^{-1/2} P^{-1/2} \nabla f(x) \right]^{1/2} \;\;\; \because (P^{-1/2})^T = P^{-1/2} }

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  = - P^{-1} \nabla f(x) / \left[ \nabla f(x)^T P^{-1} \nabla f(x) \right]^{1/2} }

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  = - \left[ \nabla f(x)^T P^{-1} \nabla f(x) \right]^{-1/2} P^{-1} \nabla f(x) }


(2.2.2){\displaystyle \;\;\; \Delta x_\mathrm{sd} = \left\| \nabla f(x) \right\|_{*} \Delta x_\mathrm{nsd} \;\;\;\;\;\; \because } (1.1.4)

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  =  \left\| P^{-1/2} \nabla f(x) \right\|_{2} \Delta x_\mathrm{nsd} \;\;\; \because \forall x \in \mathbb{R}^n, \ \left\| x \right\|_{*} = \left\| P^{-1/2} x \right\|_{2} }

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  =  - P^{-1} \nabla f(x)  \;\;\;\;\;\;\;\;\; \because } (2.2.1)


二次ノルムの意味での正規化された最急降下方向 {\displaystyle \Delta x_\mathrm{nsd} } の概念を図示すると以下です.


f:id:seetheworld1992:20201127190634p:plain


次に,二次ノルムの意味での最急降下方向 {\displaystyle \Delta x_\mathrm{sd} } を,座標変換を行った後の凸最適化問題に対する勾配降下法による探索方向と解釈する場合について考えます.以下の座標変換を考えます.{\displaystyle u,\bar{u} \in \mathbb{R}^n } です.

(2.2.3){\displaystyle \;\;\; \bar{u} =  P^{1/2} u }

元の座標系における点 {\displaystyle u } の二次ノルムは座標変換後の座標系における点 {\displaystyle \bar{u} }ユークリッドノルムに一致します.

(2.2.4){\displaystyle \;\;\;  \left\| u \right\|_P = \left\| P^{1/2} u \right\|_2  }

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  = \left\| \bar{u} \right\|_2 \;\;\; \because } (2.2.3)

この座標変換(2.2.3)を用いる,元の凸最適化問題と等価な凸最適化問題を考えると,その問題を解くことにより,元の問題を解くことができます.そのために関数 {\displaystyle \bar{f} : \mathbb{R}^n \to \mathbb{R} } を以下で定義します.

(2.2.5){\displaystyle \;\;\; \bar{f} ( \bar{u} ) =  f ( P^{-1/2} \bar{u} ) }

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  =  f ( u ) \;\;\; \because } (2.2.3)

{\displaystyle \bar{f} } に勾配降下法(冒頭の過去記事(制約なし凸最適化問題に対する勾配降下法)(1.1.1))を適用するとき,点 {\displaystyle \bar{x} } (元の座標系における点 {\displaystyle x = P^{-1/2} \bar{x} } に対応します) における探索方向は以下です.元の凸最適化問題の探索方向も得ます.

(2.2.6){\displaystyle \;\;\; \Delta \bar{x} = - \nabla \bar{f} ( \bar{x} )  }

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  = - \left( P^{-1/2} \right)^T \nabla f ( P^{-1/2} \bar{x} ) \;\;\; \because } 連鎖律(文献[7])

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  = - P^{-1/2} \nabla f ( P^{-1/2} \bar{x} ) \;\;\; \because P^T = P }

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  = - P^{-1/2} \nabla f(x) }


(2.2.7){\displaystyle \;\;\; \Delta x = P^{-1/2} \Delta \bar{x}  \;\;\; \because } (2.2.3)

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  =  P^{-1/2} \left[ - P^{-1/2} \nabla f(x) \right]  \;\;\; \because } (2.2.6)

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  =  - P^{-1} \nabla f(x) }

この {\displaystyle \Delta x } は(2.2.2)に一致します.いいかえると,二次ノルム {\displaystyle \left\| \cdot \right\|_P } の意味での最急降下法は,座標変換 {\displaystyle \bar{x} = P^{1/2} x } を行った凸最適化問題に対する勾配降下法(を元の座標系から見たもの)として考えることができます.


[ 2.3. {\displaystyle l_1 } ノルム ]

ノルム {\displaystyle \left\| \cdot \right\| } として {\displaystyle l_1 } ノルム(文献[4]にあります) {\displaystyle \left\| \cdot \right\|_1 } を選択すると,双対ノルム {\displaystyle \left\| \cdot \right\|_{*} = \left\| \cdot \right\|_{\infty} } です(文献[3][4]にあります).以下のような {\displaystyle i } を定義します.{\displaystyle ( \cdot )_j } はベクトルの第 {\displaystyle j } 要素です.

(2.3.0){\displaystyle \;\;\; i = \{ j \in \{ 1,2,\ldots,n \} \ | \ \left\| \nabla f(x) \right\|_\infty = | ( \nabla f(x) )_j | \} }


このとき以下を得ます.{\displaystyle e_j } は標準基底です(文献[5]にあります).

(2.3.1){\displaystyle \;\;\; \Delta x_\mathrm{nsd} = \mathrm{arg \ min}_{ \{ v \ : \ \left\| v \right\|_1 = 1 \} } \ \langle \nabla f(x), v \rangle }

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  = \mathrm{arg \ min}_{ \{ v \ : \ \sum_{j=1}^n | v_j | = 1 \} } \ \langle \nabla f(x), v \rangle }

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  = - \mathrm{ sgn } \left[ ( \nabla f(x) )_i \right]  e_i }

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  = - \mathrm{ sgn } \left( \frac{\partial f(x)}{\partial x_i} \right)  e_i }


(2.3.2){\displaystyle \;\;\; \Delta x_\mathrm{sd} = \left\| \nabla f(x) \right\|_{*} \Delta x_\mathrm{nsd} \;\;\; \because } (1.1.4)

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  = \left\| \nabla f(x) \right\|_{\infty} \Delta x_\mathrm{nsd} }

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  = \max \left\{  \left| \frac{\partial f(x)}{\partial x_1} \right| , \ldots , \left| \frac{\partial f(x)}{\partial x_n} \right| \right\} \ \Delta x_\mathrm{nsd} }

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  = \left| \frac{\partial f(x)}{\partial x_i} \right| \Delta x_\mathrm{nsd} \;\;\;\;\;\;\;\;\; \because } (2.3.0)

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  = - \left| \frac{\partial f(x)}{\partial x_i} \right| \ \mathrm{ sgn } \left( \frac{\partial f(x)}{\partial x_i} \right)  e_i \;\;\; \because } (2.3.1)

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  = - \frac{\partial f(x)}{\partial x_i}  e_i, \;\;\;\;\;\; i = \left\{ j \in \{ 1,2,\ldots,n \} \ | \ \left\| \nabla f(x) \right\|_\infty =  \left| \frac{\partial f(x)}{\partial x_i} \right| \right\} }

このように,{\displaystyle l_1 } ノルムの意味での最急降下法は常に標準基底(あるいは負の標準基底)を選択するものです.それは {\displaystyle f } の近似的な変化すなわち(1.1.1)右辺第二項 {\displaystyle \nabla f(x)^T v } を最小化する座標軸の方向を意味します.

{\displaystyle l_1 } ノルムの意味での正規化された最急降下方向 {\displaystyle \Delta x_\mathrm{nsd} } の概念を図示すると以下です.

f:id:seetheworld1992:20201129192112p:plain


{\displaystyle l_1 } ノルムの意味での最急降下法は自然な解釈を持ちます: 各反復において {\displaystyle \nabla f(x) } の要素の中で絶対値が最大となるものを選択し,その {\displaystyle (\nabla f(x))_i } の符号にしたがって {\displaystyle x_i } を増加あるいは減少させます.このアルゴリズムは各反復において {\displaystyle x } の一つの要素のみ更新するので,座標降下法(coordinate descent algorithm)といいます.これは厳密直線探索を非常に簡単にすることができます.



[ 3. 考察 ]

[ 3.1. 収束解析 ]

目的関数に強凸性を仮定し,最急降下法とバックトラッキング直線探索を用いるとします.この設定の下,任意のノルム {\displaystyle \left\| \cdot \right\| } の意味での収束について調べていきます.勾配降下法(冒頭の過去記事(制約なし凸最適化問題に対する勾配降下法)にあります)の収束解析の拡張になっています.

ノルムの同値性(equivalence of norms)を用います(文献[4]にあります).有限次元ノルム空間において任意のノルムは互いに同値なので,{\displaystyle \mathbb{R}^n } 上の任意のノルムはユークリッドノルムで抑えられます.したがって以下を得ます.

(3.1.1.a){\displaystyle \;\;\; \exists \gamma \in (0, 1 ], \;\;\; \gamma \left\| x \right\|_2 \le \left\| x \right\| }

(3.1.1.b){\displaystyle \;\;\; \exists \tilde{\gamma} \in (0, 1 ], \;\;\; \tilde{\gamma} \left\| x \right\|_2 \le \left\| x \right\|_* }

目的関数 {\displaystyle f } は劣位集合(冒頭の過去記事(制約なし凸最適化問題の目的関数)(0.2.1)にあります) {\displaystyle S } 上で強凸(strongly convex)であると仮定します.強凸性を仮定することにより得られる不等式である冒頭の過去記事(制約なし凸最適化問題の目的関数)(1.2.2)で,{\displaystyle y = x + t \Delta x_\mathrm{sd} } として以下を得ます.

(3.1.2){\displaystyle \;\; f(y) \le f(x) + \nabla f(x)^T (y - x) + \frac{M}{2} \left\| y - x \right\|_2^2 }

{\displaystyle \;\;\; \Rightarrow \ f(x + t \Delta x_\mathrm{sd}) \le f(x) + \nabla f(x)^T \left( t \Delta x_\mathrm{sd} \right) + \frac{M}{2} \left\| t \Delta x_\mathrm{sd} \right\|_2^2 }

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; = f(x) + t \nabla f(x)^T \Delta x_\mathrm{sd} + \frac{M t^2 }{2} \left\| \Delta x_\mathrm{sd} \right\|_2^2 }

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; = f(x) - t \left\| \nabla f(x) \right\|_{*}^2 + \frac{M t^2 }{2} \left\| \Delta x_\mathrm{sd} \right\|_2^2 \;\;\; \because } (1.1.5)

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; \le f(x) - t \left\| \nabla f(x) \right\|_{*}^2 + \frac{M t^2 }{2} \left[ \frac{1}{\gamma} \left\| \Delta x_\mathrm{sd} \right\| \right]^2 \;\;\; \because } (3.1.1.a)

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; = f(x) - t \left\| \nabla f(x) \right\|_{*}^2 + \frac{M t^2 }{2} \left[ \frac{1}{\gamma} \left\| \left\| \nabla f(x) \right\|_{*} \Delta x_\mathrm{nsd} \right\| \right]^2 \;\;\; \because } (1.1.4)

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; = f(x) - t \left\| \nabla f(x) \right\|_{*}^2 + \frac{M t^2 }{2} \left[ \frac{1}{\gamma} \left\| \nabla f(x) \right\|_{*} \left\| \Delta x_\mathrm{nsd} \right\| \right]^2 }

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; = f(x) - t \left\| \nabla f(x) \right\|_{*}^2 + \frac{ M t^2 }{2} \left[ \frac{1}{\gamma} \left\| \nabla f(x) \right\|_{*} \right]^2 \;\;\; \because } (1.1.2)

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; = f(x) - t \left\| \nabla f(x) \right\|_{*}^2 + \frac{ M }{2 \gamma^2 } t^2  \left\| \nabla f(x) \right\|_{*}^2 \;\;\;\;\;\; } (3.1.2)(※)

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; = \frac{M}{ 2 \gamma^2 } \left\|  \nabla f(x) \right\|_*^2 \left( t - \frac{\gamma^2}{M} \right)^2 + f(x) - \frac{\gamma^2}{2M} \left\|  \nabla f(x) \right\|_*^2 \;\;\;\;\;\; } (3.1.2)(※※)
{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; \because } 冒頭の過去記事(制約なし凸最適化問題に対する勾配降下法)(2.1.3)と同様の式変形

この(3.1.2)(※)は,冒頭の過去記事(制約なし凸最適化問題に対する勾配降下法)(2.1.3)(※)の {\displaystyle  \left\| \cdot \right\|_2 }{\displaystyle  \left\| \cdot \right\|_* } で,また {\displaystyle M }{\displaystyle  M / \gamma^2 } でおきかえたものです.したがって,ここから先は,冒頭の過去記事(制約なし凸最適化問題に対する勾配降下法)(2.3.1)以降の議論と同様に考えることができます.冒頭の過去記事(制約なし凸最適化問題に対する勾配降下法)(2.3.7)の {\displaystyle  \left\| \cdot \right\|_2 }{\displaystyle  \left\| \cdot \right\|_* } で,また {\displaystyle M }{\displaystyle  M / \gamma^2 } でおきかえると以下を得ます.

(3.1.3){\displaystyle \;\;\; f(x^{+}) = f( x + t \Delta x_\mathrm{sd} ) }

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; \le f(x) - \min \{ \alpha , \beta \gamma^2 \alpha / M \}  \left\| \nabla f(x) \right\|_*^2 }

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; = f(x) - \alpha \min \{ 1 , \beta \gamma^2 / M \}  \left\| \nabla f(x) \right\|_*^2 }

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; \le f(x) - \alpha \min \{ 1 , \beta \gamma^2 / M \} \ \tilde{\gamma}^2 \left\| \nabla f(x) \right\|_2^2 \;\;\; \because } (3.1.1.b)

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; = f(x) - \alpha \tilde{\gamma}^2 \min \{ 1 , \beta \gamma^2 / M \} \left\| \nabla f(x) \right\|_2^2 }


{\displaystyle \;\;\; \Leftrightarrow \ f(x^{+}) - p^* \le f(x) - p^* - \alpha \tilde{\gamma}^2 \min \{ 1 , \beta \gamma^2 / M \} \left\| \nabla f(x) \right\|_2^2 }

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  \le f(x) - p^* - \alpha \tilde{\gamma}^2 \min \{ 1 , \beta \gamma^2 / M \} \left[ 2m(f(x)-p^*) \right] }
{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; \because } 冒頭の過去記事(制約なし凸最適化問題の目的関数)(1.1.5)

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  = f(x) - p^* - 2 m \alpha \tilde{\gamma}^2 \min \{ 1 , \beta \gamma^2 / M \} (f(x)-p^*) }

{\displaystyle \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  = (1 - 2 m \alpha \tilde{\gamma}^2 \min \{ 1 , \beta \gamma^2 / M \} )(f(x) - p^*) }

以下を定義します.

(3.1.4){\displaystyle \;\;\; c = 1 - 2 m \alpha \tilde{\gamma}^2 \min \{ 1 , \beta \gamma^2 / M \} \; ( \lt 1 ) }

したがって冒頭の過去記事(制約なし凸最適化問題に対する勾配降下法)(2.2.4)(※)あるいは同記事(2.3.9)とほぼ同じ以下を得ます.これは勾配降下法と同様に一次収束です.

(3.1.5){\displaystyle \;\;\; f(x^{(k)}) - p^* = c^k ( f(x^{(0)}) - p^* )   }

{\displaystyle \;\;\;\;\; \Rightarrow \;\;\; \lim_{k \to \infty} f(x^{(k)}) = p^* }


[ 3.2. 二次ノルムと座標変換 ]

最急降下法のノルム選択は収束の速さに大きな影響を与えます.簡単のため,最急降下法のノルムに {\displaystyle P }-二次ノルムを選択した場合について考えます.本記事[ 2.2. 二次ノルム ]で示したように,この場合の最急降下法は座標変換(2.2.3)を行った座標系における最適化問題に勾配降下法を適用した場合と等価です.冒頭の過去記事(制約なし凸最適化問題に対する勾配降下法)にあるように,勾配降下法は劣位集合(あるいは最適点の付近のヘッセ行列)の条件数が適度であれば上手くいき,大きければ上手くいきません.したがって,座標変換 {\displaystyle \bar{x} =  P^{1/2} x } を行った後の劣位集合の条件数が適度であれば最急降下法は上手くいきます.

ここまでの考察は行列 {\displaystyle P } の選択の方針を与えます: {\displaystyle P } は座標変換を行った後の劣位集合の条件数が適切になるように選択すべきです.{\displaystyle \bar{f} } のヘッセ行列は以下です.

(3.2.1){\displaystyle  \;\;\; \nabla^2 \bar{f}(\bar{x}) = \left( P^{-1/2} \right)^T \nabla^2 f( P^{-1/2} \bar{x} ) P^{-1/2} \;\;\; \because } 連鎖律(文献[7])

{\displaystyle  \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  = P^{-1/2} \ \nabla^2 f( P^{-1/2} \bar{x} ) P^{-1/2}  \;\;\; \because P^T = P }

{\displaystyle  \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  = P^{-1/2} \ \nabla^2 f(x) \ P^{-1/2} }

たとえば最適点 {\displaystyle x^* } における {\displaystyle f } のヘッセ行列 {\displaystyle \nabla^2 f(x^*) } の近似 {\displaystyle \hat{H} } を既知とするとき,非常に良い {\displaystyle P } の選択は {\displaystyle P = \hat{H} } です. このとき {\displaystyle \bar{f} } のヘッセ行列は最適点 {\displaystyle \bar{x}^* = P^{1/2} x^* } に近い範囲では単位行列 {\displaystyle I } となり,したがって条件数は {\displaystyle 1 } です.{\displaystyle \bar{x}^* } に近い範囲では劣位集合が点 {\displaystyle \bar{x}^* } を中心とする球で近似できることを意味します.

(3.2.2){\displaystyle  \;\;\; \nabla^2 \bar{f}(\bar{x}^*) = P^{-1/2} \nabla f(x^*) P^{-1/2} }

{\displaystyle  \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  = \hat{H}^{-1/2} \nabla f(x^*) \hat{H}^{-1/2} }

{\displaystyle  \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;  \approx I }

座標変換を用いずに同じことがいえます.座標変換 {\displaystyle \bar{x} =  P^{1/2} x } を行った後の劣位集合の条件数が小さいことは以下の楕円 {\displaystyle \mathcal{E} } が座標変換を行う前の劣位集合の形のよい近似になっていることと等価です.(いいかえると,この楕円に適切なスケーリングと平行移動を行うと座標変換を行う前の劣位集合のよい近似になっています.)(この楕円を座標変換すると球に近いです.)

(3.2.3){\displaystyle \;\;\; \mathcal{E} = \{ x \; | \; x^T P x \leq 1 \} }

まとめると,座標変換後の問題が適度な条件数となるように {\displaystyle P } を選択する場合に二次ノルムの意味での最急降下法は上手くいきます.

=================================================================================

以上,制約なし凸最適化問題に対する最急降下法と,ノルム選択,目的関数に強凸性を仮定するときの収束解析をまとめました.



参考文献
[1] Boyd, S., and Vandenberghe, L. (2004), Convex Optimization, Cambridge University Press.
[2] Wikipedia Taylor's theorem のページ https://en.wikipedia.org/wiki/Taylor%27s_theorem
[3] Wikipedia Dual norm のページ https://en.wikipedia.org/wiki/Dual_norm
[4] Wikipedia Norm (mathematics) のページ https://en.wikipedia.org/wiki/Norm_(mathematics)
[5] Wikipedia Standard basis のページ https://en.wikipedia.org/wiki/Standard_basis
[6] Mathematics Stack Exchange https://math.stackexchange.com/questions/3260055/steepest-descent-for-the-quadratic-norm
[7] Stanford University Stephen Boyd先生のノート http://210.43.0.57/moocresource/data/20100601/U/stanford201001009/review7_single.pdf