この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方)
出典検索?: "直線探索"
直線探索(ちょくせんたんさく、英: line search)は、連続最適化問題において、目的関数 f : R n → R {\displaystyle f:\mathbb {R} ^{n}\to \mathbb {R} } の極小値 x ∗ {\displaystyle \mathbf {x} ^{*}} を求めるための2つの基本的な反復的アプローチのうちの一つである。もう一つの基本的な反復的アプローチの方法は信頼領域である。
直線探索のアプローチでは、最初に目的関数 f {\displaystyle f} の値が小さくなる降下方向を求め、次に、その方向に x {\displaystyle \mathbf {x} } をどのくらい動かすかを表すステップサイズを計算する。そのステップサイズを用いて、解を求める方法として、最急降下法、ニュートン法、準ニュートン法など、数多く存在する。ステップサイズは厳密に求める方法と近似的に求める方法がある。 次の勾配法の例は、第4ステップで直線探索を用いている。 第4ステップにおいては、 h ′ ( α k ) = 0 {\displaystyle h'(\alpha _{k})=0} を解いて h の厳密な最小値を求める方法と、十分な減少が得られればよいとして大まかに最小化する方法がある。前者の例としては共役勾配法がある。後者は数多くの方法があるが、例えばバックトラック法やWolfe条件
直線探索の主な使用例
反復カウンターを k = 0 {\displaystyle \displaystyle k=0} とする。最小値の初期推定値を x 0 {\displaystyle \mathbf {x} _{0}} とする。
以下を反復する:
降下方向 p k {\displaystyle \mathbf {p} _{k}} を計算する。
h ( α ) = f ( x k + α p k ) {\displaystyle h(\alpha )=f(\mathbf {x} _{k}+\alpha \mathbf {p} _{k})} を α ∈ R + {\displaystyle \alpha \in \mathbb {R} _{+}} 上で最小化するような α k {\displaystyle \displaystyle \alpha _{k}} を決定する。
x k + 1 = x k + α k p k {\displaystyle \mathbf {x} _{k+1}=\mathbf {x} _{k}+\alpha _{k}\mathbf {p} _{k}} 、 k = k + 1 {\displaystyle \displaystyle k=k+1} と更新する。
‖ ∇ f ( x k ) ‖ {\displaystyle \|\nabla f(\mathbf {x} _{k})\|} が十分小さくなるまで続ける。
他の最適化法と同様に、直線探索は局所最小値を脱出するために焼きなまし法と組み合わせることができる。 この方法では、最初に最小値を囲むような2点x1、x2を決めなければならない。次に、この区間を内点 x3、x4 で分割し、それぞれの点で f ( x ) {\displaystyle f(x)} を計算する。そして、x1、x2のうち、x3、x4で目的関数が大きい方に隣接しているものを除去する。これ以降のステップでは、各ステップで1つの内点のみを加えていけばよい。区間を分割する方法は数多くある[1]が、黄金分割探索は特にシンプルで効果的である。黄金分割探索では、区間の比率はどのステップでも一定である。 1 ϕ ( x 2 − x 1 ) = x 4 − x 1 = x 2 − x 3 = ϕ ( x 2 − x 4 ) = ϕ ( x 3 − x 1 ) = ϕ 2 ( x 4 − x 3 ) {\displaystyle {\frac {1}{\phi }}(x_{2}-x_{1})=x_{4}-x_{1}=x_{2}-x_{3}=\phi (x_{2}-x_{4})=\phi (x_{3}-x_{1})=\phi ^{2}(x_{4}-x_{3})} where ϕ = 1 2 ( 1 + 5 ) ≈ 1.618 {\displaystyle \phi ={\frac {1}{2}}(1+{\sqrt {5}})\approx 1.618}
アルゴリズム
直接探索法