---
title: "モーメンタム（Momentum）"
description: "モーメンタムは、過去の更新方向を速度として蓄積し、SGDの振動を抑えながら収束を速める最適化手法です。勾配そのものではなく更新量を移動平均的に利用する仕組みを押さえ、通常のSGD、RMSprop、Adamとの違いをG検定の判断軸で整理します。"
last_modified_at: "2026-06-27"
canonical_url: "https://stemtazoo.github.io/gk/momentum/"
section: "gk"
---

## まず結論

* **モーメンタムは最適化に「慣性」を持たせる手法**
* **1990年代に提案**
* **Adamなどの最適化手法の基礎**
* 振動を抑え、**学習停滞を防ぐ**

👉 G検定では  
**「Adamで使われている」「慣性」「1990年代」** がキーワード。

---

## 直感的な説明

モーメンタムは、

> **これまで進んできた方向を、少し信じて進み続ける**

考え方です。

坂を転がるボールをイメージすると、

* 毎回止まって進路を決め直す → **SGD**
* 勢いを保って進む → **モーメンタム**

となります。

---

## 定義・仕組み（数式なし）

### 何をしている？

* **過去の勾配の移動平均** を保持
* 現在の勾配と合成して更新
* 更新方向が **なめらか** になる

---

### 何がうれしい？

* 谷での **振動を抑制**
* 平坦な領域を **速く抜ける**
* 局所的な揺れに引っ張られにくい

---

## いつ使う？（得意・不得意）

### 得意な場面

* 損失関数が **ジグザグな形**
* SGDがなかなか収束しないとき
* 学習が途中で止まりやすい場合

---

### 注意点

* 学習率や係数の調整が必要
* 単独では最先端ではない

👉 **Adamなどの土台として使われる**

---

## Adamとの関係（超重要）

* **Adam = モーメンタム + 学習率の自動調整**
* モーメンタム：**1次モーメント**
* RMSProp系：**2次モーメント**

👉 G検定では  
**「Adamの構成要素は？」** と聞かれることが多い。

---

## G検定ひっかけポイント

### ① SGDと混同させる

* ❌「SGDは慣性を使う」
* ❌「ミニバッチ＝モーメンタム」

👉 慣性・移動平均 → **モーメンタム**

---

### ② 新しい手法だと思わせる

* ❌「最近提案された最適化手法」

👉 **1990年代に提案された古典的手法**

---

### ③ Adamそのものと誤認

* ❌「モーメンタム＝Adam」

👉 正しくは、モーメンタムが過去の更新方向を利用するのに対し、Adamは勾配の1次モーメントと2次モーメントの推定を組み合わせます。

### 最適化手法との比較

| 手法 | 主な考え方 | G検定での判断語 |
| --- | --- | --- |
| SGD | 現在の勾配を使って更新 | ランダムに選んだデータ、更新のばらつき |
| Momentum | 過去の更新方向を蓄積 | 慣性、速度、振動抑制 |
| RMSprop | 勾配の二乗平均で学習率を調整 | パラメータごとの学習率 |
| Adam | 1次・2次モーメントを利用 | MomentumとRMSpropの考え方を統合 |

「過去の勾配を考慮する」という説明だけではAdamの可能性もあります。**慣性で更新方向を滑らかにする**ならMomentum、**パラメータごとに学習率を調整する**ならRMSpropやAdamと判断します。

## まとめ（試験直前用）

* Momentumは過去の更新方向を利用して慣性を持たせる
* 谷方向の振動を抑え、進みたい方向の更新を加速する
* 学習率とは別にモーメンタム係数を設定する
* RMSpropは勾配の二乗平均、Adamは1次・2次モーメントを利用する
* 「慣性」「速度」「振動抑制」がMomentumの判断語
