用語集

アダム・オプティマイザー

アダム・オプティマイザーが、適応学習率、モメンタム、AIにおける実際のアプリケーションを備えた効率的なニューラルネットワークトレーニングをどのようにパワーアップさせるかを学びます。

Ultralytics HUB で
を使ってYOLO モデルをシンプルにトレーニングする。

さらに詳しく

Adamオプティマイザは、ディープラーニング(DL)や機械学習(ML)で広く使用されている、一般的で効果的な最適化アルゴリズムである。AdamはAdaptive Moment Estimationの略で、確率的勾配降下(SGD)の他の2つの拡張の利点を組み合わせたものである:Adamの最大の強みは、各パラメータに対して適応的な学習率を計算する能力にあり、コンピュータビジョン(CV)や自然言語処理(NLP)などの分野で一般的な、大規模なデータセット、高次元のパラメータ空間、ノイズの多い勾配を持つ問題に適している。

アダムの働き

Adamは、学習中に過去の勾配からの情報を用いてモデルのパラメータを反復的に更新する。アダムは各パラメータに対して2つの移動平均を保持する。1つ目のモーメント(勾配の平均)の推定値と2つ目のモーメント(勾配の非中心分散)の推定値である。これらのモーメントは、各パラメータの学習率を個別に適応させるのに役立つ。大きな勾配の更新や頻繁な勾配の更新を受けるパラメータは学習率が小さくなり、小さな勾配の更新や頻繁でない勾配の更新を受けるパラメータは学習率が大きくなる。この適応的な性質により、標準的なSGDに比べて収束が速くなることが多い。このアルゴリズムはまた、勾配の移動平均を使用することで運動量を取り入れ、関連する方向に沿った進展を加速し、振動を減衰させるのに役立つ。詳細については、オリジナルのAdam論文を参照されたい。

他の最適化アルゴリズムとの比較

アダムは強力なデフォルト・チョイスだが、他のオプティマイザーとの関係を理解することは有益だ:

  • 確率的勾配降下法(SGD)最も基本的なオプティマイザ。Adamとは異なり、標準的なSGDは、すべてのパラメータに対して単一の固定学習率を使用しますが、運動量付きのSGDのようなバリエーションも存在します。Adamは、実際には、特に学習の初期に速く収束することが多いが、SGDの方が特定のタスクでより優れた汎化を達成できる場合があることを示唆する研究もある。
  • AdaGrad:過去の勾配の二乗和に基づいて学習率を適応させるが、学習率は時間とともに限りなく小さくなり、学習が停止する可能性がある。
  • RMSProp:AdaGradに似ているが、勾配の2乗平均を指数関数的に減衰させることで、学習速度が急激に低下するのを防ぐ。AdamはRMSPropのアイデアをベースにしている。

実世界での応用

アダム・オプティマイザーは、膨大な種類のAIモデルのトレーニングに採用されている:

例1:画像認識と検出

コンピュータビジョンでは、Adamは畳み込みニューラルネットワーク(CNN)の学習に頻繁に使用されます。例えば、ImageNetのような大規模なデータセットで画像分類のモデルを学習したり、複雑な物体検出システムを開発したりする場合、数百万ものパラメータを効率的に処理し、高い精度を達成するAdamの利点が生かされます。

例2:自然言語処理

Adamは、BERTや GPTのような大規模言語モデル(LLM)を学習するための標準的なオプティマイザです。Adamは、機械翻訳テキスト要約感情分析などのタスクのモデルを学習する際に、これらのモデルに関連する複雑な損失状況を効率的にナビゲートします。

用途Ultralytics YOLO

Ultralytics エコシステムの中で、Adamとその亜種AdamWは、 Ultralytics YOLO モデルのトレーニングに利用可能なオプティマイザーです。Adamの適応学習率を活用することで、物体検出、インスタンス分割、またはポーズ推定モデルのトレーニング中の収束を加速することができます。SGDは、最終的な汎化性が向上する可能性があるため、YOLO モデルのデフォルトで推奨されるオプティマイザであることが多いですが、Adamは、特定のシナリオや初期の実験中に特に有用な、堅牢な代替手段を提供します。オプティマイザやその他のトレーニング設定は簡単に設定できる。Ultralytics HUBのようなツールはプロセスを合理化し、ユーザーはローカルまたはクラウドトレーニングを介して、Adamを含む様々なオプティマイザを使用してモデルをトレーニングすることができます。パフォーマンスを最適化するには、ハイパーパラメータチューニングのようなテクニックを検討する。フレームワーク PyTorchTensorFlowはAdamの実装を提供している。

すべて読む