確率的勾配降下法が、機械学習モデルを最適化し、大規模データセットと深層学習タスクのための効率的なトレーニングをどのように可能にするかを発見してください。
確率的勾配降下法SGD)は、最適化アルゴリズムの基本である。 最適化アルゴリズムの基礎であり 機械学習(ML)や ディープラーニング(DL)で多用されている。モデル学習の原動力となる モデル学習の原動力として機能し、モデル内部の重みとバイアスを繰り返し調整する。 モデルの重みとバイアスを反復的に調整し、誤差を最小化する。 を最小化するために、モデル内部の重みとバイアスを調整する。従来の データセット全体を処理して1回の更新を計算する従来の勾配降下法とは異なり、SGD 、一度にランダムに選択された1つの訓練例のみを使用してモデルパラメータを変更します。 を変更する。この「確率的」またはランダムなアプローチ により、このアルゴリズムは計算効率が高く、スケーラビリティに優れている。 一度に全データセットを処理することはメモリに負荷がかかる。 を一度に処理することは、メモリの制約上不可能である。
ニューラルネットワークをトレーニングする第一の目的は 複雑な誤差をナビゲートして、最も精度の高い最低点を見つけることです。SGD これを を繰り返す。まず、バックプロパゲーションを使用して、特定のサンプルの勾配 (誤差が最も急峻に増加する方向) を計算します。 を計算する。次に 重みを逆方向に更新して誤差を減らす。
このステップの大きさは、次のように制御される。 学習率によって制御される。 によって制御される。SGD 単一サンプルを使用するため は単一サンプルを使用するため、最小値への経路は直線ではなくノイズが多くジグザグになる。このノイズは このノイズは、モデルが局所極小-非ストキャスティック・アルゴリズムが行き詰まる可能性のある準最適解-から脱出するのを助けるので、有益なことが多い。 より良い大域解を見つけることができる。このプロセスは エポック、つまりデータセットを完全に通過するまで、このプロセスが繰り返される。 モデルは収束する。数学的な直観は スタンフォードCS231n最適化ノートを参照してください。
SGD 関連概念とどのように異なるかを理解することは、トレーニングデータに適した戦略を選択するために不可欠である。 を選択するために不可欠である。
SGD その亜種は、さまざまな業界において最新のAIシステムをトレーニングするための標準となっている。
について ultralytics ライブラリを使えば、ユーザーは簡単にオプティマイザーを切り替えることができる。AdamW 、タスクによっては
がデフォルトになる場合もあるが、SGD は微調整や特定の研究要件に使用されることが多い。以下のスニペット
は、モデルの学習にSGD 明示的に選択する方法を示しています。
from ultralytics import YOLO
# Load the latest YOLO11 model (nano version)
model = YOLO("yolo11n.pt")
# Train the model on the COCO8 dataset using the SGD optimizer
# The 'lr0' argument sets the initial learning rate
results = model.train(data="coco8.yaml", epochs=50, optimizer="SGD", lr0=0.01)
このコードは YOLO11 モデルでトレーニングを開始する。
で optimizer="SGD".さらなるカスタマイズについては
モデルトレーニング構成 ドキュメンテーション次のようなフレームワークがある。
TensorFlow そして
Scikit-learn SGD
ロバストな実装も提供している。
も提供している。


