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

コールバック

機械学習におけるコールバックの本質的な役割について解説します。コールバックは、精度、柔軟性、効率を向上させるために、モデルのトレーニングを監視、制御、自動化するツールです。

機械学習(ML)において、コールバックとは次のようなものである。 計算処理の特定の段階で自動的に実行されるように設計された汎用的な関数またはコードのブロックです。例えば ニューラルネットワーク(NN)の学習の文脈では コールバックは学習ライフサイクルと連動する「フック」の役割を果たす。 トレーニング・ライフサイクルと相互作用する「フック」として機能します、 中間結果を保存したり、制御パラメータを調整したりします。これらの補助タスクをメインの ループから切り離すことで、開発者はコアアルゴリズムを変更することなく、モジュール化され、読みやすく、高度にカスタマイズ可能なワークフローを作成することができます。 アルゴリズムを作成することができます。

コールバックの機能

一般的な学習プロセスでは、エポックと呼ばれる一定回数 繰り返す。このサイクルの間 システムはフォワード・パスで予測を行い バックプロパゲーション モデルの重みを更新する。コールバックは事前に定義された 「例えば、トレーニングの開始、バッチの終了、エポックの完了などである。

Ultralytics ようなフレームワークのTrainerオブジェクトは、これらのイベントを管理する。 がこれらのイベントを管理します。特定のイベントが発生すると、Trainerは登録されているコールバック関数を実行し、モデルの現在の状態を渡します。 モデルの現在の状態を渡します。このメカニズムは最新の MLOpsの基本であり、リアルタイムの 観測と自動介入が可能になります。

AIにおける一般的なアプリケーション

コールバックは、ディープラーニング(DL)のパフォーマンスとリソース使用を最適化するために不可欠である。 ディープラーニング(DL)のパフォーマンスとリソースの使用を最適化するために不可欠です。

  • 早めのストップ最も重要な 最も重要な用途の1つはオーバーフィッティングの防止である。早期停止 停止コールバックは 監視します。モデルのパフォーマンスが コールバックは直ちに学習を停止し、時間とクラウド・コンピューティング・コストを節約します。 クラウドコンピューティングのコストを削減します。
  • 動的学習率スケジューリング: 最適化アルゴリズムの 最適化アルゴリズムの である。コールバックは、プラトーが検出されたときに学習レートを下げることができ、モデルがより最適な解に落ち着くことを可能にします。 より最適な解に落ち着くことができます。
  • モデルのチェックポイント:モデルのベスト・バージョンを確実に保存するために、チェックポイント・コールバックは がシステムの状態を保存します。 平均平均精度 (mAP)、 が向上するたびにシステムの状態を保存します。これは、次のような大規模なデータセットでの長いトレーニングセッションには不可欠です。 ImageNetまたは COCO.
  • 実験のロギング:以下のような可視化ツールとの統合 TensorBoardClearMLまたは MLflowなどの可視化ツールとの統合は、コールバックを介して処理されることが多い。これらのツールは、損失曲線、システム を記録し、後の分析に備える。

カスタム・コールバックの実装

について ultralytics ライブラリは、以下のようなモデルにカスタム・コールバックをアタッチするためのわかりやすいAPIを提供する。 YOLO11.これにより、ユーザーは以下のような特定のロジックをトレーニングパイプラインに直接注入することができます。 をトレーニングパイプラインに直接注入することができます。

次の例では、各トレーニング・エポックの終了時に確認メッセージを表示する単純なコールバックを追加する方法を示します。 を追加する方法を示します:

from ultralytics import YOLO


def on_train_epoch_end(trainer):
    """Callback function to print the current epoch number after it finishes."""
    print(f"Custom Callback: Epoch {trainer.epoch + 1} completed successfully.")


# Load the YOLO11 model
model = YOLO("yolo11n.pt")

# Register the custom callback for the 'on_train_epoch_end' event
model.add_callback("on_train_epoch_end", on_train_epoch_end)

# Train the model with the registered callback
model.train(data="coco8.yaml", epochs=2)

関連概念との区別

コールバックを効果的に使うには、ソフトウェア工学やデータサイエンスにおける類似の用語と区別することが役に立つ。 サイエンスにおける類似の用語と区別するのに役立つ。

  • フック コールバック "と "フック "は同じ意味で使われることが多いが、一般的にフックとは、コード内で外部関数をアタッチできる場所(インターセプトポイント)のことを指す。 を指します。コールバックとは 関数です。
  • ハイパーパラメーターのチューニング ハイパーパラメーターのチューニング:コールバックはチューニングを容易にする(例えば、学習率スケジューラーや、以下のようなライブラリとの統合によって)。 Ray Tuneのようなライブラリとの統合によって)チューニングを容易にするが、チューニングプロセスそのものではない。 チューニングは、最適なコンフィギュレーション値を探索することを含むが、コールバックは、その探索中に変更を適用したり、進捗をモニターしたりするメカニズムである。 を監視するメカニズムである。
  • データ増強 オーグメンテーションは、ネットワークに到達する前に入力データを修正する。高度なパイプラインの中には、コールバックを使用して、オーグメンテーションの強度を動的に調整するものもある。 オーグメンテーションの強度を動的に調整する。 YOLOv5のモザイク確率など)、標準的なオーグメンテーションは通常、学習ループではなく、データローディングパイプラインの一部である の一部です。

実世界でのメリット

コールバックの使用は、より堅牢で効率的な AIエージェントとアプリケーションに直結する。例えば 自律走行車では、モデルのトレーニングに 膨大な量のセンサーデータを処理する必要がある。コールバックを使用することで、エンジニアは、手動で監視することなく、困難なエッジケースで最高のパフォーマンスを発揮するモデルを自動的にスナップショットすることができます。 を自動的にスナップショットすることができます。同様に 医療画像解析では、コールバックは モデルが汎化可能な特徴を学習するのではなく、患者データを記憶し始めた場合(オーバーフィッティング)、アラートや広範なロギングをトリガーすることができます。 一般化可能な特徴を学習するのではなく、患者データを記憶し始めた場合(オーバーフィッティング)、コールバックは警告や大規模なロギングをトリガーします。

コールバックを活用することで、次のようなフレームワークを使用している開発者は、コールバックを利用することができます。 PyTorchTensorFlowは、自己制御システムを構築することができる。 時間を節約し、エラーを減らし、コンピュータビジョン(CV)ソリューションの性能を最大化する コンピュータビジョン(CV)ソリューションを構築することができます。

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

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

今すぐ参加