# 条件数 ## 定義 条件数(condition number)κとは、対称行列 A の最大固有値 $\lambda_n$ と最小固有値 $\lambda_1$ の比 $\kappa=\lambda_n/\lambda_1$ であり、勾配降下法による最適化の難しさを表す指標である。目的関数を2次関数 $f(\theta)=\frac12\theta^TA\theta-b^T\theta$(A は対称正則行列)に単純化して考えると、A の固有値分解 $A=Q\Sigma Q^T$ を通じて勾配降下法の収束を固有成分ごとに分解できる。各固有成分は更新のたびに $|1-\alpha\lambda_i|$ 倍だけ縮小し、最適な学習率のもとでの収束率は $\frac{\kappa-1}{\kappa+1}$ と表される。条件数はその定義(最大固有値を最小固有値で割る)より必ず1以上の値をとり、κ=1に近いほど目的関数の等高線は真円に近く勾配が常に最適解の方向を向くため1回の更新で最適解に到達できる。κが大きいほど等高線は細長く潰れた楕円になり、勾配降下法はジグザグに進み収束までの更新回数が急速に増える。(Source: [[@2022__Gihyo__ディープラーニングを支える技術〈2〉 - Chapter 1 ディープラーニングの最適化]] §1.3) [[勾配降下法]]にモーメンタム法を組み合わせると、同じ2次関数の解析で最適な収束率は $\frac{\sqrt\kappa-1}{\sqrt\kappa+1}$ となり、収束率が条件数κそのものではなくその平方根 $\sqrt\kappa$ に依存する形に改善される。たとえば $\kappa=100$ の場合、勾配降下法の収束率は $99/101\approx0.98$ だが、モーメンタム法では $9/11\approx0.82$ となり、勾配降下法の更新10回分に相当する収束をモーメンタム法は1回で達成する計算になる。実際のニューラルネットワークの学習で使われるモーメンタムの重み $\beta$ が0.9〜0.999というほぼ1に近い値であることは、目的関数の条件数が大きいことを示唆していると本書は述べる。(Source: [[@2022__Gihyo__ディープラーニングを支える技術〈2〉 - Chapter 1 ディープラーニングの最適化]] §1.3) ## 横断的知見 1ソース目のため、複数ソースの突き合わせによる横断的知見は今後の蓄積に委ねる。[[固有値分解]]・[[凸最適化]]は既に別ソースから理論的な性質を蓄積しており、条件数は「A が対称正定値行列の場合の2次形式の最適化」という具体的な場面でこれらの理論と接続する余地がある(固有値分解による対角化・勾配降下法の凸2次関数上での収束解析)。 ## 未解決の問い - 条件数κはニューラルネットワークの目的関数を局所的な2次近似で捉えた場合の指標だが、実際のニューラルネットワークの目的関数上で条件数がどのように変化していくか(学習の進行や層の深さに伴う推移)は本章の範囲外である。 - RMSProp・Adam のような次元ごとの学習率正規化は、条件数を改善する効果とどう関係するか。本章はモーメンタム法についてのみ条件数との関係を解析しており、学習率自動調整手法との理論的な対応関係は示していない。 - 条件数と[[正規化層]](バッチ正規化など)による「目的関数の傾きを抑える」効果との定量的な関係(正規化層が条件数を具体的にどの程度改善するか)は本章では扱われていない。 ## 関連 - source: [[@2022__Gihyo__ディープラーニングを支える技術〈2〉 - Chapter 1 ディープラーニングの最適化]] - concept: [[勾配降下法]] / [[固有値分解]] / [[凸最適化]] ## 出典 - 岡野原大輔, 『ディープラーニングを支える技術〈2〉 ニューラルネットワーク最大の謎』, 技術評論社, 2022, 第1章, §1.3.