モデル・技術

Adamとは?パラメータごとに歩幅を調整——一次・二次モーメントの適応的最適化

読み:アダム / 英:Adam(Adaptive Moment Estimation)

更新日: 読了目安:約6分

Adam(Adaptive Moment Estimation)は、勾配の一次モーメントと二次モーメントを使って、各パラメータの更新歩幅を個別に調整する適応的最適化アルゴリズムです。本記事は誤差逆伝播法の層構造の話ではなく、「同じ学習率では歩きにくい地形を、重みごとに歩幅を変えて下る」——更新の設計——に焦点を当てます。

学習パイプラインでの位置づけ

深層学習の1ステップは、ざっくり次の流れです。

  • 順伝播 — 入力から予測を出す
  • 損失計算 — 正解との差を損失関数で数値化
  • 勾配計算誤差逆伝播法で各重みへの勾配を求める
  • パラメータ更新Adamなどの最適化手法で重みを動かす

勾配降下法は「勾配の反対方向へ進む」という基本方針です。Adamはその方針を守りつつ、どれだけ進むかをパラメータごとに賢く変える発展形です。

一次・二次モーメント

試験で頻出なのが「一次・二次モーメント」という言い回しです(TF-079)。直感は次のとおりです。

用語何を平均しているか役割のイメージ
一次モーメント勾配そのものの移動平均更新の方向と勢いを滑らかにする(Momentumに近い)
二次モーメント勾配の二乗の移動平均勾配が大きく振れるパラメータの歩幅を抑える(RMSpropに近い)

名前の Adaptive Moment Estimation は、この2つのモーメント推定に由来します。数式の暗記より、「2種類の勾配統計で歩幅を決める」と覚えると選択肢問題に強くなります。

適応的学習率の意味

ニューラルネットの重みは層や役割によって勾配のスケールが大きく異なります。全パラメータに同じ学習率だけを当てると、ある重みは更新しすぎ、別の重みはほとんど動かない——といった不均衡が起きます。

Adamはパラメータごとに実効的な歩幅を変えるため、「適応的学習率」と説明されます。ただし、これはベース学習率が不要になるという意味ではありません。全体のスケールを決めるハイパーパラメータは依然として設定します(TF-052:学習率はハイパーパラメータ)。

混同しやすい点

推論時のTemperatureや、ALiBiの位置バイアスとは無関係です。Adamは学習時の最適化の話です。

最適化手法の一族

G検定ではAdamを代表例として、他の名前と並べて整理する問題が出ます。

手法試験向けの一言
SGD勾配方向へ更新。ミニバッチで勾配を計算(G-141
Momentum過去の勾配の勢いを足し、坂道を転がるイメージ
AdaGrad / RMSpropパラメータごとに学習率を縮める適応系の祖先
Adam一次・二次モーメントを組み合わせた定番の適応的手法(TF-079)

深層学習LLMの学習でも、Adam系の最適化が広く使われます。大規模学習では分散処理などが加わりますが、勾配で重みを更新するという骨格は同じです。

試験で押さえるポイント

  • 定義 — 勾配の一次モーメントと二次モーメントを利用する代表的な最適化手法(TF-079)
  • 適応的 — パラメータごとに実効的な学習率を変える
  • 役割分担 — 勾配計算は逆伝播、更新方針はAdam(勾配降下法の発展)
  • ハイパーパラメータ — ベース学習率などは依然として人が設定。逆伝播で自動更新されるわけではない

演習で確認する

G検定:TF-079TF-075TF-076TF-052G-190ディープラーニングの概要

すり替えに注意

誤った説明正しい理解
Adam=誤差逆伝播法逆伝播は勾配の計算、Adamは更新(TF-075)
Adam=学習率が完全自動適応的だが、ベース学習率などハイパーパラメータは設定する
一次モーメント=損失関数一次モーメントは勾配の移動平均
最適化=損失を直接書き換える損失は予測と正解から計算。最適化は重みを動かして損失を下げる
SGD=訓練データを使わない訓練データで勾配を計算する(G-141)

よくある質問

Adamの一次・二次モーメントとは?

一次モーメントは勾配の移動平均(勢い・方向の滑らかさ)に相当し、二次モーメントは勾配の二乗の移動平均(各パラメータの更新の大きさの目安)に相当します。Adamはこの2つを組み合わせて、パラメータごとに実効的な歩幅を決めます(TF-079)。

Adamと勾配降下法(SGD)の違いは?

勾配降下法は基本的に全パラメータで同じ学習率を使います。Adamは過去の勾配情報からパラメータごとに歩幅を調整する適応的手法です。勾配の計算は誤差逆伝播などで行い、Adamはその勾配をどう使って更新するかを決める最適化アルゴリズムです。

学習率はAdamが自動で決めますか?

Adamは各パラメータの実効歩幅を適応的に調整しますが、全体のスケールを決めるベース学習率などのハイパーパラメータは依然として人が設定します。学習率そのものが誤差逆伝播で自動更新されるわけではありません(TF-052)。