用語集

確率的勾配降下法 (SGD)

確率的勾配降下がどのように機械学習モデルを最適化し、大規模なデータセットやディープラーニングタスクの効率的な学習を可能にするかをご覧ください。

確率的勾配降下(SGD)は、機械学習(ML)において基本的かつ広く用いられている最適化アルゴリズムである。SGDは、損失関数を最小化するために、ウェイトやバイアスなどの内部パラメータを調整することによってモデルを学習するために使用される反復手法である。更新のたびにデータセット全体を処理する従来の勾配降下法とは異なり、SGDはランダムに選択された1つの訓練サンプルだけを使用してパラメータを更新します。この「確率的」アプローチにより、学習プロセスが大幅に高速化され、スケーラブルになります。また、ノイズの多い更新は、モデルが誤差の局所的な極小値から抜け出し、より良い全体解を見つけるのに役立ちます。

確率的勾配降下のしくみ

SGDの核となる考え方は、データセット全体にわたって計算される損失関数の真の勾配を、単一サンプルの損失勾配を用いることで近似することである。この単一サンプルの勾配はノイズの多い推定値ですが、計算量が少なく、平均的には正しい方向を向いています。このプロセスでは、各トレーニングサンプルに対して単純な2ステップのサイクルを繰り返す:

  1. 勾配を計算する:1つの学習例について、モデルのパラメータに対する損失関数の勾配を計算する。
  2. パラメータを更新する: 学習率でスケーリングされた勾配の逆方向にパラメータを調整する。これにより、特定のサンプルについて誤差の少ない状態へとモデルを移動させます。

このサイクルをエポックと呼ばれるデータセット全体で何度も繰り返し、モデルの性能を徐々に向上させる。SGDの効率性により、最新のディープラーニング(DL)の基礎となっており、PyTorchや TensorFlowなどの主要なフレームワークでサポートされている。

Sgd 対 他のオプティマイザー

SGDは、いくつかの勾配ベースの最適化手法のひとつであり、それぞれが独自のトレードオフを持つ。

  • バッチ勾配降下この方法は、学習データセット全体を使って勾配を計算する。最小値への安定した直接的な経路を提供するが、大規模なデータセットでは非常に時間がかかり、メモリ消費も激しいため、ほとんどの最新のアプリケーションでは実用的ではない。
  • ミニバッチ勾配降下これはバッチGDとSGDの折衷案である。これは、データの小さなランダムなサブセット(「ミニバッチ」)を使用してパラメータを更新します。これは、バッチGDの安定性とSGDの効率性のバランスをとるもので、実際に使用される最も一般的な手法です。
  • アダム・オプティマイザーAdamは適応型最適化アルゴリズムであり、各パラメータに対して個別の学習率を維持し、学習の進行に応じてそれを調整する。多くの場合、SGDよりも早く収束しますが、SGDの方がより良い最小値を見つけ、より良い汎化を提供できる場合があり、オーバーフィッティングを防ぐのに役立ちます。

実世界での応用

SGDとその亜種は、さまざまな領域にわたる幅広いAIモデルの学習に不可欠である。

Ultralyticsコミュニティに参加する

AIの未来に参加しませんか。世界のイノベーターとつながり、協力し、成長する

今すぐ参加する
クリップボードにコピーされたリンク