YOLO26の紹介: 次世代のビジョンAI。
Ultralytics
ビジョンAI

モデル最適化とは?クイックガイド

ハイパーパラメータチューニング、モデルプルーニング、モデル量子化といったモデル最適化技術が、コンピュータビジョンモデルの効率的な実行にどのように役立つかを紹介します。

ABAbirami Vina
5 min read
コンピュータビジョンのためのモデル最適化技術

Model optimization is a process that aims to improve the efficiency and performance of machine learning models. By refining a model's structure and function, optimization makes it possible for models to deliver better results with minimal computational resources and reduced training and evaluation time.

このプロセスは、コンピュータビジョンのような分野で特に重要です。コンピュータビジョンでは、モデル複雑な画像を分析するために多大なリソースを必要とすることが多いためです。モバイルデバイスやエッジシステムのようなリソースが制限された環境では、最適化されたモデルは限られたリソースでも精度を維持しながら適切に動作できます。

モデル最適化を実現するために一般的に使用される手法として、ハイパーパラメータチューニング、モデルプルーニング、モデル量子化、混合精度などがあります。本記事では、これらの手法と、それらがコンピュータビジョンアプリケーションにもたらす利点について解説します。それでは始めましょう!

Link to this sectionモデル最適化の理解#

Computer vision models usually have deep layers and complex structures that are great for recognizing intricate patterns in images, but they can also be quite demanding in terms of processing power. When these models are deployed on devices with limited hardware, like mobile phones or edge devices, they can face certain challenges or limitations.

これらのデバイスにおける限られた処理能力、メモリ、エネルギーは、モデルが追いつかなくなることでパフォーマンスに顕著な低下をもたらす可能性があります。モデル最適化手法は、こうした懸念に対処するための鍵となります。これらの手法はモデルを合理化し、計算ニーズを削減し、限られたリソースでも効果的に機能できるようにします。モデル最適化は、モデルアーキテクチャの簡素化、計算精度の削減、または不要なコンポーネントの削除によって、モデルをより軽く高速にすることで実現できます。

モデルを最適化する理由を示す図

図1. モデルを最適化する理由。画像作成者:著者。

以下に、最も一般的なモデル最適化手法をいくつか紹介します。これらについては後続のセクションで詳しく解説します。

  • ハイパーパラメータチューニング: 学習率やバッチサイズなどのハイパーパラメータを体系的に調整し、モデルのパフォーマンスを向上させる手法です。
  • モデルプルーニング: ニューラルネットワークから不要な重みや接続を取り除き、複雑さと計算コストを削減する手法です。
  • モデル量子化: モデルの重みと活性化の精度を、通常32ビットから16ビットまたは8ビットに低減し、メモリフットプリントと計算要件を大幅に削減する手法です。
  • 精度調整: 混合精度トレーニングとも呼ばれ、モデルの各部分に異なる精度フォーマットを使用し、精度を損なうことなくリソース使用量を最適化する手法です。

Link to this section解説:機械学習モデルにおけるハイパーパラメータ#

モデルがデータからどのように学習するかを形作る設定であるハイパーパラメータを調整することで、モデルの学習とパフォーマンスを向上させることができます。ハイパーパラメータチューニングは、これらの設定を最適化し、モデルの効率と精度を改善するための手法です。モデルがトレーニング中に学習するパラメータとは異なり、ハイパーパラメータはトレーニングプロセスをガイドするための事前設定値です。

調整可能なハイパーパラメータの例をいくつか見ていきましょう。

  • 学習率: このパラメータは、モデルが内部重みを調整するために取るステップサイズを制御します。学習率を高くすると学習を加速できますが、最適な解決策を見逃すリスクがあります。一方、低い学習率はより正確になる可能性がありますが、速度は遅くなります。
  • バッチサイズ: 各トレーニングステップで処理されるデータサンプルの数を定義します。バッチサイズを大きくすると学習は安定しますが、より多くのメモリが必要になります。小さいバッチはトレーニングが高速ですが、安定性が低くなる可能性があります。
  • エポック: このパラメータを使用して、モデルが完全なデータセットを何回見るかを決定できます。エポックを増やすと精度は向上しますが、過学習のリスクがあります。
  • カーネルサイズ: 畳み込みニューラルネットワーク (CNN) におけるフィルタサイズを定義します。大きいカーネルは広範なパターンを捉えますが、より多くの処理が必要です。小さいカーネルは、より詳細な特徴に焦点を合わせます。

Link to this sectionハイパーパラメータチューニングの仕組み#

ハイパーパラメータチューニングは一般的に、各ハイパーパラメータについて取り得る値の範囲を定義することから始まります。その後、検索アルゴリズムがその範囲内で様々な組み合わせを探索し、最良のパフォーマンスを生み出す設定を特定します。

一般的なチューニング手法には、グリッドサーチ、ランダムサーチ、ベイズ最適化などがあります。グリッドサーチは、指定された範囲内の可能なあらゆる値の組み合わせをテストします。ランダムサーチはランダムに組み合わせを選択し、多くの場合、効果的な設定をより迅速に見つけます。ベイズ最適化は確率モデルを使用して、過去の結果に基づいて有望なハイパーパラメータ値を予測します。このアプローチは通常、必要な試行回数を削減します。

最終的に、ハイパーパラメータの各組み合わせに対して、モデルのパフォーマンスが評価されます。このプロセスは、望ましい結果が得られるまで繰り返されます。

Link to this sectionハイパーパラメータとモデルパラメータの比較#

ハイパーパラメータチューニングに取り組む際、ハイパーパラメータとモデルパラメータの違いが何か疑問に思うかもしれません。

ハイパーパラメータは、学習前に設定される値であり、学習率やバッチサイズなど、モデルがどのように学習するかを制御します。これらの設定は学習中に固定されており、学習プロセスに直接影響を与えます。一方、モデルパラメータは、学習中にモデル自身が学習する値です。これには重みやバイアスが含まれ、モデルの学習に合わせて調整され、最終的な予測を導き出します。要するに、ハイパーパラメータが学習の進め方を決定するのに対し、モデルパラメータはその学習プロセスの成果物と言えます。

パラメータとハイパーパラメータの比較

図2. パラメータとハイパーパラメータの比較。

Link to this sectionディープラーニングにおいてモデルプルーニングが重要である理由#

モデルプルーニングは、モデルから不要な重みやパラメータを取り除き、効率を向上させるサイズ削減手法です。コンピュータビジョン、特にディープなニューラルネットワークでは、重みや活性化(最終的な出力を計算するのに役立つ中間出力)などの膨大なパラメータが、複雑さと計算需要の両方を増加させる可能性があります。プルーニングは、パフォーマンスにほとんど貢献しないパラメータを特定して除去することでモデルを合理化し、より軽量で効率的なモデルを実現します。

モデルプルーニング前後におけるニューラルネットワークの図

図3. モデルプルーニングの前後。

モデルがトレーニングされた後、大きさベースのプルーニングや感度分析などの手法を使用して、各パラメータの重要性を評価できます。重要度の低いパラメータは、ウェイトプルーニング、ニューロンプルーニング、構造化プルーニングという3つの主要手法のいずれかを使用して除去されます。

ウェイトプルーニングは、出力への影響が最小限の個々の接続を除去します。ニューロンプルーニングは、出力がモデルの機能にほとんど寄与しないニューロン全体を削除します。構造化プルーニングは、畳み込みフィルタや全結合層のニューロンといった大きなセクションを排除し、モデルの効率を最適化します。プルーニングが完了すると、モデルは残りのパラメータを微調整するために再トレーニングされ、縮小された形式で高い精度を保持できるようになります。

Link to this section量子化によるAIモデルのレイテンシ削減#

モデル量子化は、モデルの重みと活性化を表現するために使用されるビット数を削減します。通常、高精度の32ビット浮動小数点値を16ビットや8ビットの整数のような低精度に変換します。ビット精度を削減することで、量子化はモデルサイズ、メモリフットプリント、計算コストを大幅に削減します。

コンピュータビジョンにおいて、32ビット浮動小数点数は標準ですが、16ビットや8ビットへの変換により効率が向上する可能性があります。量子化には、重み量子化と活性化量子化という2つの主要なタイプがあります。重み量子化はモデルの重みの精度を下げ、サイズ削減と精度のバランスを取ります。活性化量子化は活性化の精度を下げ、メモリと計算需要をさらに減少させます。

32ビット浮動小数点数から8ビット整数への量子化

図4. 32ビット浮動小数点から8ビット整数への量子化の例。

Link to this section混合精度がいかにAI推論を高速化するか#

混合精度は、ニューラルネットワークのさまざまな部分に対して異なる数値精度を使用する手法です。32ビット浮動小数点のような高精度値と、16ビットや8ビット浮動小数点のような低精度値を組み合わせることで、混合精度はコンピュータビジョンモデルが精度を犠牲にすることなくトレーニングを加速し、メモリ使用量を削減することを可能にします。

トレーニング中、混合精度は、ネットワーク全体で必要な場所に高精度を維持しつつ、特定の層で低精度を使用することで達成されます。これはキャスティングとロススケーリングを通じて行われます。キャスティングは、モデルの要求に応じてデータ型を異なる精度間で変換します。ロススケーリングは、数値のアンダーフローを防ぐために低精度を調整し、安定したトレーニングを保証します。混合精度は、大規模なモデルや大きなバッチサイズに特に有用です。

FP16およびFP32浮動小数点型を使用した混合精度学習

図5. 混合精度トレーニングでは、16ビット (FP16) と 32ビット (FP32) の両方の浮動小数点型を使用します。

Link to this sectionモデルの精度と効率のバランス#

これでいくつかのモデル最適化手法を解説しましたので、特定のニーズに基づいてどれを使用するかを決める方法について説明します。選択は、利用可能なハードウェアデプロイ環境の計算およびメモリの制約、および必要な精度レベルといった要因に依存します。

例えば、より小さく高速なモデルはリソースが限られたモバイルデバイスに適しており、より大きく高精度なモデルは高性能なシステムで使用できます。各手法がさまざまな目標とどのように整合するかを以下に示します。

  • プルーニング: 精度に大きな影響を与えることなくモデルサイズを削減するのに理想的で、モバイルフォンやIoT(モノのインターネット)デバイスのようなリソースが制限されたデバイスに最適です。
  • Quantization: A great option for shrinking model size and speeding up inference, particularly on mobile devices and embedded systems with limited memory and processing power. It works well for applications where slight accuracy reductions are acceptable.
  • 混合精度: 大規模モデル用に設計されたこの手法は、混合精度演算をサポートするGPUやTPUなどのハードウェアでメモリ使用量を削減し、トレーニングを加速します。これは効率が重要視される高性能タスクでよく使用されます。
  • ハイパーパラメータチューニング: 計算負荷は高いものの、医療用画像処理自動運転など、高い精度が求められるアプリケーションには不可欠です。

Link to this section重要なポイント#

モデル最適化は機械学習の重要な部分であり、特にAIを現実世界のアプリケーションにデプロイする上で不可欠です。ハイパーパラメータチューニング、モデルプルーニング、量子化、混合精度といった手法は、コンピュータビジョンモデルのパフォーマンス、効率、リソース利用を改善するのに役立ちます。これらの最適化により、モデルは高速化し、リソース消費が抑えられます。これはメモリや処理能力が限られたデバイスに最適です。最適化されたモデルは、さまざまなプラットフォーム間でのスケーリングとデプロイも容易になり、効果的かつ幅広い用途に適応可能なAIソリューションを実現します。

UltralyticsのGitHubリポジトリを訪れ、コミュニティに参加して、製造業農業におけるAIアプリケーションについて詳しく学びましょう。

Explore solutions

Real-time AI that works with your team

ロボティクスにおけるAI

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律航行、認識、物体追跡、リアルタイム制御を推進します。
詳細はこちら
Real-time AI that works with your team

物流におけるAI

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物の検査、仕分け、車両追跡、リアルタイムの倉庫安全モニタリングが可能になります。
詳細はこちら
Real-time AI that works with your team

小売業界におけるAI

Ultralytics YOLOモデルで小売を再定義しましょう。ビジョンAIは、在庫追跡、棚のモニタリング、キュー管理、そしてより賢明な顧客インサイトを促進します。
詳細はこちら
Real-time AI that works with your team

ヘルスケアにおけるAI

Ultralytics YOLOモデルを使用してヘルスケアソリューションを構築しましょう。ヘルスケア分野におけるビジョンAIは、より高速な医療画像診断、よりスマートな診断、患者モニタリングを推進します。
詳細はこちら
Real-time AI that works with your team

製造におけるAI

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPEコンプライアンス、組立ラインの自動化を促進します。
詳細はこちら
Real-time AI that works with your operation

自動車におけるAI

Ultralytics YOLOモデルを使用して、自動車分野にコンピュータビジョンを適用しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳細はこちら
Real-time AI tailored to your operation

農業におけるAI

Ultralytics YOLOモデルを使用して、スマート農業にビジョンAIを導入しましょう。作物モニタリング、家畜のトラッキング、精密農業を強化し、より高くスマートな収穫を実現します。
詳細はこちら
Real-time AI that works with your team

ロボティクスにおけるAI

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律航行、認識、物体追跡、リアルタイム制御を推進します。
詳細はこちら
Real-time AI that works with your team

物流におけるAI

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物の検査、仕分け、車両追跡、リアルタイムの倉庫安全モニタリングが可能になります。
詳細はこちら
Real-time AI that works with your team

小売業界におけるAI

Ultralytics YOLOモデルで小売を再定義しましょう。ビジョンAIは、在庫追跡、棚のモニタリング、キュー管理、そしてより賢明な顧客インサイトを促進します。
詳細はこちら
Real-time AI that works with your team

ヘルスケアにおけるAI

Ultralytics YOLOモデルを使用してヘルスケアソリューションを構築しましょう。ヘルスケア分野におけるビジョンAIは、より高速な医療画像診断、よりスマートな診断、患者モニタリングを推進します。
詳細はこちら
Real-time AI that works with your team

製造におけるAI

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPEコンプライアンス、組立ラインの自動化を促進します。
詳細はこちら
Real-time AI that works with your operation

自動車におけるAI

Ultralytics YOLOモデルを使用して、自動車分野にコンピュータビジョンを適用しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳細はこちら
Real-time AI tailored to your operation

農業におけるAI

Ultralytics YOLOモデルを使用して、スマート農業にビジョンAIを導入しましょう。作物モニタリング、家畜のトラッキング、精密農業を強化し、より高くスマートな収穫を実現します。
詳細はこちら
Real-time AI that works with your team

ロボティクスにおけるAI

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律航行、認識、物体追跡、リアルタイム制御を推進します。
詳細はこちら
Real-time AI that works with your team

物流におけるAI

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物の検査、仕分け、車両追跡、リアルタイムの倉庫安全モニタリングが可能になります。
詳細はこちら
Real-time AI that works with your team

小売業界におけるAI

Ultralytics YOLOモデルで小売を再定義しましょう。ビジョンAIは、在庫追跡、棚のモニタリング、キュー管理、そしてより賢明な顧客インサイトを促進します。
詳細はこちら
Real-time AI that works with your team

ヘルスケアにおけるAI

Ultralytics YOLOモデルを使用してヘルスケアソリューションを構築しましょう。ヘルスケア分野におけるビジョンAIは、より高速な医療画像診断、よりスマートな診断、患者モニタリングを推進します。
詳細はこちら
Real-time AI that works with your team

製造におけるAI

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPEコンプライアンス、組立ラインの自動化を促進します。
詳細はこちら
Real-time AI that works with your operation

自動車におけるAI

Ultralytics YOLOモデルを使用して、自動車分野にコンピュータビジョンを適用しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳細はこちら
Real-time AI tailored to your operation

農業におけるAI

Ultralytics YOLOモデルを使用して、スマート農業にビジョンAIを導入しましょう。作物モニタリング、家畜のトラッキング、精密農業を強化し、より高くスマートな収穫を実現します。
詳細はこちら

AIの未来を共に築き上げましょう!

機械学習の未来とともに旅を始めましょう