コンテンツぞスキップ

機械孊習のベストプラクティスずモデルトレヌニングのヒント

はじめに

コンピュヌタ・ビゞョンのプロゞェクトで最も重芁なステップの1぀は、モデルのトレヌニングです。このステップに到達する前に、目暙を定矩し、デヌタを収集し、泚釈を付ける必芁がありたす。デヌタの前凊理を行い、デヌタがクリヌンで䞀貫性があるこずを確認したら、モデルのトレヌニングに移りたす。



芋るんだ モデルトレヌニングのヒント倧芏暡デヌタセットの扱い方バッチサむズ、GPU 利甚率、そしお ミックスド・プレシゞョン

では、モデルのトレヌニングずは䜕でしょうかモデルのトレヌニングずは、芖芚的なパタヌンを認識し、デヌタに基づいお予枬を行うようにモデルを教えるプロセスです。これは、アプリケヌションのパフォヌマンスず粟床に盎接圱響したす。このガむドでは、コンピュヌタビゞョンモデルを効果的にトレヌニングするためのベストプラクティス、最適化テクニック、トラブルシュヌティングのヒントに぀いお説明したす。

機械孊習モデルのトレヌニング方法

コンピュヌタ・ビゞョンのモデルは、誀差が最小になるように内郚パラメヌタを調敎するこずで孊習される。最初に、モデルにはラベル付けされた倧量の画像セットが䞎えられる。これらの画像に䜕が写っおいるか予枬し、予枬倀を実際のラベルや内容ず比范しお誀差を蚈算する。この誀差は、モデルの予枬が真の倀からどれだけずれおいるかを瀺す。

孊習䞭、モデルは繰り返し予枬を行い、誀差を蚈算し、バックプロパゲヌションず呌ばれるプロセスを通じおパラメヌタを曎新する。この過皋で、モデルは誀差を枛らすために内郚パラメヌタ (weights and biases) を調敎する。このサむクルを䜕床も繰り返すこずで、モデルは埐々に粟床を高めおいく。そのうちに、圢状、色、テクスチャなどの耇雑なパタヌンを認識できるようになる。

バックプロパゲヌションずは

この孊習プロセスにより、コンピュヌタビゞョンモデルは、物䜓怜出、むンスタンス分割、画像分類など、さたざたなタスクを実行できるようになる。最終的な目暙は、実䞖界のアプリケヌションで芖芚デヌタを正確に理解できるように、新しい未芋の画像に孊習を汎化できるモデルを䜜成するこずである。

モデルをトレヌニングするずきに舞台裏で䜕が起こっおいるかがわかったずころで、モデルをトレヌニングするずきに考慮すべき点を芋おみよう。

倧芏暡デヌタセットでのトレヌニング

倧芏暡なデヌタセットを䜿っおモデルを孊習する堎合、いく぀かの異なる偎面に぀いお考える必芁がある。䟋えば、バッチ・サむズの調敎、GPU の利甚率のコントロヌル、マルチスケヌル孊習の遞択などである。それぞれのオプションに぀いお詳しく説明しよう。

バッチサむズずGPU 利甚率

倧芏暡なデヌタセットでモデルをトレヌニングする堎合、GPU を効率的に利甚するこずが鍵ずなる。バッチ・サむズは重芁な芁玠である。これは、機械孊習モデルが1回のトレヌニング反埩で凊理するデヌタサンプルの数です。 GPU でサポヌトされおいる最倧バッチ・サむズを䜿甚すれば、その機胜をフルに掻甚し、モデル孊習にかかる時間を短瞮するこずができたす。ただし、GPU のメモリ䞍足は避けたい。メモリ・゚ラヌが発生した堎合は、モデルがスムヌズにトレヌニングできるたで、バッチ・サむズを段階的に小さくしおください。

YOLO11 に関しおは、次のように蚭定できる。 batch_size パラメヌタを トレヌニング構成 をGPU の容量に合わせる。たた batch=-1 を自動的に決定したす。 バッチサむズ バッチサむズを埮調敎するこずで、 のリ゜ヌスを最倧限に掻甚し、トレヌニングプロセス党䜓を改善するこずができたす。バッチサむズを埮調敎するこずで、GPU のリ゜ヌスを最倧限に掻甚し、トレヌニングプロセス党䜓を改善するこずができたす。

サブセット・トレヌニング

サブセットトレヌニングは、より倧きなデヌタセットを衚すより小さなデヌタセットでモデルをトレヌニングする賢い戊略です。特に初期のモデル開発ずテストにおいお、時間ずリ゜ヌスを節玄するこずができたす。時間がない堎合、たたは様々なモデル構成を詊しおいる堎合、サブセットトレヌニングは良い遞択肢です。

YOLO11 、サブセット・トレヌニングを簡単に実装できる。 fraction パラメヌタで指定したす。このパラメヌタで、孊習に䜿甚するデヌタセットの割合を指定できたす。䟋えば fraction=0.1 は、デヌタの10%でモデルをトレヌニングしたす。完党なデヌタセットを䜿っおモデルをトレヌニングする前に、このテクニックを䜿っおモデルを玠早く反埩し、チュヌニングするこずができたす。サブセットトレヌニングは、迅速な進捗ず朜圚的な問題の早期発芋に圹立ちたす。

マルチスケヌルトレヌニング

マルチスケヌルトレヌニングは、様々なサむズの画像でトレヌニングするこずで、モデルの汎化胜力を向䞊させるテクニックです。モデルは異なるスケヌルや距離の物䜓を怜出するこずを孊習し、よりロバストになりたす。

䟋えば、YOLO11 をトレヌニングする堎合、以䞋のように蚭定するこずで、マルチスケヌル・トレヌニングを有効にするこずができる。 scale パラメヌタを䜿甚したす。このパラメヌタは、トレヌニング画像のサむズを指定された係数で調敎し、異なる距離のオブゞェクトをシミュレヌトしたす。䟋えば scale=0.5 は画像サむズを半分に瞮小する。 scale=2.0 は2倍になりたす。このパラメヌタを蚭定するこずで、モデルはさたざたな画像スケヌルを経隓し、さたざたなオブゞェクトのサむズやシナリオにわたっお怜出胜力を向䞊させるこずができたす。

キャッシング

キャッシングは、機械孊習モデルの孊習効率を向䞊させるための重芁なテクニックである。前凊理された画像をメモリに保存するこずで、GPU 、ディスクからデヌタがロヌドされるたでの埅ち時間が短瞮される。モデルは、ディスクI/O操䜜による遅延なしに継続的にデヌタを受け取るこずができる。

YOLO11 。 cache パラメヌタが必芁だ

  • cache=True:デヌタセットの画像をRAMに保存し、最速のアクセス速床を提䟛するが、その代償ずしおメモリ䜿甚量が増加する。
  • cache='disk':RAMより遅いが、毎回新しいデヌタを読み蟌むより速い。
  • cache=False:キャッシュを無効にし、完党にディスクI/Oに䟝存したす。

ミックス粟密トレヌニング

混合粟床トレヌニングでは、16 ビットFP16ず 32 ビットFP32の浮動小数点型を䜿甚したす。FP16ずFP32の䞡方の長所は、FP16を䜿甚しお蚈算を高速化し、FP32を䜿甚しお必芁な郚分の粟床を維持するこずで掻甚されたす。ニュヌラル・ネットワヌクのほずんどの挔算は FP16 で行われ、蚈算の高速化ずメモリ䜿甚量の䜎枛を実珟しおいたす。しかし、モデルの重みのマスタヌコピヌはFP32で保持され、重みの曎新ステップ䞭の粟床を保蚌したす。同じハヌドりェア制玄の䞭で、より倧きなモデルやより倧きなバッチサむズを扱うこずができたす。

ミックスド・プレシゞョン・トレヌニングの抂芁

混合粟床孊習を実装するには、孊習スクリプトを修正し、ハヌドりェアGPUなどがそれをサポヌトしおいるこずを確認する必芁がある。䟋えば Tensorflowなど、倚くの最新のディヌプラヌニング・フレヌムワヌクは、混合粟床をビルトむンでサポヌトしおいたす。

混合粟床トレヌニングは、YOLO11 を䜿えば簡単です。 amp フラグを蚭定したす。蚭定 amp=True は、自動混合粟床AMPトレヌニングを可胜にしたす。混合粟床トレヌニングは、モデルトレヌニングプロセスを最適化するシンプルで効果的な方法です。

事前に蚓緎されたりェむト

事前孊習枈みの重みを䜿甚するこずは、モデルの孊習プロセスをスピヌドアップする賢い方法です。事前蚓緎された重みは、すでに倧芏暡なデヌタセットで蚓緎されたモデルから埗られたものであり、モデルに先手を䞎えたす。転移孊習は、事前に蚓緎されたモデルを新しい関連タスクに適応させたす。事前蚓緎されたモデルを埮調敎するには、これらの重みから開始し、特定のデヌタセットで蚓緎を続けたす。この孊習方法では、モデルが基本的な特城をしっかりず理解した状態で孊習を開始するため、孊習時間が短瞮され、パフォヌマンスが向䞊するこずがよくありたす。

に぀いお pretrained パラメヌタを䜿甚するず、YOLO11 で移籍孊習を簡単に行うこずができたす。蚭定 pretrained=True はデフォルトの事前孊習枈み重みを䜿甚したすが、カスタム事前孊習枈みモデルぞのパスを指定するこずもできたす。事前孊習枈みの重みず転移孊習を䜿甚するこずで、モデルの胜力を効果的に高め、孊習コストを削枛するこずができたす。

倧芏暡デヌタセットを扱う際に考慮すべきその他のテクニック

倧芏暡なデヌタセットを扱う際に考慮すべきテクニックは他にもいく぀かある

  • 孊習率スケゞュヌラヌ:孊習率スケゞュヌラを実装するこずで、孊習䞭に孊習率を動的に調敎するこずができる。孊習率をうたく調敎するこずで、モデルのオヌバヌシュヌトを防ぎ、安定性を向䞊させるこずができる。YOLO11 を孊習するずき lrf パラメヌタは、最終的な孊習レヌトを初期レヌトの䜕分の䞀かに蚭定するこずで、孊習レヌトのスケゞュヌリングを管理するのに圹立぀。
  • 分散トレヌニング倧芏暡なデヌタセットを扱う堎合、分散トレヌニングは倧きな倉化をもたらす。トレヌニングのワヌクロヌドを耇数のGPUやマシンに分散するこずで、トレヌニング時間を短瞮できたす。

トレヌニングする゚ポックの数

モデルをトレヌニングする際、゚ポックずはトレヌニングデヌタセット党䜓を1回完党に通過するこずを指す。゚ポックの間、モデルはトレヌニングセットの各䟋を1回ず぀凊理し、孊習アルゎリズムに基づいおパラメヌタを曎新したす。モデルが時間をかけお孊習し、パラメヌタを改良するためには、通垞、耇数の゚ポックが必芁である。

よくある質問は、モデルを蚓緎する゚ポック数をどのように決定するかずいうこずです。良いスタヌトポむントは300゚ポックです。モデルが早期にオヌバヌフィットした堎合は、゚ポック数を枛らすこずができたす。300゚ポックを超えおもオヌバヌフィットが発生しない堎合は、600、1200、たたはそれ以䞊の゚ポックたで孊習を延長するこずができたす。

しかし、理想的な゚ポック数は、デヌタセットのサむズやプロゞェクトの目暙によっお異なりたす。より倧きなデヌタセットでは、モデルを効果的に孊習させるために、より倚くの゚ポックが必芁になるかもしれたせんし、より小さなデヌタセットでは、オヌバヌフィッティングを避けるために、より少ない゚ポックが必芁になるかもしれたせん。YOLO11 に関しおは epochs パラメヌタを䜿甚したす。

アヌリヌストッピング

早期停止は、モデルのトレヌニングを最適化するための貎重なテクニックです。怜蚌のパフォヌマンスを監芖するこずで、モデルの改善が止たったらトレヌニングを停止するこずができたす。蚈算リ゜ヌスを節玄し、オヌバヌフィッティングを防ぐこずができたす。

このプロセスでは、トレヌニングを停止する前に、怜蚌メトリクスの改善を䜕゚ポック埅぀かを決定する忍耐パラメヌタを蚭定する。この゚ポック数内にモデルのパフォヌマンスが向䞊しない堎合、時間ずリ゜ヌスの浪費を避けるためにトレヌニングが停止されたす。

アヌリヌストッピングの抂芁

YOLO11 の堎合、トレヌニング蚭定でpatienceパラメヌタを蚭定するこずで、早期停止を有効にするこずができたす。䟋えば patience=5 ぀たり、5゚ポック連続で怜蚌メトリクスの改善が芋られない堎合、トレヌニングは停止する。この方法を䜿甚するこずで、孊習プロセスを効率的に維持し、過剰な蚈算を行うこずなく最適なパフォヌマンスを達成するこずができたす。

クラりドずロヌカルトレヌニングの遞択

モデルのトレヌニングには、クラりドトレヌニングずロヌカルトレヌニングの2぀のオプションがある。

クラりドトレヌニングはスケヌラビリティず匷力なハヌドりェアを提䟛し、倧芏暡なデヌタセットや耇雑なモデルを扱うのに理想的です。Google Cloud、AWS、Azureのようなプラットフォヌムは、高性胜GPUやTPUぞのオンデマンドアクセスを提䟛し、トレヌニング時間を短瞮し、より倧きなモデルの実隓を可胜にする。しかし、クラりド・トレヌニングは、特に長期間の堎合、コストが高くなる可胜性があり、デヌタ転送はコストずレむテンシヌを増加させる可胜性がある。

ロヌカル・トレヌニングは、より倧きなコントロヌルずカスタマむズが可胜で、特定のニヌズに合わせお環境をカスタマむズし、継続的なクラりドコストを回避するこずができたす。長期的なプロゞェクトではより経枈的で、デヌタはオンプレミスに保存されるため、より安党です。しかし、ロヌカルのハヌドりェアにはリ゜ヌスの制限があり、メンテナンスが必芁な堎合がありたす。

オプティマむザヌの遞択

オプティマむザは、モデルの性胜を枬定する損倱関数を最小化するために、 ニュヌラルネットワヌクの重みを調敎するアルゎリズムです。もっず簡単に蚀えば、オプティマむザは誀差を枛らすためにパラメヌタを調敎するこずで、 モデルの孊習を支揎したす。適切なオプティマむザを遞択するこずは、モデルの孊習の速さず正確さに盎接圱響したす。

たた、モデルのパフォヌマンスを向䞊させるために、オプティマむザ・パラメヌタを埮調敎するこずもできたす。孊習率を調敎するこずで、パラメヌタを曎新する際のステップの倧きさを蚭定したす。安定性を保぀ために、最初は䞭皋床の孊習率に蚭定し、長期的な孊習を改善するために、時間の経過ずずもに埐々に䜎䞋させるこずができたす。さらに、モメンタムを蚭定するこずで、過去の曎新が珟圚の曎新に䞎える圱響床を決定したす。モメンタムの䞀般的な倀は0.9皋床である。これは䞀般的に良いバランスを提䟛する。

䞀般的なオプティマむザヌ

さたざたなオプティマむザヌには、さたざたな長所ず短所がありたす。䞀般的なオプティマむザヌをいく぀か芋おみよう。

  • SGD確率的募配降䞋法

    • パラメヌタに察する損倱関数の募配を䜿甚しおモデルパラメヌタを曎新する。
    • シンプルで効率的だが、収束に時間がかかり、ロヌカル・ミニマムにはたり蟌む可胜性がある。
  • アダム適応モヌメント掚定

    • モメンタム付きSGDずRMSPropの䞡方の利点を兌ね備えおいる。
    • 募配の1次モヌメントず2次モヌメントの掚定倀に基づいお、各パラメヌタの孊習率を調敎する。
    • ノむズの倚いデヌタや疎な募配に適しおいる。
    • 効率的で、䞀般的にチュヌニングが少なくお枈むので、YOLO11 にお勧めのオプティマむザです。
  • RMSProp (二乗平均平方根䌝播)

YOLO11 optimizer パラメヌタでは、SGD、Adam、AdamW、NAdam、RAdam、RMSProp などのさたざたなオプティマむザから遞択できたす。 auto モデル構成に基づく自動遞択のため。

地域瀟䌚ずの぀ながり

コンピュヌタ・ビゞョン愛奜家のコミュニティに参加するこずで、問題を解決し、より速く孊ぶこずができたす。ここでは、぀ながり、助けを埗、アむデアを共有する方法をいく぀か玹介したす。

地域資源

  • GitHub Issues YOLO11 GitHub リポゞトリにアクセスし、Issues タブで質問やバグ報告、新機胜の提案を行っおください。コミュニティずメンテナヌはずおも掻発で、手助けする準備ができおいたす。
  • Ultralytics Discordサヌバヌ Ultralytics Discord サヌバヌに参加しお、他のナヌザヌや開発者ずチャットしたり、サポヌトを受けたり、経隓を共有したしょう。

公匏文曞

  • Ultralytics YOLO11 ドキュメント様々なコンピュヌタビゞョンプロゞェクトに関する詳现なガむドや圹立぀ヒントに぀いおは、 YOLO11 の公匏ドキュメントをご芧ください。

これらのリ゜ヌスを䜿甚するこずで、課題を解決し、コンピュヌタビゞョンコミュニティにおける最新のトレンドやプラクティスを垞に把握するこずができたす。

芁点

コンピュヌタビゞョンモデルのトレヌニングには、優れたプラクティスに埓うこず、戊略を最適化するこず、問題が発生したずきに解決するこずが含たれたす。バッチサむズの調敎、混合粟床トレヌニング、事前トレヌニング枈みの重みからの開始などのテクニックは、モデルをより良く動䜜させ、より速くトレヌニングするこずができたす。サブセット孊習や早期停止などの手法は、時間ずリ゜ヌスの節玄に圹立ちたす。コミュニティずの぀ながりを維持し、新しいトレンドに぀いおいくこずは、モデルトレヌニングのスキルを向䞊させ続けるのに圹立ちたす。

よくあるご質問

Ultralytics YOLO で倧芏暡なデヌタセットをトレヌニングする際、GPU の利甚率を向䞊させるには

GPU 。 batch_size パラメヌタを、GPU がサポヌトする最倧サむズに蚭定したす。これにより、GPU の機胜をフルに掻甚し、トレヌニング時間を短瞮するこずができたす。メモリ゚ラヌが発生した堎合は、トレヌニングがスムヌズに実行されるたで、バッチサむズを埐々に小さくしおください。YOLO11 の堎合 batch=-1 をトレヌニングスクリプトに远加するず、効率的な凊理のための最適なバッチサむズが自動的に決定されたす。詳现に぀いおは トレヌニング構成.

ミックスド・プレシゞョン・トレヌニングずは䜕ですかたた、YOLO11 。

混合粟床トレヌニングは、蚈算速床ず粟床のバランスをずるために、16ビットFP16ず32ビットFP32の䞡方の浮動小数点型を利甚したす。このアプロヌチは、モデルを犠牲にするこずなく、トレヌニングを高速化し、メモリ䜿甚量を削枛したす。 粟床.YOLO11 で混合粟床トレヌニングを有効にするには、次のように蚭定したす。 amp パラメヌタを True をトレヌニング蚭定に远加したす。これにより、Automatic Mixed PrecisionAMPトレヌニングが有効になりたす。この最適化手法の詳现に぀いおは トレヌニング構成.

マルチスケヌルトレヌニングは、YOLO11 モデルの性胜をどのように向䞊させるのか

マルチスケヌルトレヌニングは、様々なサむズの画像でトレヌニングを行うこずで、モデルのパフォヌマンスを向䞊させ、モデルが様々なスケヌルや距離でより良く䞀般化できるようにしたす。YOLO11 で scale パラメヌタを䜿甚する。䟋えば scale=0.5 は画像サむズを半分に瞮小する。 scale=2.0 倍にする。このテクニックは、さたざたな距離のオブゞェクトをシミュレヌトし、モデルをさたざたなシナリオに察しおよりロバストにする。蚭定や詳现に぀いおは トレヌニング構成.

YOLO11 、事前孊習された重みを䜿甚しおトレヌニングを高速化するにはどうすればよいですか

事前にトレヌニングされた重みを䜿甚するこずで、トレヌニング時間を倧幅に短瞮し、基本的な特城をすでに理解しおいるモデルから始めるこずで、モデルのパフォヌマンスを向䞊させるこずができたす。YOLO11 では pretrained パラメヌタを True たたは、トレヌニング蚭定にカスタム事前トレヌニング重みぞのパスを指定したす。転移孊習ずしお知られるこのアプロヌチでは、倧芏暡なデヌタセットからの知識を掻甚しお、特定のタスクに適応させたす。事前孊習された重みずその利点に぀いおもっず知る これ.

゚ポック数ずは、モデル孊習䞭に孊習デヌタセットを完党に通過する回数のこずである。兞型的な開始点は300゚ポックです。モデルが早期にオヌバヌフィットした堎合は、この数を枛らすこずができたす。たた、オヌバヌフィッティングが芋られない堎合は、600、1200、たたはそれ以䞊の゚ポック数たで孊習を延長するこずもできたす。この蚭定はYOLO11 で epochs パラメヌタを䜿甚したす。理想的な゚ポック数の決定に関するその他のアドバむスに぀いおは、以䞋のセクションを参照しおください。 ゚ポック数.

📅䜜成5ヶ月前 ✏曎新したした 1ヶ月前

コメント