座標降下法

提供: testwiki
2025年3月10日 (月) 07:31時点におけるimported>Oyyo37による版 (Coordinate descent, oldid=1248346351より翻訳)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

座標降下法(ざひょうこうかほう、テンプレート:Lang-en-short)とは、関数の極値を逐次座標方向に最小化して求める最適化アルゴリズムの一種。各反復において座標降下法は座標選択規則に従って座標あるいは座標ブロックを決定し、選択されていない座標や座標ブロックを固定したままその座標超平面上で厳密あるいは近似的に最小化する。座標方向に直線探索を行うことで現在の反復点における適切なステップサイズを求めることができる。座標降下法は微分可能・微分不可能な関数両者ともに適用できる解法である。

説明

座標降下法は各反復において一つの(あるいは少数の)変数の最適化問題を解くように、変数の各方向に順番に最小化することで多変数関数 F(𝐱) の最小化を行うアルゴリズムである[1]。最も単純な巡回座標降下の場合では、各反復ごとに順番に座標方向に沿って目的関数を最小化することを考える。始めに、以下の初期点から開始する:

𝐱0=(x10,,xn0),

k+1 番目の反復点 𝐱k+1 は点 𝐱k を用いて以下の最適化問題を解くことで求まる:

xik+1=argminyf(x1k+1,,xi1k+1,y,xi+1k,,xnk)[2]

ただし、変数 xi𝐱 の 1 から n までの添字 i に対応している。

すなわち、関数 F の極値を求めるため初期点 𝐱0 から開始し、点列 𝐱0,𝐱1,𝐱2, を求めていく。

各反復において直線探索を行うことで以下の性質が導かれる:

F(𝐱0)F(𝐱1)F(𝐱2).

この点列は最急降下法と同様に極値への収束性を持つことが知られている。直線探索による座標方向への探索が一通り巡回した後でも目的関数の改善がない場合は極値へ収束したとみなせる。

上記の手続きによる各反復は以下のように表される。

微分可能な場合

連続的微分可能関数 テンプレート:Mvar での座標降下法は以下の手続きを行うテンプレート:R:

テンプレート:枠の始まり

テンプレート:枠の終わり

ステップサイズの選択方法はいくつか知られており、厳密に テンプレート:Math の最小化問題を解く(変数 テンプレート:Mvar を固定した上で テンプレート:Mvar の最小化)、あるいは古典的な直線探索での選択基準に従った方法が挙げられるテンプレート:R

制限

座標降下法は二つの問題を抱えている。一つ目は目的関数が滑らかな関数でない場合である。下記の図では目的関数の等高線が滑らかでない場合について、座標降下法の各反復において停留点でない点が求まってしまう例を挙げている。最小化問題に対して座標降下法において現在の反復が点 テンプレート:Math であるとすると、次の探索方向として赤い矢印の方向に進むことが考えられるが、どちらの方向に進むことを考えても、この場合目的関数は増大してしまう。この場合座標方向に進まず、二つの探索方向を併せた方向に方向に進むことで目的関数は改善される。下記の図では最適解に収束しない例を紹介したが、ある条件の下では収束性を示すことができる[3]

二つ目の問題点として座標降下法の並列化が困難であることが挙げられる。座標降下法では各座標方向に順番に探索し、目的関数を改善することから、大規模な並列化は難しいとされる。近年の研究で座標降下法は各座標方向への目的関数の変化を緩和することによって大規模な並列化を可能にする手法が提案されている[4][5][6]

応用

座標降下法は単純な手続きで完結することから実用面においては人気のある解法となっているが、最適化理論に関する研究者の間ではより複雑な解法を注目することが多いことから、ほとんど研究されない解法となっているテンプレート:R。座標降下法の初期の応用例として、コンピュータ断層撮影の分野が挙げられ[7]、この応用において座標降下法による収束の速さが良いことが判明したことから[8]、臨床用のマルチスライスCTのヘリカルスキャン時に使用されるようになった [9]。巡回座標降下法はタンパク質構造予測の面でも使用されるようになった[10]。加えて、機械学習における大規模最適化問題に対する応用においても注目されるようになり、特にサポートベクターマシンの訓練時やテンプレート:仮リンクにおいて座標降下法を適用した際に、他の解法以上の優位性が示されている[11][12]。また勾配の計算が難しいような問題に対しても適用されている[13]

脚注

テンプレート:脚注ヘルプ テンプレート:Reflist

参考文献

関連項目

テンプレート:最適化アルゴリズム