プルーニングとは、機械学習において、不必要なウェイトや、モデルの性能に最小限の寄与しかしないニューロン全体を削除することで、ニューラルネットワークのサイズを縮小するために使用される手法である。このプロセスは、モデルを合理化し、許容可能なレベルの精度を維持しながら、計算、メモリ、エネルギー消費の面でより効率的にするのに役立つ。
プルーニングは、エッジデバイス、モバイルアプリケーション、組み込みシステムなど、計算リソースが限られているシナリオにおいて不可欠である。モデルの最も重要な構成要素に焦点を当てることで、プルーニングはより高速な推論を可能にし、ストレージ要件を削減し、消費電力を最小限に抑えます。これらの利点は、オブジェクト検出のための Ultralytics YOLOなどのリアルタイム・アプリケーションにモデルを導入する際に特に有用です。
プルーニングはモデルの最適化においても重要な役割を果たす。モデルの量子化やハイパーパラメータのチューニングのようなテクニックを補完し、データの追加やゼロからの再トレーニングを必要とせずにパフォーマンスを向上させることができるからだ。
プルーニングでは通常、ニューラルネットワーク内の重み、ニューロン、または層の重要性を評価する。重みの大きさ、出力への貢献度、損失に対する感度などの指標を使用して、安全に削除できる要素を特定する。プルーニングが完了したら、要素の削除によって生じたわずかな精度低下を回復するために、モデルを微調整することができる。
剪定には3つの一般的なアプローチがある:
剪定は、さまざまな業界や用途に応用されている:
自動運転車刈り込みモデルは、リアルタイムの物体検出と追跡システムで使用され、自律走行車での迅速かつ正確な意思決定を保証します。自動運転車のAIについて詳しくはこちら。
ヘルスケア刈り込みモデルは、タイムリーな診断を提供するために計算効率が重要な、腫瘍検出などのタスクのための医療用画像処理ツールに実装されています。ヘルスケアにおけるAIをご覧ください。
スマート農業:剪定は、作物モニタリングや害虫検出のために、ドローンやIoTデバイス上で動作する軽量モデルを可能にする。農業におけるAIとの連携をご覧ください。
コンシューマー・エレクトロニクス:スマートフォンのようなデバイスは、顔認識や音声アシスタントのような、デバイス上での迅速な処理を必要とする機能のために、刈り込まれたモデルを活用している。
ドローンや監視システムなどのエッジコンピューティング環境では、プルーニングされたモデルは非常に貴重である。例えば、Ultralytics YOLO モデルに対して刈り込み技術を使用することで、精度を維持したままモデルサイズを大幅に縮小することができ、クラウドリソースに依存することなく、デバイス上で直接、より高速な物体検出が可能になります。
プルーニングされたモデルは、エネルギー効率と迅速なユーザー・インタラクションが優先されるモバイル・アプリケーションに広く導入されている。例えば、拡張現実やリアルタイム翻訳のためにAIを採用したモバイルアプリケーションでは、円滑なパフォーマンスを確保するために、刈り込みバージョンのディープラーニングモデルが使用されている。
プルーニングは学習済みモデルのサイズを小さくすることに重点を置いているが、モデルの量子化や知識蒸留のような関連技術とは異なる。量子化はモデルの重みの精度を下げ(例えば32ビットから8ビットへ変換)、知識蒸留は大きなモデルから小さなモデルへ知識を移す。これらのテクニックは、効率を最大化するために枝刈りと組み合わせることができる。
プルーニングは手動で行うこともできるし、次のような機械学習フレームワークに統合された自動化ツールを使って行うこともできる。 PyTorch.プルーニングを試してみたいユーザーのために、Ultralytics HUBのようなプラットフォームは、モデルを訓練し最適化するための直感的なツールを提供し、ワークフローの合理化を容易にする。
機械学習パイプラインにプルーニングを組み込むことで、高性能でリソース効率の高いAIモデルを多様なアプリケーションに展開する可能性を引き出すことができます。