Online Learning
オンライン学習がモデルの段階的な更新を可能にし、コンセプトドリフトに適応し、Ultralytics YOLO26によるより安全なコンピュータービジョンワークフローを支える方法を学びます。
オンライン学習は、固定されたデータセットで一度だけトレーニングするのではなく、新しい例が到着するたびにモデルを段階的に更新する機械学習アプローチです。この用語は、インターネットを利用した教育ではなく、ストリーミングまたは逐次的なモデル更新を指します。オンライン学習器は、scikit-learnのオンライン学習の定義で説明されているように、各サンプルまたは小規模なバッチの後に予測、フィードバックの受信、更新を実行できます。このため、データが継続的に発生する場合、メモリに収まらない場合、または時間の経過とともに変化する場合に有用です。(scikit-learn.org)
オンライン学習の仕組み#
一般的なサイクルは次のとおりです:
- モデルが新しい入力を受け取り、予測を実行します。
- ラベルまたはフィードバック信号が利用可能になります。
- 損失が計算され、モデルパラメーターが更新されます。
- 次の例を処理する前に、パフォーマンスが測定されます。
ストリーミング機械学習向けのRiverなどのライブラリは、predict_one()やlearn_one()などのメソッドを使用して、この予測してから学習するワークフローを実装します。ニューラルネットワークでも、同じ原則をPyTorchオプティマイザーステップの繰り返しによって利用できますが、ディープモデルでは計算効率のため、通常は小規模なバッチ単位で更新します。(docs.pytorch.org)
オンライン学習は、入力と出力の関係が変化する概念ドリフトの状況で特に有用です。例として、季節による交通パターン、変化する顧客行動、新たな製造上の欠陥、異なる照明条件の下に設置されたカメラなどが挙げられます。2024年の再発する概念ドリフトに関するサーベイでは、天候や時刻などの再発する条件に対応するため、システムが過去に遭遇した分布を認識して適応する必要があることが強調されています。(ijcai.org)
コンピュータービジョンにおけるオンライン学習#
Ultralytics YOLOは、推論中にフレームごとの制御されていない重み更新を実行しません。その代わりに、チームは、最近のラベル付きデータと過去の例を混合したデータに対して、定期的なマイクロバッチファインチューニングを行うことで、安全なオンライン学習を近似できます:
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
model.train(data="coco8.yaml", epochs=3, imgsz=640, lr0=0.001)この実行可能な例では、Ultralytics YOLO26と、文書化されているYOLOのトレーニングモードを使用して、学習率を低く設定した小規模な更新を実行します。本番環境では、coco8.yamlを、最近のサンプルとリプレイされたサンプルを含むバージョン管理されたデータセットに置き換えます。
具体的な用途には次のようなものがあります:
- 製造業の外観検査: 新しい製品、材料、または欠陥の種類が現れたときにモデルを更新します。
- 自動運転車の認識: 検出システムが、変化する道路、天候、カメラ条件、物体分布に適応します。
- 小売在庫管理: 完全な再トレーニングを必要とせずに、モデルが新しいパッケージや季節商品を学習します。
関連概念と主な違い#
継続学習は、より広い概念です。以前の知識を保持しながら、タスクやドメインにまたがって学習することを目指します。オンライン学習は、更新がいつ、どの程度の頻度で行われるかを表します。一方、アクティブラーニングは人間によるラベリングに最も有益な例を選択し、転移学習は事前学習済みの知識を対象タスクに適応させます。
共通する大きな課題の1つは破滅的忘却です。最近の研究には、2024年のBECoTTAによる継続的なテスト時適応、2025年のランク付きエントロピー最小化、2026年のPLASTIC安定性・可塑性手法があり、モデルの崩壊や以前の能力の喪失を避けながら効率的に適応する方法を検討しています。(proceedings.mlr.press)
現在のベストプラクティス#
- データドリフトを監視: 入力分布、信頼度、精度、クラス頻度を追跡します。
- リプレイデータを保持: 忘却を軽減するため、代表的な過去のサンプルを新しいデータと混合します。
- デプロイ前に検証: 更新したモデルを、安定したホールドアウトテストセットおよび最近のデータによるテストセットと比較します。
- ワークフロー全体をバージョン管理: Ultralytics Platformを使用して、アノテーション、データセット、トレーニング、デプロイ、モニタリングを管理します。
- ラベルのないドリフトを検出: ラベルの到着が遅れる場合は、精度の測定を待つのではなく、特徴量分布と予測動作を監視します。(dfki.de)






