Yolo 深圳
深セン
今すぐ参加
用語集

確率的勾配降下法SGD)

確率的勾配降下法が、機械学習モデルを最適化し、大規模データセットと深層学習タスクのための効率的なトレーニングをどのように可能にするかを発見してください。

確率的勾配降下法SGD)は、最適化アルゴリズムの基本である。 最適化アルゴリズムの基礎であり 機械学習(ML)や ディープラーニング(DL)で多用されている。モデル学習の原動力となる モデル学習の原動力として機能し、モデル内部の重みとバイアスを繰り返し調整する。 モデルの重みとバイアスを反復的に調整し、誤差を最小化する。 最小化するために、モデル内部の重みとバイアスを調整する。従来の データセット全体を処理して1回の更新を計算する従来の勾配降下法とは異なり、SGD 、一度にランダムに選択された1つの訓練例のみを使用してモデルパラメータを変更します。 を変更する。この「確率的」またはランダムなアプローチ により、このアルゴリズムは計算効率が高く、スケーラビリティに優れている。 一度に全データセットを処理することはメモリに負荷がかかる。 を一度に処理することは、メモリの制約上不可能である。

確率的勾配降下法はどのように機能するか

ニューラルネットワークをトレーニングする第一の目的は 複雑な誤差をナビゲートして、最も精度の高い最低点を見つけることです。SGD これを を繰り返す。まず、バックプロパゲーションを使用して、特定のサンプルの勾配 (誤差が最も急峻に増加する方向) を計算します。 計算する。次に 重みを逆方向に更新して誤差を減らす。

このステップの大きさは、次のように制御される。 学習率によって制御される。 によって制御される。SGD 単一サンプルを使用するため は単一サンプルを使用するため、最小値への経路は直線ではなくノイズが多くジグザグになる。このノイズは このノイズは、モデルが局所極小-非ストキャスティック・アルゴリズムが行き詰まる可能性のある準最適解-から脱出するのを助けるので、有益なことが多い。 より良い大域解を見つけることができる。このプロセスは エポック、つまりデータセットを完全に通過するまで、このプロセスが繰り返される。 モデルは収束する。数学的な直観は スタンフォードCS231n最適化ノートを参照してください。

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

SGD 関連概念とどのように異なるかを理解することは、トレーニングデータに適した戦略を選択するために不可欠である。 選択するために不可欠である。

  • バッチ勾配降下 この方法は、ステップごとにデータセット全体を使って勾配を計算する。安定した誤差曲線が得られる、 非常に遅く、大規模なデータセットでは計算コストがかかる。
  • ミニバッチ勾配降下法:実際には 実際には、次のようなフレームワークにおけるSGD」実装のほとんどは、SGDミニバッチ勾配降下」SGDある。 PyTorchのようなフレームワークにおける "SGD "実装のほとんどは、実際にはミニバッチを使用します。このアプローチでは パラメータを更新する方法です。これは、SGDの計算効率とバッチ処理の安定性のバランスをとるものです。 SGD 計算効率とバッチ処理の安定性を両立させています。
  • Adam オプティマイザー Adam アルゴリズムは、各パラメータに適応学習率を導入することでSGD 拡張する。Adam 方が早く収束することが多い、 SGD 方が収束が速いことが多いが、コンピュータ・ビジョンのタスクでは、より良い汎化を達成し、オーバーフィッティングを避けるために、モーメンタムを用いたSGD 好まれることがある。 オーバーフィッティングを避けるためです。

実際のアプリケーション

SGD その亜種は、さまざまな業界において最新のAIシステムをトレーニングするための標準となっている。

  1. リアルタイムの物体検出:のような高性能モデルをトレーニングする場合 Ultralytics YOLO11のような高性能モデルを ような高性能モデルを学習させる場合、オプティマイザは のようなデータセットから何千枚もの画像を処理しなければならない。 COCO.SGD により、モデルはエッジや物体形状などの特徴を迅速に学習することができます。確率的な性質は、モデル のようなセーフティ・クリティカルなアプリケーションにとって極めて重要である。 多様な気象条件下で歩行者を検出する自律走行車 のようなセーフティクリティカルなアプリケーションにとって極めて重要である。
  2. 自然言語処理(NLP):トレーニング 大規模言語モデル(LLM)の学習には 何十億もの単語を含むデータセット。一度にすべてのデータをメモリにロードすることは不可能です。SGD モデルは、文法、文脈 センチメント分析を段階的に学習できる。この この効率性は、洗練された バーチャルアシスタントや翻訳ツールの開発をサポートする。

Ultralytics SGD 実装

について 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 ロバストな実装も提供している。 も提供している。

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

AIの未来を共に切り開きましょう。グローバルなイノベーターと繋がり、協力し、成長を。

今すぐ参加