最適化手法 - SGD・Adam・AdaGrad

ニューラルネットの重み更新を司る主要な最適化手法の違いを比較します。

編集・検証: AIパスポートスタディ編集部 公式情報: GUGA 生成AIパスポート公式ページ 制作・検証方針

まずはクイズからどうぞ。あなたの予想は合うでしょうか? 深層学習の学習速度と精度を左右する、重要な技術です。

確認クイズ

現在の深層学習で最もよく使われている最適化手法はどれか?

  1. SGD
  2. AdaGrad
  3. Adam
  4. Newton法
こたえを見る

正解: 3. Adam

Adam (Adaptive Moment Estimation) はモメンタムと適応的学習率を組み合わせた手法で、多くのタスクで安定して良い性能を発揮するため現在最もよく使われています。2014年 Kingma らの提案。

香月 リサ 先生(普段) 香月 リサ 先生

答えはAdamね。
ニューラルネットワークの学習では、誤差を小さくする方向に重みを更新していくのだけど、その更新の仕方を決めるのが『最適化手法 (Optimizer)』なの。

戸倉 ジャスミン(普段) 戸倉 ジャスミン

山を下りる方法がいろいろあるみたいな感じ? まっすぐ下りるか、ジグザグに下りるか、みたいな。

香月 リサ 先生(笑顔) 香月 リサ 先生

いい直感ね。
SGD (確率的勾配降下法) は最も基本で、勾配の方向に一定の学習率で進むの。
シンプルだけど、谷を行ったり来たりして収束が遅いことがあるわ。

深見 つむぎ(普段) 深見 つむぎ

そこでモメンタムが登場しますね。
前回の更新方向を慣性として加算することで、谷を滑らかに下れるようになります。
ボールが坂を転がるときに、勢いがついて小さな凸凹を乗り越えていくイメージです。

香月 リサ 先生(普段) 香月 リサ 先生

次にAdaGradは、パラメータごとに学習率を自動で調整する手法なのよ。
よく更新されるパラメータは学習率を小さく、あまり更新されないパラメータは大きくしていくの。
稀な特徴の学習に強いわ。

戸倉 ジャスミン(笑い) 戸倉 ジャスミン

うそっ!?
パラメータごとに違うとか賢すぎじゃん。

香月 リサ 先生(笑顔) 香月 リサ 先生

そしてAdamは、モメンタム (慣性) とAdaGradの適応的学習率の両方の良いところを取り入れた手法で、現在最も広く使われているの。
RMSpropの発展形とも言えるわね。

雪村 ましろ(笑顔) 雪村 ましろ

えへへ、いいとこどりですぅ! Adam先輩、頼もしいですぅ。

深見 つむぎ(普段) 深見 つむぎ

ただし状況によってはSGD + モメンタムのほうが最終的な汎化性能が高い場合もあります。
画像認識の高精度モデルでは今もSGDが選ばれることがありますね。

香月 リサ 先生(普段) 香月 リサ 先生

最近ではAdamWという改良版も登場して、Transformer系モデルで標準的に使われているわ。
LLMの学習もほぼAdamWで行われているの。

戸倉 ジャスミン(普段) 戸倉 ジャスミン

結局、これさえ使えばOKってのはなくて、タスクごとに選ぶんだね。

香月 リサ 先生(笑顔) 香月 リサ 先生

そのとおりね。
最適化手法選びもまた、深層学習の腕の見せ所なの。

深見 つむぎ(普段) 深見 つむぎ

試験的には『Adam = モメンタム + 適応的学習率』というポイントさえ押さえれば、細かい数式は覚えなくて大丈夫です。

雪村 ましろ(笑顔) 雪村 ましろ

全部覚えなきゃ、って思わなくていいんですねぇ。
安心しましたぁ。

香月 リサ 先生(普段) 香月 リサ 先生

実装的には 学習率のスケジューリングも重要で、学習が進むにつれて学習率を段階的に下げる『学習率スケジューラ』もよく使われるわ。
最初は大きく、後半は繊細に、というリズムね。

戸倉 ジャスミン(びっくり) 戸倉 ジャスミン

リズムを変えていくんだね、ほんとに奥が深いね……。

確認クイズ

Adamに組み合わさっている2つの仕組みはどれか?

  1. ドロップアウト と バッチ正規化
  2. モメンタム と 適応的学習率
  3. 畳み込み と プーリング
  4. 事前学習 と ファインチューニング
こたえを見る

正解: 2. モメンタム と 適応的学習率

Adamはモメンタム (過去勾配の移動平均) と、パラメータごとの適応的学習率 (過去勾配の二乗平均に基づく) の2つを組み合わせたオプティマイザです。

🔖 この記事の関連書籍

Amazonアソシエイトリンクを含みます。他分野は おすすめ書籍ページ へ。