本報告では,準ニュートン法の代表的な手法であるBFGS法について文献調査を行う.BFGS法は,Broyden,Fletcher,Goldfarb,Shanno の4人によって発表された手法であり,ニュートン法の問題点である「Hesse行列の計算に多くの計算量が必要」を解決するアルゴリズムである.
最適化の定義は「与えられた制約条件g(x)のもとで, ある目的関数f(x)を最小にするような設計変数を求めること」である.
また最適化問題は一般的に以下のように表される.
最適化問題は,その数学的性質から,連続最適化問題と離散最適化問題の2つに分けることができる.連続最適化問題とは探す値が連続的に分布している問題であり,離散最適化問題とは探す値が離散的に分布している問題である.また、連続最適化問題はさらに線形計画問題と非線形計画問題との2つに分けることができる.
最適化手法は,対象とする最適化問題の性質により,大きく以下のように分類される.
f(x) 及び gj(x) がすべて線形である場合.(シンプレックス法など)
f(x) または gj(x) に,非線形の式が含まれる場合.(制約なし:最急降下法,ニュートン法,準ニュートン法 制約あり:ペナルティ法,逐次2次計画法など)
x の値として,離散的な値だけをとるような式が含まれる場合.(欲張り法,分枝限定法など)
幅広い最適化問題に適用可能な方法である.(Simulated Annealing:SA,Genetic Algorithm:GA,Directed Heuristic Search:DHSなど)
少なくとも1回微分可能なn次元の非線形関数 f(x) があるとき式(2), x = xopt が最適解であるための必要条件は式(3)が成り立つことである.
∇f(x) は f(x) の勾配ベクトルであり, f(x) の等高面の法線ベクトルを与える. このベクトルの向きは関数の増加する方向になる.
最適解を求めるアルゴリズムは通常次の3つのステップで構成される.
ステップ3における次の探索点 xk+1 は, 現在の探索点 xk における目的関数値 f(xk) とその勾配によって決定される. 探索する向きを sk , その方向にそったステップ幅を α とすると, 式(4)のように表すことができる.
探索する方向 sk を決める方法は大きく3つある.
本報告では, 代表的なアルゴリズムである「最急降下法」と「ニュートン法」と「準ニュートン法」について述べる.
最急降下法では, xk+1を目的関数の勾配ベクトルを用いて決定する. 勾配ベクトルは目的関数値が最も大きくなる方向なので, 勾配ベクトルの逆向きに探索していけば良い. つまり探索の方向 sk は
となり, 次の探索点xk+1は
で求めることができる. ステップ幅αは正の定数にする.この方法の変形として,ステップ幅αを1次元最適化によって求める方法を,最適勾配法(optimul gradient method)という.
最急降下法の特徴は以下の通りである.
ニュートン法では各反復において,関数を xk でテイラー展開して得られる2次関数
が最小になる点を次の反復点 xk+1 とする. xk+1 を目的関数のHesse行列を用いて決定する. Hesse行列は f(x) の2回微分で,
となる.
ニュートン法における探索の方向 sk は
となり, 次の探索点xk+1は
で求めることができる.
ニュートン法の特徴は以下の通りである.
ニュートン法においてHesse行列を計算せずに, 勾配ベクトルを用いて近似的に逐次生成する方法である.主にBFGS法とDFP法がある.以下にBFGS法について詳しく説明する.
ニュートン法の欠点である,Hesse 行列の逆行列を計算しなければならない点を解決するために,勾配ベクトルを用いて,Hesse 行列の逆行列に収束するような行列の列を,逐次近似によって構成していく方法である.そのアルゴリズムは以下に示す通りである.
初期点 x(0) を与え,k = 0,H(0) = I (単位行列)とする.
∇f(x(k)) を計算し,‖∇f(x(k)) ‖ < ε ならば,計算を終了する.
次点を x(k+1) = x(k) - α(k) H(k) ∇f(x(k)) とすると,ステップ幅である α(k) を1次元探索[4.1節]で決める.α < ε ならば,計算を終了する.
Hesse行列 H(k+1) を計算する.ただし,s(k) ≡ x(k+1) - x(k), y(k) ≡ ∇f(x(k+1)) - ∇f(x(k)) とする.
BFGS法の特徴は以下の通りである.
αの1次元探索の方法はいくつか考えられるが,ここでは黄金分割法と2次多項式近似による方法を説明する.
区間 [a, b] の中に,f(x) が最小となる点が一つだけあるとする.黄金分割法では,最小点が存在する区間を徐々に狭めていくことによって,最小点を求めようとする方法である.
Fig 1の左図のように,区間内の1つの点の値を知っただけでは,区間 [a, c],区間 [c, b] のいずれに最小点があるのかを一般的に知ることは不可能である.
しかし,Fig 1の右図のように,区間内の2点における f(x) の値を知ることができれば,f(c) と f(d) の大小関係により,区間 [a, d],区間 [c, b] のいずれに最小点があるかを知ることが可能である.
黄金分割法では,Fig 2のように τ = (50.5 - 1) / 2 ≒ 0.618 を使用する.初期区間 [a(0), b(0)] を与えた後,収束条件(|b(k) - a(k)| < ε)が成立するまで,以下の手続きを繰り返す.
従って,区間の幅を一定の比率 τ で減少させることができる.
a1 > a2 > a3,かつ,f(a1) > f(a2) < f(a3) となる3点が与えられたとき,この3点を通る2次多項式 f(x) = ax2 + bx + c の係数は一意に決まる.また,この関数は, x = -b / 2a で,最小値をとる.2次多項式近似による方法は,この性質を利用して最小値を求めるものである.そのアルゴリズムは以下の通りである.
f(xk+1) > f(xk) で,かつ,k = 0 ならば,
そうでなければ, x と a2 の,関数値の小さい方を x0,δ0 = δ / 2,k = 0 として 2. へ戻る.
本報告では,BFGS法について文献調査を行った.BFGS法は準ニュートン法に分類される.ニュートン法は探索の方向ベクトルをHesse行列の逆行列を用いて決定しているため非常に計算量が多くなる.そこでBFGS公式でHesse行列の逆行列を近似して計算量を軽減した手法がBFGS法である.数理計画法の中でも重要な手法であることが分かった.
Copyright (C) 2006 Tomoyuki Hiroyasu, All rights reserved. Copyright (C) 2006 Mitsunori Miki, All rights reserved. Copyright (C) 2006 Noriaki Hosoe, All rights reserved. No part of this document may be reproduced, copied, distributed, transferred, modified, or transmitted, in any form or by any means, without the prior written permission of the authors. In no event shall the authors be liable for any damages caused in any way out of the use of this document.