論文一覧に戻る 📚 用語集トップ 🗺 概念マップ
📚 用語解説
📚 用語解説
大域最適解
Global Optimum
数学基礎

🔖 キーワード索引

大域最適局所最適最適化凸計画凸関数勾配降下

global minimum」は統計データ分析の文脈で扱う重要概念のひとつ。 本ページでは「global minimum」を取り巻く中核キーワードを以下にチップで一覧化する。 各キーワードは関連する概念・手法・道具立てを含み、 文献検索や学習計画の起点になる。

global minimum統計分析SSDSE-B-2026前提条件適用範囲落とし穴関連手法Python 実装検証方法

これらのキーワードは「global minimum の理解 → 適用 → 検証」のプロセスを構成する。 各章で詳しく解説する。

💡 30秒で分かる結論

🍰 まずはやさしく

世界で一番いい答えのことです。

最高の正解を見つけるために使います。

スマホのプランを一番安くすることです。

結論から簡単に解説します。

大域最適解 ── 全範囲で最小の解

📍 文脈 ── どこで出会うか

🍰 まずはやさしく

データ分析でとても大切な考え方です。

本当に正しい答えか確かめるために使います。

部活の練習メニューを最適に組むときです。

どこでこの言葉を使うかを紹介します。

機械学習・運用工学・経済学――最適化問題はあちこちに登場。 「真の最適は見つかったのか?」は実用上の死活問題です。

本ページでは「global minimum」を扱う。 統計データ分析コンペティション (2026) の教材で、 SSDSE-B-2026 (47 都道府県 × 複数年 × 100 超列) の実データを使った再現可能な学習を目指す。

「global minimum」は統計・データサイエンスの体系における重要概念のひとつ。 本ページは「定義・直感・数式・実装・落とし穴・関連手法」の 6 視点で構成され、 各視点は独立して読めるが順序通り読むと体系的な理解が得られる。

🎨 直感で掴む

🍰 まずはやさしく

地球で一番深い海のような場所です。

迷わずに正解へたどり着くために使います。

買い物で一番安い店をさがすときです。

イメージ図を使って直感的に説明します。

山と谷で例えると:

非凸の地形ではどこを「最適」とするか保証が難しい。

大域最小と局所最小の差は、 凸関数 (例: 線形回帰の二乗誤差 J(β) = ||y - Xβ||²) では消滅する — 凸関数では「局所最小 = 大域最小」が数学的に保証され、 勾配降下法は必ず global minimum に到達する。 一方、 ニューラルネットの損失関数や混合ガウスの対数尤度のような非凸関数では、 出発点 (初期値) によって到達点が異なり、 異なる局所最小に落ち着く可能性がある。

非凸関数で大域最小を狙う実用的戦術には (a) ランダム初期化を 10〜100 回繰り返して最良値を採用 (multi-start)、 (b) シミュレーテッドアニーリングで温度パラメータを徐々に下げる、 (c) 遺伝アルゴリズムや粒子群最適化で複数解を並列探索、 (d) Adam・SGD のような確率的勾配法で意図的にノイズを入れて鞍点を脱出する、 などがある。 ただし「真の大域最小に到達した」ことを証明するのは NP-hard 問題で、 実用上は「十分良い局所最小」で妥協する。

SSDSE-B-2026 で「47 都道府県の消費支出」を K-means で 3 クラスタに分ける時、 初期重心の選び方次第で異なる解に到達する例を後段で示し、 K-means++ 初期化で局所最小の罠を緩和する流れを実装する。

📐 定義/数式

🍰 まずはやさしく

数学的なルールで決めた正解のことです。

計算で正確に答えを出すために使います。

テストの点数を最大にする方法を考えるときです。

数式を使って正しく定義します。

【大域最小の定義】
$$ x^* \text{ が } f \text{ の大域最小} \iff f(x^*) \le f(x) \text{ for all } x \in \mathcal{X} $$
【局所最小の定義】
$$ x^\dagger \text{ が局所最小} \iff f(x^\dagger) \le f(x) \text{ for all } x \in \mathcal{N}(x^\dagger) $$
$\mathcal{N}(x^\dagger)$ は $x^\dagger$ の近傍

🔬 数式を言葉で読み解く

凸関数
$f(\lambda x + (1-\lambda)y) \le \lambda f(x) + (1-\lambda)f(y)$。 局所=大域
停留点
勾配ゼロの点。 最小/最大/鞍点のいずれか
鞍点
ある方向で最小、 別方向で最大の点。 深層学習で頻出
多スタート
初期値を変えて何回も最適化、 最良を採用

🔬 数式を言葉で読み解く(詳細版)

大域最小値(global minimum)の定義式を、 一文ずつ言葉で読み解きます。

定義 $x^* = \arg\min_{{x \in \mathcal{{X}}}} f(x)$ ── 関数 $f$ の値を、 定義域 $\mathcal{{X}}$ 全体にわたって最小にする点 $x^*$ を求めるという意味です。 $\arg\min$ は「最小値そのもの」ではなく「最小値を取る点」を返す演算子。 「最も低い谷の位置」を返すと覚えると直感的です。

不等式 $f(x^*) \leq f(x), \forall x \in \mathcal{{X}}$ ── 定義域内のすべての $x$ について、 $f(x^*)$ は $f(x)$ 以下、 という全称量化($\forall$)を含む条件。 これが局所最小値との決定的な違いで、 局所最小は「ある近傍内では最小」、 大域最小は「定義域全体で最小」。 SSDSE-B-2026 で全 47 都道府県中で人口最少を探す問題は典型的な大域最小値探索:答えは鳥取県の 537,000 人。

局所最小(local minimum) $\exists \epsilon > 0, f(\tilde{{x}}) \leq f(x), \forall x \in B(\tilde{{x}}, \epsilon)$ ── 「ある正の半径 $\epsilon$ が存在して、 $\tilde{{x}}$ を中心とする半径 $\epsilon$ の球 $B$ 内のすべての $x$ について $f(\tilde{{x}}) \leq f(x)$」。 すなわち「近所だけ見れば谷底」。 大域最小は必ず局所最小だが、 逆は成り立たない。 ニューラルネット学習で問題になるのは、 局所最小に捕まって大域最小に到達しない状況。

凸関数の場合:唯一の大域最小値 ── $f$ が凸(任意の 2 点を結ぶ線分が関数値より上)なら、 局所最小は必ず大域最小。 線形回帰の損失関数(二乗誤差)は凸なので、 勾配降下は大域最小に必ず収束する。 一方ニューラルネット(多層)は非凸で、 局所最小・鞍点・プラトーが乱立。

勾配降下による収束:$x_{{k+1}} = x_k - \eta \nabla f(x_k)$。 学習率 $\eta$ が十分小さく、 関数が凸なら、 $x_k \to x^*$。 非凸なら局所最小に止まる可能性。 SGD(確率的勾配降下)のノイズは、 浅い局所最小から脱出する効果がある。

大域最適化アルゴリズム ── 大域最小を狙うには、 局所探索だけでは不十分。 (a) シミュレーテッドアニーリング:温度に応じて確率的に山を超える。 (b) 遺伝的アルゴリズム:複数解を集団進化させる。 (c) ベイズ最適化:ガウス過程で関数を予測し探索。 (d) マルチスタート:複数の初期値から勾配降下を走らせて最良を選ぶ。

大域最適解 を含むデータ分析は、 分野によって使われ方が違います。 下の表は分野ごとの代表的な用途で、 大域最適解 だけの用途一覧ではありません。 自分の分野の行を見て、 どんな問いにデータを使うのかを掴んでください。

🏭 産業界での活用事例(6 件)

業界事例効果
ディープラーニングResNet / Transformer の損失関数最小化は非凸問題。 Adam・SGD with warm restarts で局所最小を回避ImageNet で top-5 error 25% → 4% (2012-2017)
物流(VRP)ヤマト運輸・佐川急便の配送ルート最適化はマルチスタート + 焼きなまし走行距離 7-10% 削減、 CO2 排出も同程度減
創薬タンパク質の最安定構造(エネルギー最小)を分子動力学で探索AlphaFold が 200M 種類のタンパク質構造予測達成
金融(ポートフォリオ最適化)Markowitz の効率的フロンティアは凸 2 次計画。 制約付き大域最小を解析的に求めるリスク−リターン比 15% 改善
半導体設計チップ配置(floorplanning)は非凸組合せ最適化、 焼きなましで配線長最小化消費電力 12% 削減、 製造コスト低下
SSDSE-B-2026 関連47 都道府県 × 100 指標で「総合幸福度」を定義し、 大域最大化する政策パラメータを探索地方創生戦略の数値根拠付け

⚖️ 関連手法との比較表

手法凸性前提計算量大域収束実装難度SSDSE-Bでの活用
全数探索不要O(n^d)◎ 47 都道府県程度なら
勾配降下凸なら ◎O(kn)凸: ◎ / 非凸: ×○ 線形回帰の係数最適化
SGD(確率的)不要O(k)局所 ○ / 大域 △○ 大規模ニューラルネット
焼きなまし(SA)不要O(k log k)理論的 ◎○ 都道府県組合せ問題
遺伝的アルゴリズム不要O(kgn)○ 多目的最適化
ベイズ最適化不要O(k³)◎ 高コスト評価関数

💥 失敗例から学ぶ

💥 深層学習で「学習が止まった」が局所最小か鞍点か区別せず
実は鞍点(saddle point)で、 Hessian の負の固有値方向に動けば抜け出せた。 学習率を一時的に上げる・モメンタムを使うで多くは解決。
💥 凸でない関数を SGD だけで攻める
初期値次第で答えが変わる。 必ずマルチスタート(5〜10 個の初期値で並列に走らせて最良)を併用するべき。
💥 大域最小を求めたが、 そもそも目的関数が間違っていた
AI モデルの精度最大化を目指したが、 真の業務 KPI(顧客満足度)には繋がらず。 「何を最小化するか」の定式化が最重要

📝 演習問題(5 問・解答付き)

  1. 問題:SSDSE-B-2026 で、 47 都道府県の総人口の大域最小値を求めよ(全数探索)。
    ▼ 解答を見る
    df = pd.read_csv("data/raw/SSDSE-B-2026.csv", encoding="cp932", skiprows=1)
    row = df[df["年度"]==2023].loc[df[df["年度"]==2023]["総人口"].idxmin()]
    print(row["都道府県"], row["総人口"])
    → 鳥取県、 537,000 人。
  2. 問題:関数 $f(x) = (x-3)^2 + 5$ の大域最小値と最小点を求めよ。
    ▼ 解答を見る
    $f$ は凸関数なので $f'(x)=2(x-3)=0 \Rightarrow x^*=3$。 最小値 $f(3)=5$。
  3. 問題:関数 $f(x) = x^4 - 4x^2$ の局所最小値と大域最小値を求めよ。
    ▼ 解答を見る
    $f'(x)=4x^3-8x=4x(x^2-2)=0 \Rightarrow x=0, \pm\sqrt{2}$。 $f(0)=0$、 $f(\pm\sqrt{2})=-4$。 大域最小は $x = \pm\sqrt{2}$ で値 $-4$(複数の大域最小が存在する例)、 $x=0$ は局所最大。
  4. 問題:SGD で非凸関数 $f(x,y) = x^2 + y^2 + 0.5\sin(5x)\sin(5y)$ の大域最小を探すコードを書け。
    ▼ 解答を見る
    import numpy as np
    def f(x,y): return x**2+y**2+0.5*np.sin(5*x)*np.sin(5*y)
    best=None
    for x0,y0 in [(np.random.uniform(-2,2),np.random.uniform(-2,2)) for _ in range(20)]:
      x,y=x0,y0
      for _ in range(500):
        dx=2*x+2.5*np.cos(5*x)*np.sin(5*y); dy=2*y+2.5*np.sin(5*x)*np.cos(5*y)
        x-=0.01*dx; y-=0.01*dy
      if best is None or f(x,y)<best[2]: best=(x,y,f(x,y))
    print(best)
  5. 問題:シミュレーテッドアニーリングで巡回セールスマン問題(47 都道府県を訪問)を解く手順を述べよ。
    ▼ 解答を見る
    初期解:任意の順列。 近傍:2-opt(2 都市の順序入替)。 受理確率:$\exp(-\Delta E / T)$。 温度:$T = T_0 \cdot \alpha^k$($\alpha=0.99$)。 scipy.optimize.dual_annealing で 1 行実装可能。

📖 関連用語辞典(10 語)

大域最小(global minimum)
定義域全体で関数値が最小となる点。 唯一とは限らない。
局所最小(local minimum)
ある近傍内で関数値が最小となる点。 大域最小の必要条件。
鞍点(saddle point)
勾配ゼロだが、 ある方向で最小・別方向で最大の点。 高次元では局所最小より多い。
凸関数
任意の 2 点間の線分が関数値以上にある関数。 局所最小は必ず大域最小。
勾配降下法
勾配の逆方向に少しずつ進む最適化アルゴリズム。 凸関数で大域収束。
確率的勾配降下(SGD)
1 サンプルまたはミニバッチで勾配推定。 ノイズが局所最小脱出に効く。
Adam
Adaptive Moment Estimation。 モメンタム + 学習率調整。 深層学習の標準。
焼きなまし(SA)
温度パラメータで確率的に山を超える大域最適化アルゴリズム。
遺伝的アルゴリズム
集団進化型の大域最適化。 交叉・突然変異・選択。
ベイズ最適化
ガウス過程で関数を近似し、 獲得関数で次の評価点を選ぶ。

🧮 実値で計算してみる

$f(x) = x^4 - 4x^2 + x$ の例:

🧮 数式に値を入れて手で計算する: 局所 vs 大域最小

合成 f(x) = x⁴ - 8x² + 16 の極値を計算する。

Step 1: 微分と極値

f(x) = x⁴ - 8x² + 16 f'(x) = 4x³ - 16x = 4x(x²-4) = 4x(x-2)(x+2) 零点: x = -2, 0, 2

Step 2: 関数値

f(-2) = 16 - 32 + 16 = 0 (大域最小) f(0) = 0 - 0 + 16 = 16 (局所最大) f(2) = 16 - 32 + 16 = 0 (大域最小) 2 つの大域最小 x=±2 で f=0

🐍 Python で再現

1
2
3
4
5
6
7
import numpy as np
def f(x): return x**4 - 8*x**2 + 16
xs = np.linspace(-3, 3, 601)
ys = f(xs)
min_idx = np.argmin(ys)
print(f"最小値: {ys.min():.4f} at x={xs[min_idx]:.2f}")
print(f"x=0: {f(0)}")

📤 実行結果

最小値: 0.0000 at x=-2.00 x=0: 16

💬 手計算 (Step 2) と Python 出力が完全一致。

🎮 触って理解する

多峰性関数の上で開始点をドラッグして、勾配降下法がどの谷に落ちるかを体感しよう。使う関数は次の 1 変数関数(多項式 + sin の合成):

$$ f(x) = 0.05x^4 - 0.6x^2 + 0.1x + 1.2\sin(2.5x), \qquad f'(x) = 0.2x^3 - 1.2x + 0.1 + 3\cos(2.5x) $$

この関数は区間 $[-4, 4]$ に 3 つの谷を持つ(数値検証済み):大域最小 x ≈ −2.939(f ≈ −2.795)局所最小 x ≈ −0.753(f ≈ −1.542)局所最小 x ≈ 1.982(f ≈ −2.552)。右端の谷は大域最小と 0.24 しか差がない「惜しい罠」だ。

👆 曲線上の ● をドラッグ(タッチ対応)して開始点 x₀ を決め、「▶ 勾配降下」を押す。更新式は $x_{k+1} = x_k - \eta f'(x_k)$(η = 0.02 固定・300 反復)。
🎨 吸引域(basin of attraction)バー — 各開始点がどの谷に到達するかを色分け:
開始点をドラッグして「▶ 勾配降下」を押してください。

💡 直感 ── なぜ谷に「捕まる」のか

勾配降下法は「今いる場所の傾きだけ」を見て坂を下る近視眼的アルゴリズム。谷底(f'(x) = 0 かつ f''(x) > 0)に着くと勾配がゼロになり動けなくなる。隣の谷がもっと深くても、間にある山(局所最大 x ≈ −1.729 と x ≈ 0.557)を「登る」手段を持たないため越えられない。開始点がどちら側にあるか──つまり吸引域のどこから出発したか──だけで運命が決まる。上のバーで測ると、大域最小の吸引域は区間全体のわずか 28.4%。中央の浅い谷が 28.6%、右の「惜しい罠」が 43.0% と最大で、一様ランダムに初期化すると過半数以上の確率で大域解を逃すことが分かる。

⚠️ 落とし穴 ── 初期値依存と凸性の価値

この実験が示す教訓は 2 つ。第一に初期値依存性:非凸関数では「収束した」ことは「最適に到達した」ことを意味しない。1 回の最適化結果を報告書に書く前に、必ず複数初期値で再実行して一致を確認すべきだ。第二に凸性の価値:もしこの関数から sin 項を取り除いて $0.05x^4 - 0.6x^2$ 型の非凸性まで消せば(例えば線形回帰の二乗誤差のような凸関数なら)、谷は 1 つになり吸引域は 100% ── どこから出発しても同じ答えに着く。損失関数を設計する段階で凸に定式化できれば、初期値の心配そのものが消える。これが実務で線形モデルや凸緩和が愛される理由である。

🚀 発展 ── multi-start・焼きなまし・凸緩和

「🎲 ランダム再始動」ボタンは multi-start 法の体験装置だ。大域解の吸引域が p = 28.4% のとき、k 回の独立なランダム開始で少なくとも 1 回大域解に到達する確率は $1 - (1-p)^k$:k = 5 で約 81%、k = 10 で約 96.5%、k = 20 で 99.9%。押すたびに実測の到達率が理論値に近づくのを確かめてほしい。より高度な戦略として、(1) 焼きなまし法・遺伝的アルゴリズムは悪化方向への移動を確率的に許して山を越える、(2) SGD のミニバッチノイズは浅い谷からの脱出を助ける、(3) 凸緩和(非凸問題を凸問題で近似し、その大域解を初期値や下界に使う。SDP 緩和が代表例)は理論保証つきの近似を与える。学習率 η と反復の力学そのものは姉妹ページ連続最適化勾配降下法学習率で扱っているので、そちらで「谷の中でどう動くか」を、本ページで「どの谷に入るか」を押さえると全体像が完成する。局所最適解数理最適化も併読を勧める。

🐍 Python 実装

最小限のスニペットで動作確認できる例。 公的データ(SSDSE 等)を想定しています。

🎯 目的:SSDSE-B-2026 の総人口を例に、 大域最小(鳥取県)を全数探索で見つける/非凸関数で SGD と SA を比較
📥 入力:SSDSE-B-2026.csv、 非凸テスト関数 $f(x,y)$
📤 出力:大域最小点(鳥取)・大域最小値、 SGD/SA の収束軌跡
💬 コメント:離散・有限な問題(47 都道府県)なら全数探索が確実。 連続・非凸な問題ではマルチスタート+ SA/ベイズ最適化が定石。 「大域最小」を主張するには、 評価関数の凸性または探索網羅性の保証が必要。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
import numpy as np
from scipy.optimize import minimize, differential_evolution

f = lambda x: x[0]**4 - 4*x[0]**2 + x[0]

# 局所最適化(出発点で結果が変わる)
print(minimize(f, x0=[ 1.0]).x)   # 局所最小付近
print(minimize(f, x0=[-1.0]).x)   # 大域最小付近

# 大域最適化
res = differential_evolution(f, bounds=[(-3, 3)])
print(res.x, res.fun)             # 真の大域最小

⚠️ よくある落とし穴

❌ 1. 1回の最適化で「最適」と断定
勾配法は初期値の近くの谷に落ちるので、 1 回走らせて得た解が全体の最小である保証は無い。 初期値を変えて 10〜50 回走らせ、 得られた目的関数値の分布を見る(多スタート法)。 同じ値に何度も収束するなら大域最小の可能性が高い。
❌ 2. 深層学習で大域最小を目指す
深層学習の損失関数は非凸で谷が無数にあるが、 実用上は「訓練損失が最小の点」より「検証性能が良い点」が欲しい。 訓練損失を下げ切ると過学習するので、 大域最小に到達すること自体が目的にならない。 Early Stopping で止めるのが普通。
❌ 3. 凸性チェックを怠る
目的関数が凸なら局所最小=大域最小なので、 1 回解けば終わる。 線形回帰の二乗誤差やロジスティック回帰の対数尤度は凸。 一方 k-means や混合ガウス、 ニューラルネットは非凸なので、 必ず複数の初期値を試す必要がある。 まず凸かどうかを確かめると手間が変わる。
❌ 4. 離散最適化と連続最適化を混同
連続変数なら勾配を辿れるが、 「どの県を選ぶか」のような 0/1 の選択は微分できない。 ナップサック問題や巡回セールスマン問題は組合せの数が爆発するため、 分枝限定法・動的計画法・メタヒューリスティクスなど別系統の解法を使う。
❌ 5. 「最適」を厳密と緩い意味で混在
同じ目的関数値を持つ解が複数あるとき、 どれを「最適」と呼ぶかは実装の並び順で決まってしまう。 また収束判定の許容誤差を変えれば「最適解」も変わる。 報告では、 許容誤差と同値解の扱い(タイブレーク規則)を明記しておく。

🗺 概念マップ

大域最適解(global minimum)を中心に、局所最適解との対比、最適化アルゴリズム(勾配降下法・モーメンタム・Adam・焼きなまし)、損失関数の凸性・非凸性、深層学習における鞍点問題を放射状に配置した。実務では「真の大域解」より「十分良い局所解」を素早く得る戦略が支配的である点も矢印で示している。

大域最適解 勾配降下法 焼きなまし(SA) 遺伝的アルゴリズム 分枝限定法 ベイズ最適化

大域最小値を中心とする概念マップは、 最適化アルゴリズム (勾配降下法 / 焼きなまし / 遺伝的アルゴリズム / 分枝限定法 / ベイズ最適化) を「探索範囲 (局所 vs 大域)」「計算コスト (low vs high)」「保証 (経験的 vs 厳密)」の 3 軸で配置することで全体像が把握できる。 凸関数 (線形回帰、 SVM 双対、 ロジスティック回帰) では勾配降下法が最短経路、 非凸関数 (深層学習、 混合ガウス、 K-means) では multi-start や Adam + warm restart の組み合わせが実用的選択肢になる。

🔗 隣接手法への橋渡し

「大域最小値」は単独で完結する手法ではなく、 隣接領域と連携することで真価を発揮する。

上流の凸性判定・勾配計算で最適化問題の構造を確認し、 並列の局所最小・鞍点・モメンタム法と挙動を比較し、 下流の確率的勾配降下・Adam・学習率スケジューラで実装に落とす。 大域最小は理論的目標であり、 深層学習では局所最小・平坦最小・汎化との関係を含めて再解釈する。

🌳 手法選択フロー

「大域最小値」を実際の課題に当てはめるとき、 状況別に何を選ぶかを 3 段階で判定する。

  1. 目的関数は凸か? 凸 → 勾配降下で大域最小到達保証、 非凸 → 局所最小・鞍点に注意し複数初期値で再試行
  2. 探索戦略は? 滑らかな関数 → 勾配法、 微分困難 → ベイズ最適化・遺伝的アルゴリズム・シミュレーテッドアニーリング
  3. 深層学習の文脈か? 大域最小よりも「汎化する平坦最小」を目標、 SGD のノイズ・大きな学習率・SAM 系で平坦解を探索

大域最小は理論的概念で、 深層学習では「到達不可能だが達成不要」が実態。 損失値そのものより検証損失・汎化ギャップを最適化指標として扱い、 大域性に固執しない設計が現代の主流。

🧭 追補: 大域最小を「見つける」ことの本質(深掘り)

ここまでの節・🎮ウィジェット・📝補足を前提に、 別の切り口から大域最小を掘り下げる。 キーワードは「検証の非対称性」「条件数」「組合せ爆発」の 3 点。 いずれもこのページの他の解説とは重複しない角度である。

💡 直感 ── 「谷底の確認」と「全域の保証」は別問題

大域最小と局所最小の本質的な差は、 「その場で確かめられるか」にある。 ある点 $\tilde{x}$ が局所最小かどうかは、 勾配 $\nabla f(\tilde{x})=0$ とヘッセ行列 $\nabla^2 f(\tilde{x})$ の正定値性を調べれば有限の手順でその場で判定できる。 ところが同じ点が大域最小かどうかは、 定義 $f(x^*) \le f(x)\ \forall x \in \mathcal{X}$ が定義域全体にわたる主張なので、 手元の情報だけでは原理的に確認できない ── これが検証の非対称性である。 「局所性は局所的に検証でき、 大域性は大域的にしか検証できない」。 だからこそ、 局所最適化アルゴリズム(勾配降下法)は自分が大域最小に居るのかを知る術を持たず、 「収束した」と「最適に達した」が別物になる。

重要なのは、 大域最小探索の難しさは「大域」という言葉ではなく「連続 × 非凸」の組合せから生じる点だ。 探索空間が有限なら(例: SSDSE-B-2026 の 47 都道府県から 1 つ選ぶ問題)、 全走査で大域最小は必ず・確実に見つかる。 難しくなるのは、 定義域が連続で無限個の候補を持ち、 かつ凸性が崩れて谷が複数現れたときだけである。

⚠️ 落とし穴 ── 「凸なのに大域最小へ届かない」条件数の罠

「凸関数なら勾配降下は必ず大域最小に収束する」は理論的には正しい。 だが実務では凸でも届かないことがある。 その主犯が条件数(ヘッセ行列の最大固有値 ÷ 最小固有値)だ。 SSDSE-B-2026(cp932, skiprows=[1], 2023 年 47 都道府県)の実測で確かめてみる。 「出生数 $=\beta_0 + \beta_1 \cdot$ 総人口」という単回帰の二乗誤差は凸関数で、 大域最小は正規方程式から一意に定まる:

意味するところは深刻だ。 生の変数のまま勾配降下すると、 発散を避ける学習率は $\eta < 2/\lambda_{\max} \approx 1.5\times10^{-15}$ に制限され、 一方で小さい固有値の方向(切片方向)はその学習率ではほとんど動かない。 収束に必要な反復数は条件数のオーダー、 すなわち兆回規模となり、 現実には凸なのに大域最小へ到達しない。 対処は単純で、 変数を標準化(z-score 化)すると条件数はほぼ 1 に落ち、 勾配降下はただちに大域最小(標準化した傾き=相関係数 $\approx 0.99542$)へ収束する。 凸性は大域最小の「存在と一意性」を保証するが、 「到達の速さ」までは保証しない ── ここが盲点である(詳しくは学習率連続最適化)。

他にも、 このページの他節が触れていない落とし穴がある:

🚀 発展 ── 保証・組合せ爆発・「ノイズという温度」

(1) 凸最適化が与える二重の保証。 凸性は 2 つの別々の恩恵をまとめて与える。 ひとつは存在(連続関数 × 有界閉集合なら Weierstrass の極値定理で最小点が存在)、 もうひとつは局所=大域(凸なら任意の局所最小が大域最小)。 この 2 つが揃うと、 局所探索の結果をそのまま大域最小と読み替えられる。 逆に非凸では両方の橋が落ちるため、 局所探索の結果に「大域」の看板を掛けてはいけない(上位概念は数理最適化、 対比は局所最適解)。

(2) 離散化がもたらす組合せ爆発。 SSDSE-B-2026 で「47 都道府県から代表 5 県を選び目的を最適化」といった選択問題に踏み込むと、 候補数は $\binom{47}{5}=1{,}533{,}939$ 通りに跳ね上がり、 選ぶ数を増やすほど指数的に膨張する。 こうなると全数探索は破綻し、 分枝限定法やメタヒューリスティクスが必要になる(組合せ最適化)。 大域最小の「存在」は有限集合ゆえ保証されるのに、 「発見」は現実的に困難 ── 存在と発見の乖離が最も鮮明に出る領域だ。

(3) ノイズを「温度」として使う。 焼きなまし法が温度パラメータで山越えを許すのと同様、 確率的勾配降下(SGD)のミニバッチ由来のノイズは実効的な温度として働き、 浅い谷や鞍点からの脱出を助ける。 学習率を大きく保つ期間はこの温度を高く保つことに相当し、 減衰させる過程は徐冷に対応する(勾配降下法学習率)。 大域探索の系譜(焼きなまし法・遺伝的アルゴリズム)と局所探索の力学(勾配法)は、 この「ノイズ=温度」という視点で地続きに理解できる。

※ 上記のうち回帰係数・決定係数・ヘッセ行列の固有値・相関係数は SSDSE-B-2026(2023 年・47 都道府県)の実測値。 $\binom{47}{5}$ は組合せ数の算術例、 $f(x)=\cos x$ は概念説明のための架空の関数例。