4.4.1. 原始的な共役勾配法
2020/1/8公開
Last updated
Was this helpful?
2020/1/8公開
Last updated
Was this helpful?
1. 初期値を定める(定め方は任意である)
2. 探索方向を
により定める。ただし
である(は未定義だが係数のが 0 なのでとなる)。
3. ステップサイズを定める。は通常の直線探索で決定してもよいが、
を用いてもよい。
4. 次の更新式を用いて現在の点を更新する
5. 収束していなければ手順 2 へ戻る
ニュートン法と同様に、2次近似した関数
であるから、
となることがわかる。そこで
の方向に更新することを考える。
とおける。これを (4.4.4) 式に代入すると
となるので
より
と求まる。
を用いる。
となることがわかる。ゆえに
が求まる。
共役勾配法は1次収束のアルゴリズムである。
共役勾配法の収束性は最急降下法と同じ1次収束であるが、経験的に最急降下法よりも早く収束することが知られている。
をで微分して
を得る。2次近似した関数の極値はを満たすので
となる。ここでを満たすを選んだとして、(4.4.3) 式の両辺でとの内積をとると、左辺は
まずを導出する。ステップサイズをとすると
次に共役勾配方向を求める。はと直交してさえいればよいので選び方には自由度があるが、ここでは古典的な
厳密直線探索を用いるととなることを示しておく。いま点を始点として方向への直線探索を考えると、媒介変数による関数
の極値を与えるを求めることになる。この関数の点における方向微分を考えると
である(方向微分を (4.4.10) 式の右辺の形に分解するには微分の連鎖律を用いる)。が極値をとるときのをとおくと
であるから、を選べば、(4.4.10), (4.4.11) 式より
となる。また、直線探索なのでだから、(4.4.12) 式と定数を用いて
となる。したがってとおけばとなることがわかるので共役勾配方向が得られたことになる。
残る未知数はステップサイズであるが、(4.4.8) 式、すなわちの正当性を保証しているのは厳密直線探索を行っていることであるから、(4.4.10), (4.4.11) 式のあたりの議論からとすればよいことがわかる。
を厳密に求めるのは難しいので、これをどう求めるかもアルゴリズムの構成の自由度となる。もっとも簡単な方法は目的関数を2次近似した極値へ到達するを求める方法で、 (4.4.3) 式に (4.4.6) 式を代入して
となることから、両辺でとの内積をとって
原始的な共役勾配法でも Hesse 行列の逆行列の計算は回避できるが、Hesse 行列自体はまだを求める際の更新式に現れている。現代では Hesse 行列自体の計算も回避するようなバリエーションが提案されており、それが次に解説するような PRP 法や HS 法である。