Stochastic Gradient Descent (SGD) が機械学習モデルをどのように最適化するかを学びましょう。SGDがUltralytics YOLO26を強化し、より高速で効率的なAIトレーニングを実現する方法を発見してください。
確率的勾配降下法 (SGD) は、機械学習においてモデルを効率的に訓練するために広く使用される強力な最適化アルゴリズムであり、特に大規模なデータセットを扱う場合に有効です。その核となるSGDは、モデルパラメータをより頻繁に更新することで学習プロセスを高速化するように設計された、標準的な勾配降下法のバリエーションです。従来のバッチ勾配降下法のように、単一の更新を行う前にデータセット全体の誤差を計算する代わりに、SGDは一度に単一のランダムに選択された訓練例のみを使用してモデルの重みを更新します。この「確率的」またはランダムな性質は最適化パスにノイズを導入し、これによりモデルは最適ではない解から脱出し、一度にすべてのデータを処理することが計算上困難な大規模データセットにおいて、より速く収束するのに役立ちます。
あらゆるトレーニングプロセスの主な目標は、モデルの予測と実際のターゲット値との差を定量化する損失関数を最小化することです。SGDはこれを反復サイクルを通じて達成します。まず、アルゴリズムはトレーニングデータからランダムなデータポイントを選択します。次に、順伝播を実行して予測を生成し、誤差を計算します。バックプロパゲーションを使用して、アルゴリズムはその単一の例に基づいて勾配、つまり誤差のランドスケープの傾きを計算します。最後に、誤差を減らすために勾配とは逆方向にモデルの重みを更新します。
このプロセスは、モデルのパフォーマンスが安定するまで、多くの場合エポックにグループ化された多数のイテレーションで繰り返されます。これらの更新の大きさは、学習率として知られるハイパーパラメータによって制御されます。各ステップが1つのサンプルのみに基づいているため、最小値への経路は、バッチ勾配降下の滑らかな軌道と比較して、しばしばジグザグまたはノイズが多いものになります。しかし、このノイズは深層学習において有利であることが多く、モデルが局所最適解に陥るのを防ぎ、より良い大域最適解につながる可能性があります。
SGDと関連する最適化アルゴリズムとの違いを理解することは、適切なトレーニング戦略を選択するために不可欠です。
SGDとその派生は、今日使用されている多くの革新的なAI技術の原動力となっています。
のような高水準ライブラリがある一方で ultralytics 内部で最適化を処理する際に
train() コマンドで、SGDオプティマイザーがより低レベルの...内でどのように初期化され、使用されているかを確認できます。
PyTorch ワークフロー。このスニペットは、tensorに対するシンプルなSGDオプティマイザの定義を示しています。
import torch
import torch.nn as nn
import torch.optim as optim
# Define a simple linear model
model = nn.Linear(10, 1)
# Initialize Stochastic Gradient Descent (SGD) optimizer
# 'lr' is the learning rate, and 'momentum' helps accelerate gradients in the right direction
optimizer = optim.SGD(model.parameters(), lr=0.01, momentum=0.9)
# Create a dummy input and target
data = torch.randn(1, 10)
target = torch.randn(1, 1)
# Forward pass
output = model(data)
loss = nn.MSELoss()(output, target)
# Backward pass and optimization step
optimizer.zero_grad() # Clear previous gradients
loss.backward() # Calculate gradients
optimizer.step() # Update model parameters
print("Model parameters updated using SGD.")
その人気にもかかわらず、SGDには課題があります。主な問題は、勾配ステップにおけるノイズであり、損失がスムーズに収束するのではなく、激しく変動する原因となる可能性があります。これを軽減するために、実務家はしばしばモーメンタムを使用します。これは、重いボールが丘を転がり落ちるように、SGDを関連する方向に加速させ、振動を抑制するのに役立つ技術です。さらに、適切な学習率を見つけることが重要です。高すぎるとモデルが最小値を通り過ぎてしまう可能性があり(勾配爆発)、低すぎると学習が非常に遅くなります。Ultralytics Platformのようなツールは、ハイパーパラメータチューニングを管理し、学習メトリクスの可視化を提供することで、このプロセスを自動化するのに役立ちます。Adam optimizerのような進歩は、学習率の調整を本質的に自動化し、SGDの固有の困難の一部に対処しています。

未来の機械学習で、新たな一歩を踏み出しましょう。