DNNモデルの高速化の手法
組込みシステムにDNN*1モデルを実装するには、利用するハードウェア(デバイス)において、ターゲットとした推論精度と処理速度を達成するための最適化が欠かせません。
ここでは、DNNモデルを高速化する5つの手法について解説します。
*1DNN:Deep Neural Network
DNNモデルを高速化する5 つの手法
DNNモデルを組込みシステムに実装する場合に重要なポイントとなるのが、推論精度を保ったまま処理速度を高速化できるようにDNNモデルを最適化することです。そのために利用されるDNNモデルの高速化の代表的な手法には、「枝刈り(channel pruning)」「量子化(quantization)」「蒸留(knowledge distillation)」「バックボーン共有化(backbone share)」「ニューラル・アーキテクチャ探索(Neural architecture search:NAS)」の5 つがあります。
- 枝刈り(channel pruning)
-
枝刈りは、学習済みニューラル・ネットワークの重みの絶対値が小さいノードを削除し、軽量化と演算量の減少を実現する手法です。再学習が必要であり、精度劣化が起こる可能性があるため注意が必要です。大幅な枝刈りは精度劣化が大きくなるため、適切な削除が必要になります。
- 量子化(quantization)
-
量子化は、深層ニューラルネットワークモデルのパラメータを少ないビット数で表現することで、モデルを軽量化する手法です。ビット数を減らすことで、メモリ使用量を節約でき、処理速度が向上する可能性があります。ただし、ビット数を減らしすぎると推論精度が低下するため、再学習やキャリブレーションが必要になることがあります。
- 蒸留(knowledge distillation)
-
蒸留は、大規模で複雑な教師モデルから軽量な生徒モデルを学習させる手法で、高速化と推論精度の向上を目指します。教師モデルの知識を生徒モデルに転移させることで、精度を維持しつつ軽量化します。ただし、多くの学習データと2つのモデルの作成が必要となるデメリットがあります。
- バックボーン共有化(backbone share)
-
バックボーン共有化とは、複数の異なるタスクに対応するDNNモデルにおいて、共通のバックボーン部分を使用してタスクごとに異なるヘッドを追加することで、処理時間の削減や高精度化を実現する手法です。複数のモデルを搭載したシステムでないと適用できず、異なる特徴の収集を必要とする場合には適用できないというデメリットがあります。
- ニューラル・アーキテクチャ探索(Neural architecture search:NAS)
-
ニューラル・アーキテクチャ探索は、DNNモデルの最適化を自動探索する技術であり、手作業での設計を回避します。専用ツールを使用して、DNNモデルから類似モデルを自動生成し、推論性能や処理速度を評価して最適化を進めます。自動生成された多数のモデルから、短期間で高速・高精度なモデルを選定する仕組みが求められます。
まとめ
AI による高度な画像分析によってシステムに付加価値を付けたり、システムを特徴づけたりしたいというニーズは増え続けています。しかし、組込みシステムにDNNモデルを実装するには、DNNモデルの開発に利用するデバイスと量産フェーズで利用するターゲットデバイスの性能の違いやコスト及び開発期間の制約などによって、処理速度と推論精度のトレードオフに悩まされることが少なくありません。
これらの課題を解決し、人手では実現困難なDNNモデルの最適化を短期間で行えるのが、当社の提供する「DNN高速化サービス」です。
より詳しい高速化の手法、高速化のポイントなどを詳しく解説した資料などををお配りしていますので、是非、ご活用ください。

DNNモデルの精度を維持しつつ高速化したいときの処方箋
組込みシステムにDNNモデルを実装するには、利用するハードウェアにおいて、ターゲットとした推論精度と処理速度を達成するための最適化が欠かせません。DNNモデルを高速化する5つの手法についての解説と、高速化を進めていく上でのポイントを詳しく解説します。

DNN高速化サービス 概要資料
精度を維持しつつDNNモデルを高速化する「DNN高速化サービス」の概要、適用事例、提供形態がわかる概要資料です。

DNN高速化サービス 詳細資料
組込みシステムにおけるDNN実装の課題や課題を解決する「DNN高速化サービス」についてご紹介した資料です。
精度を維持しつつDNNモデルを高速化する「DNN高速化サービス」の導入相談やお問い合わせをお受けしております。