Optimization Algorithm
SGDやAdamWのような最適化アルゴリズムがMLトレーニングをどのように推進するかを発見します。AIアプリケーションにおいて、損失を最小化しUltralytics YOLO26のパフォーマンスを向上させる方法を学びましょう。
最適化アルゴリズムは、機械学習(ML)およびディープラーニング(DL)モデルのトレーニングプロセスを駆動する中心的な計算エンジンです。その主な役割は、内部のモデル重みとバイアスを反復的に調整し、予測結果と実際のターゲットとの間の誤差を最小化することです。このプロセスは、霧深い山を降りて谷の最低地点にたどり着こうとするハイカーの姿に例えることができます。最適化アルゴリズムはガイドの役割を果たし、損失関数が最小化され、モデルの予測精度が最大化される状態に到達するために、ハイカーがとるべきステップの方向と大きさを決定します。
Link to this section最適化アルゴリズムの仕組み#
ニューラルネットワーク(NN)のトレーニングには、予測、誤差計算、パラメーター更新という反復サイクルが含まれます。最適化アルゴリズムは、このループの「更新」フェーズを制御します。トレーニングデータのバッチが処理されると、システムはバックプロパゲーションと呼ばれる手法を使用して、誤差の増加が最も急激な方向を示すベクトルである勾配を計算します。
次にオプティマイザーは、誤差を減らすために、勾配とは逆の方向にモデルパラメーターを更新します。この更新の大きさは、学習率と呼ばれる重要なハイパーパラメーターによって決定されます。ステップが大きすぎると、モデルはグローバルミニマムを飛び越えてしまう可能性があり、小さすぎるとトレーニングが極端に遅くなったり、ローカルミニマムから抜け出せなくなったりすることがあります。Stanford CS231n optimization notesのような高度なリソースは、これらのダイナミクスに関するより深い技術的洞察を提供しています。
Link to this section一般的な最適化アルゴリズムの種類#
問題が異なれば、必要な戦略も異なります。多くのバリエーションがありますが、現代のAI開発において主流となっている主要なアルゴリズムをいくつか紹介します。
- Stochastic Gradient Descent (SGD): データセット全体ではなく、単一のサンプルや小さなバッチを使用してパラメーターを更新する古典的なアプローチです。この手法は計算効率が高く、Scikit-learnのようなライブラリで広く使用されています。
- Adam Optimizer: Adaptive Moment Estimationの略であるAdamは、各パラメーターに対して個別に学習率を調整します。これはKingmaとBaによるAdamの研究論文で詳述されており、その速度と収束性の高さから、汎用的なトレーニングにおいてデフォルトの選択肢となることがよくあります。
- AdamW: Adamのバリエーションで、ウェイトディケイを勾配更新から分離することで、汎化性能を向上させます。これはTransformerや高性能なUltralytics YOLO26モデルなどの最先端アーキテクチャのトレーニングにおいて、頻繁に推奨されるオプティマイザーです。
Link to this section実社会での応用#
最適化アルゴリズムは、ほぼすべての成功したAIソリューションの舞台裏で静かに動作し、データを実用的なインテリジェンスに変換しています。
-
自動運転車: 自動運転技術において、物体検出システムは歩行者、信号機、その他の車を瞬時に認識する必要があります。AI in Automotive向けにこれらのシステムをトレーニングする際、最適化アルゴリズムは数百万枚の道路画像を処理し、ネットワークを微調整して検出誤差を最小限に抑えます。これにより、車は歩行者を検知した際に確実に停止し、事故を未然に防ぐことができます。
-
医療画像解析: MRIスキャンにおける腫瘍の識別など、AI in Healthcareのアプリケーションでは、精度に妥協は許されません。オプティマイザーは、畳み込みニューラルネットワーク(CNN)のトレーニングを誘導し、悪性組織と健康な組織を高い感度で識別できるようにすることで、重要な診断における偽陰性のリスクを低減させます。
Link to this section関連概念の区別#
ワークフローを効果的に理解するためには、学習プロセスの他の構成要素と最適化アルゴリズムを区別することが重要です。
- 最適化アルゴリズム対損失関数: 損失関数は「スコアボード」として機能し、モデルの予測がどれほど間違っているかを表す数値(平均二乗誤差など)を計算します。最適化アルゴリズムは、そのスコアを使用して重みを調整し、次のラウンドでパフォーマンスを向上させる「戦略家」です。
- 最適化アルゴリズム対ハイパーパラメーターチューニング: 最適化アルゴリズムは、トレーニングループの「中」で内部パラメーター(重み)を学習します。ハイパーパラメーターチューニングは、オプティマイザー自体の選択、バッチサイズ、初期学習率といった最適な外部設定を、トレーニングを開始する「前」に選ぶ作業です。Ray Tuneのような自動化ツールは、これらの外部設定の最適な組み合わせを見つけるためによく使用されます。
Link to this sectionPythonでの最適化の実装#
In modern frameworks, selecting an optimization algorithm is often done via a single argument. The following example demonstrates how to train a YOLO26 model using the AdamW optimizer within the ultralytics package. Users can also leverage the Ultralytics Platform for a no-code approach to managing these training sessions.
from ultralytics import YOLO
# Load the latest YOLO26 model (recommended for new projects)
model = YOLO("yolo26n.pt")
# Train the model using the 'AdamW' optimization algorithm
# The optimizer iteratively updates weights to minimize loss on the dataset
results = model.train(data="coco8.yaml", epochs=5, optimizer="AdamW")より低レベルなメカニズムに関心がある場合は、PyTorch OptimizersやTensorFlow Keras Optimizersのようなフレームワークが、カスタム研究アーキテクチャ向けにこれらのアルゴリズムを実装およびカスタマイズする方法について詳細なドキュメントを提供しています。






