1. 定義と概要
局所最適解(local optimum、local minimum)とは、ある関数において、その点の近傍(周辺の限られた範囲)だけを見れば最も小さい値を取るが、定義域全体で見ると最小ではない解です。誤差関数(損失関数。予測値と正解値のズレの大きさを数値で表す関数)を谷がいくつもある地形にたとえると、局所最適解は浅い谷にあたり、真に最も深い谷にあたるのが大域最適解です。
局所最適解は、パラメータ(モデル内部で学習によって調整される数値)を動かす方向と大きさを示す勾配(傾き。誤差関数の傾きを表す量)がゼロになる停留点(勾配がゼロになる点の総称で、極大点・極小点・鞍点をまとめて含む上位の概念)の一種でもあります。
勾配降下法(誤差関数の傾きを使ってパラメータを少しずつ更新していく手法)は、現在地から見て最も傾きが急な方向へ少しずつ進む手法であり、局所的な傾きの情報だけを頼りに更新方向を決めます。ニューラルネットワークのパラメータ空間は次元数が非常に多く、誤差関数がつくる立体的な地形は誤差曲面(パラメータの値と誤差の関係を立体的な地形として表したイメージ)と呼ばれます。この誤差曲面は、谷や丘が複雑に入り組んだ非凸関数(グラフに複数の谷や丘があり、単一の谷だけでは表せない複雑な形の関数)の形になりやすくなっています。
この非凸な地形の浅い谷に一度落ち込むと、そこから抜け出すための上り坂を勾配の情報だけでは検知できず、あたかもそこが最良の解であるかのように学習が止まってしまいます。一方、損失関数が凸関数(どの2点を結んでも直線がグラフより下にならない、谷が一つだけの関数)である場合は、局所最適解は必ず大域最適解と一致し、線形回帰の二乗誤差などではこの問題は原理的に起きません。
2. 試験対策ポイント
試験では、局所最適解の定義と、勾配降下法が局所的な傾きの情報しか持たないためにここへ落ち込むと抜け出せなくなるメカニズムが重要な論点です。損失関数が凸関数であれば局所最適解は大域最適解と一致して問題が起きない一方、ニューラルネットワークの誤差関数は一般に非凸であるため複数の局所最適解を持ちうるという対比も、あわせて整理しておきたいところです。局所最適解が生じるかどうかは誤差関数の形状そのものに左右され、線形回帰の二乗誤差のように誤差関数が単純な形をしている手法では起こりにくい問題です。
局所最適解から抜け出す工夫としては、代表的な4つの手法があります。それぞれがどのように働くかを並べると、次のとおりです。
| 抜け出す工夫 | 局所最適解に対する働き |
|---|---|
| 確率的勾配降下法(SGD。ミニバッチと呼ばれる学習データの一部ごとに勾配を計算するため、更新方向に細かなばらつきが生じる勾配降下法の一種) | そのばらつきによって浅い谷を乗り越えられることがある |
| モーメンタム法(過去の勾配の移動方向を蓄積し、慣性のように反映させてパラメータを更新する手法) | 慣性のような働きで浅い谷への嵌り込みを避ける |
| 学習率(パラメータ更新1回あたりの歩幅を決める値)の調整 | 歩幅を見直すことで浅い谷への嵌り込みを避ける |
| 初期値(学習開始時にパラメータへ与える最初の値)を変えた複数回の学習 | 複数回学習したうえで、最も誤差の小さい結果を採用する |
これら4つの工夫は、局所最適解から抜け出すための代表的な手段として整理しておきたい論点です。各手法の内部的な計算のしくみは、別の記事のテーマとして扱っています。
局所最適解と鞍点は、どちらも勾配がほぼゼロになるため学習が停滞する点として取り違えやすい論点です。局所最適解はどの方向へ動いても値が悪化する点であるのに対し、鞍点はある方向では値が下がり別の方向では上がる点です。見た目にはどちらも学習が停滞する場面として現れるため、パラメータ更新のグラフだけでは区別が難しい点です。
3. 関連概念との比較・相違点
大域最適解との最大の違いは、見ている範囲の広さです。局所最適解はその周辺の範囲だけで見た最小、いわば浅い谷であるのに対し、大域最適解は定義域全体で見た正真正銘の最小、最も深い谷にあたります。損失関数が凸関数であれば、この浅い谷と深い谷は一致し、局所最適解と大域最適解は同じ解を指します。この違いを取り違えると、局所的に誤差が下がらなくなった時点を、そのまま最終結果と誤認する恐れがあります。
鞍点との最大の違いは、勾配がゼロに近い地点でも、動く方向によって坂の向きが変わるかどうかです。局所最適解ではどちらへ進んでも誤差が悪化しますが、鞍点では進む方向次第で誤差が下がる余地が残っています。両者は、誤差の変化がほとんど無くなり学習が止まって見える点で共通しています。
3つの概念を並べると、次のように整理できます。
| 概念 | どのような点か | 学習との関係 |
|---|---|---|
| 局所最適解 | 周辺の範囲だけで見た最小、いわば浅い谷 | どちらへ進んでも誤差が悪化し、学習が止まって見える |
| 大域最適解 | 定義域全体で見た正真正銘の最小、最も深い谷 | 損失関数が凸関数であれば局所最適解と一致する |
| 鞍点 | ある方向では下り坂、別の方向では上り坂になる点 | 進む方向次第で誤差が下がる余地が残っている |
ただし、パラメータの数が非常に多い高次元の空間では、あらゆる方向で悪化する真の局所最適解よりも、下る余地が残る鞍点のほうが多く存在すると考えられており、学習停滞の主因として近年重視されています。学習曲線の傾きだけを見て局所最適解と決めつけると、実際には鞍点を通過している途中である可能性を見落とすことになります。発生条件や見分け方といった詳しい内容は、鞍点をテーマにした記事で扱っています。
4. ビジネス・実務での活用シナリオ
モデル開発の実務では、初期値を変えて学習を複数回実行し、得られた複数の局所最適解のうち最も誤差の小さいモデルを採用する運用が広く行われています。1回の学習結果だけでモデルの性能を判断すると、たまたま浅い谷に落ち着いた結果を最終評価にしてしまう恐れがあるため、複数回の試行を比較する工程が欠かせません。
深層学習フレームワークでの最適化手法の選定でも、局所最適解は無視できない存在です。モーメンタム法の発想を取り入れたAdamなどの最適化アルゴリズムが既定の設定として採用されることが多く、局所最適解や鞍点の付近で学習が停滞しにくくなるため、モデル開発にかかる時間そのものの短縮につながり、開発現場の生産性に直結します。
物流・生産スケジューリングの最適化でも、局所最適解は避けて通れない課題です。配送ルートや生産計画を数理最適化やAIで求める際、目的関数が複雑な非凸の形になりやすく、一度求めた解が局所最適解に留まっているだけという可能性が残ります。そのため、複数の初期解から探索を行い、得られた解同士を比較しながらより良い計画を選び出す運用が取られています。
5. 要点まとめ
- 局所最適解とは、その周辺だけを見れば最小だが関数全体で見ると最小ではない解を指し、損失関数が凸関数であれば大域最適解と一致します。
- 勾配降下法は局所的な傾きの情報だけを頼りに更新するため、浅い谷である局所最適解に一度嵌ると抜け出す上り坂を検知できず学習が停止します。
- 抜け出す工夫としてSGDのノイズ・モーメンタム法・学習率の調整・初期値を変えた複数回の学習が挙げられ、鞍点は下がる方向が残る点として区別されます。
6. 確認問題
問1局所最適解とは、ある点の周辺の範囲だけを見れば最も小さい値を取るが、関数全体で見ると最小ではない解を指す。
解答・解説をみる
○ 正しい
定義どおりの内容です。関数全体で見た正真正銘の最小は大域最適解と呼ばれ、局所最適解とは区別されます。
問2損失関数が凸関数である場合、局所最適解は大域最適解と必ず一致する。
解答・解説をみる
○ 正しい
凸関数は谷を一つしか持たないため、局所的に最小であることがそのまま定義域全体で最小であることを意味します。線形回帰の二乗誤差などがこれにあたります。
問3局所最適解と鞍点はどちらも勾配がほぼゼロになる点であり、どの方向に動いても必ず値が悪化するという共通の性質を持つ。
解答・解説をみる
× 誤り
正しくは、局所最適解はどの方向に動いても値が悪化する点であるのに対し、鞍点はある方向では下がり別の方向では上がる点であり、両者の性質は異なります。高次元の空間では、鞍点のほうが学習停滞の主因として近年重視されています。

