キカベン
機械学習でより便利な世の中へ
G検定対策
お問い合わせ
   

モデルの軽量化

thumb image

1. 学習目標🔝

計算リソースが十分ではないエッジデバイス等で学習モデルを活用する方法を理解する。

  • エッジAI
  • モデル圧縮の手法

キーワード蒸留モデル圧縮量子化プルーニング

2. エッジAI🔝

エッジAIとはモバイルやIoTのデバイス、工場ロボット、自動運転などで使われるAIのことです。クラウドをアクセスしていると速度が遅すぎてしまうケースではエッジ上でAIを実行することでスピードを確保します。また、サーバーをアクセスする際にインターネットを通さないのでプライバシーやセキュリティの問題を起こしにくいという利点もあります。5Gなどを利用したテレコエッジでは敷地内や近接地域においたサーバーを使ったりします。いずれにせよ、できる限りの処理をエッジ上で済ませて高速に状況に合わせた判断を行うことができます。

3. モデル圧縮の手法🔝

エッジ上のコンピュータはメモリやCPU・GPUのパワーに制限があるので、巨大なモデルをそのまま使えない場合があります。その際には、モデル圧縮をおこないます。

3.1. 蒸留🔝

蒸留(distillation)は、大きなモデル(教師)を使って小さなモデル(生徒)に知識を伝える手法です。具体的には、教師モデルが予測した分布を生徒モデルの正解データとして使います。ポイントは最終的な正解(犬かネコか)ではなく、確率(犬80%、ネコ20%)を出せるように生徒モデルを訓練します。これによって生徒モデルは少ないパラメータで大きなモデルと近い特徴量を抽出できるようになります。

3.2. 量子化🔝

ディープラーニングのモデルの重みは4バイト(32ビット)の浮動小数点数が使われます。これを量子化では1バイト(8ビット)の固定小数点数に変換することで必要なメモリを4分の1ほどに縮小します。32ビットでの演算が8ビットの演算になるのでスピードも速くなります。

3.3. プルーニング🔝

プルーニング(pruning)とは影響力の小さい重みを削除して精度をなるべく落とさずみパラメータの数を減らす手法です。例えば、CNNで重要度の低いチャンネル(例えば、重みの絶対値が平均的に小さい)から1つずつ削除していき精度を測りながらどこまで削除できるのかを決めたりします。

決定木の剪定(枝刈り、プルーニング、pruning)も似た概念です。決定木では枝葉を刈り取ります。



コメントを残す

メールアドレスは公開されません。