共役勾配法 (conjugate gradient method)

最急勾配法と同様の,関数の極小(大)値を求める方法. 最急勾配法では,最適な点に向かって直線的に向かわず,ジグザグに向かうので収束が遅い.そこで,今まで進んできた方向も考慮して,最適な点に向かって進むように工夫している.

次の2次形式の関数を考える \[f(\mathbf{x})=\frac{1}{2}\mathbf{x}^\top A\mathbf{x}-\mathbf{b}^\top\mathbf{x}\] 適当な初期値 \(\mathbf{x}_0\) をきめ,\(\mathbf{d}_0=-\nabla f(\mathbf{x}_0)\) とし,\(\nabla f(\mathbf{x}_n)=0\) となるまで次のステップを反復して極小値を求める.

  • 探索方向の更新 \[\mathbf{d}_n=-\nabla f(\mathbf{x}_n)+\frac{(\nabla f(\mathbf{x}_n))^\top\nabla f(\mathbf{x}_n)}{(\nabla f(\mathbf{x}_{n-1}))^\top\nabla f(\mathbf{x}_{n-1})}\mathbf{d}_{n-1}\]
  • \(t_n\) を次式で求め \(\mathbf{x}_{n+1}=\mathbf{x}_n+t_n\mathbf{d}_n\)に更新. \(n\) を一つ増やす. \[t_n=-\frac{\mathbf{d}_n^\top\nabla f(\mathbf{x}_n)}{\mathbf{d}_n^\top A\mathbf{d}_n}\]

-- しましま

目的関数が2次関数のときは n ステップで終了する(n は次元数).--あかほ

関連項目

リンク集

関連文献


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-02-11 (木) 16:12:40 (2487d)