4. 直線探索法
2020/1/6公開
Last updated
2020/1/6公開
Last updated
直線探索法(line search method)は、現在の点からにより方向が定められたを媒介変数とする直線を探索直線として、目的関数の探索直線上における極値への更新を繰り返すことで最適解へ近づいていく手法の総称である。探索方向に目的関数の勾配の情報を用いる場合は勾配法(gradient descent)ともいう。
すなわち、アルゴリズムとしてはまず現在の点から更新方向を定め、次に
を満たすを見つけてとおき、
と更新することを繰り返すことになる。このを更新のステップサイズ(step size)という。
現実問題として (4.1) 式を満たすを見つけること自体もに関する最適化問題になっているので、(4.1) 式を満たすを見つけるのは難しい場合がある。たとえば目的関数を評価するのに時間がかかるような問題では厳密にを求めるのは困難である。
ステップサイズを厳密に求める直線探索法を厳密直線探索法という。厳密直線探索法には
黄金分割探索法
セカント法(割線法)
などがある。
によって探索方向を定義するが、一般に
実際、理論的にもステップサイズはあとで解説する Armijo 条件や Wolfe 条件を満たしていれば収束が保証される場合が多い。Armijo 条件を満たす点を探すには
バックトラック法(backtracking)
がある。
探索方向に勾配を利用すると、勾配は最適解の付近ではそのノルムが 0 に近づくという性質があるから、実用上は
ステップサイズを小さい定数にする
ステップサイズを単調減少させる
といった方法でも十分であり、これらの手法もよく用いられる。
しかしその一方で、ステップサイズを
といった問題が常につきまとうのも事実であり、ステップサイズのチューニングに時間がかかることもある。
ステップサイズの決定は最適化アルゴリズムの実行時間や収束にクリティカルに影響する重要なパラメータだが、大抵の場合は人間が調整するハイパーパラメータとして扱われ、勘、経験、試行錯誤に頼って決められる。ステップサイズを決定するための方法論は現代においても未熟である。
しかし、適当なを選んで点を考えたとき、点における探索方向は一般にとは一致しない。たとえば最急降下法では
である。つまり (4.1) 式を満たすを探す間にも探索すべき方向は刻一刻と変化するから、実用上はステップサイズを厳密に求めてもあまり意味がない。
小さすぎる定数にする収束するまでに非常に時間がかかる
大きすぎる定数にするアルゴリズムが発散/振動する
単調減少のスケジュールがうまくない収束までに時間がかかったり発散/振動したりする