はじめに
以下の最急降下法において、を固定するのではなく、ざっくり求めようというのが本記事の趣旨です。
直線探索法
関数 の最小化アルゴリズムにおいて、点 を 方向に更新することを考えます。
このとき、1変数関数 を扱うことになります。
を満たすとします。( の場合を考えればイメージしやすいと思います。)
目標は よりも十分小さな関数値 を求めることです。
そのための計算法を直線探索法といいます。
直線探索において、関数値が十分に減少したかを判定するための条件がいくつかあるので、紹介します。
アルミホ条件
として、
を満たすを選択します。
下図にイメージを記します。
ウルフ条件
アルミホ条件ではが非常に小さな値をとることもあります。
十分な大きさのステップ幅を保証するために、ウルフ条件ではアルミホ条件に加えて、
勾配がより十分にに近いことを要請します。
ここで、とします。
下図にイメージを記します。
強ウルフ条件
ウルフ条件では、の値が正の大きな値をとることがあります。
これを防ぐために、ウルフ条件のを
で置き換えた条件を用いることがあります。
ゴールドシュタイン条件
ウルフ条件とは別の基準で、が小さくなりすぎることを防ぎます。
ここで、とします。
バックトラッキング法
の探索法を工夫することで、が小さくなりすぎることを防ぐ事もできます。
を適当に決めて、アルミホ条件を満たすまで、徐々に小さくしていく手法です。
バックトラッキング法とは、直線探索法専用の言葉ではなく、
一般的な言葉であり「ある与えられた問題の解を求める際、候補となる解を列挙し、効率的・網羅的に正しい解を探索するアルゴリズム」という意味です。
初期化: アルミホ条件の定数、縮小率、初期値を設定する。
1. がアルミホ条件を満たすなら、をステップ幅として出力して停止する。
2. とする。ステップ1へ戻る。
直線探索を用いる反復法
初期化: 初期解を定める。とする。
1. 停止条件が満たされるなら、を数値解として出力して停止する。
2. 降下方向をに設定する。
3. 関数に対する直線探索により、ステップ幅を設定する。
4. と更新する。
5. とする。ステップ1に戻る。
※この「直線探索を用いる反復法」で探索方向をの場合を「最急降下法」と定義する本もあります。
偉人の名言
この世で重要なことのほとんどは、全く希望がないように見えたときでも挑戦し続けた人々によって成し遂げられてきた。
デール・カーネギー
参考文献
機械学習のための連続最適化 p55-p58
これなら分かる最適化数学
動画
なし