SONY

ディープラーニングのモデル圧縮とは?代表的3手法とエッジAIの必要性

ディープランニングのモデル圧縮とは、情報処理を効率化することで、一定の精度を保ちながら処理速度を向上させるための技術です。現在注目されているエッジAIの発展に必要といわれています。モデル圧縮はPruning(枝刈り)、Quantize(量子化)、Distillation(蒸留)の3手法を手掛かりに開発するとよいでしょう。

​この記事では、エッジAIとモデル圧縮の関係性や圧縮方法について解説します。AI開発の自動化や効率化の参考にしてください。​

アイキャッチ画像

ディープラーニングと機械学習の違い

​第3次AIブームをけん引しているのが、機械学習を進化させたディープラーニングです。機械学習では、学習に使うために用いる変数や対象の特徴(特徴量)によって精度の良し悪しが決まります。​

たとえば、犬のグループのなかからミニチュアダックスフントを認識させる場合は、「足が短い」「体重5kg以下」などが特徴になるでしょう。しかし、これでは精度を向上させるにも限界があります。

​一方、ディープラーニングは自ら特徴をみつけ出し、学習するAIです。人間の脳をモデルに設計され、情報を受けとる入力層、情報を分析する隠れ層、結果を出力する出力層の各ノード(節)で構成されます。​

​ノードをつなぐのはエッジ(糸)です。このエッジが転じて「端」となり、ある情報を処理して他の機器に伝える端末機械や無線基地局を指すようになりました。たとえば、自動車に搭載されるIoTデバイスはエッジの1つです。​

ディープラーニングや機械学習における「モデル」とは

​「これは赤いリンゴの画像である」「道路上に別の車が走行している」などを判断するためには、ルールに則った数式や理論が必要です。​

​ディープラーニングや機械学習における「モデル」は、コンピューターが認識した情報について、評価や判定をするための数式や理論です。写真や音声を入力して、何の画像か判断したり、文字に起こしたりする際に判断を下す頭脳の役割を果たします。

ディープラーニングにモデル圧縮が必要とされる背景

エッジAIとは、自動車などに搭載されるIoTデバイスにAIを組み込む技術です。エッジAIの特徴は、クラウドAIと比較するとわかりやすいでしょう。

たとえば、スマホの音声認識アシスタントを利用する場合、音声解析をしているのはスマホ本体ではなくインターネット上にあるクラウドAIです。一方、エッジAIはデバイス単体で音声解析するため、従来はクラウド側、あるいはホストコンピューターに求めていた情報処理をエッジ側で行えるようになります。これにより、全体的な情報処理の効率化が実現します。

エッジAIに寄せられる期待

エッジAIに期待されているのは処理スピードの向上です。先に紹介したクラウドAIでは、通信遅延によるタイムラグなど、通信環境の影響を受けることがあります。車の自動運転などでは、致命的な問題になるこれらの課題を、エッジAIで解決できると期待されています。

​また、1つのコンピューターに負荷がかかることも防げます。複数のIoTデバイスを担当する小型のサーバーを置くなどの「エッジコンピューティング」を行えば、処理を分散して負荷を減らすことが可能です。システム全体で考えても、処理速度の向上が見込めます。​

モデル圧縮でAIの計算の軽量化、高速化を目指す

ディープラーニングを促進するには、ニューラルネットワークの層を増やすことが必要です。つまり、入力層・隠れ層・出力層のうちの、隠れ層を増やします。しかし、層を増やすほどAIの計算量が増えるため、膨大な計算を処理するのにコストも時間もかかります。

コンピューターのスペックには限りがあり、とりわけエッジAIを実現する場合は大きな課題になるでしょう。そこで、AIの計算量を少なくして高速化を目指すモデル圧縮が必要になりました。

モデル圧縮の3つの手法

​具体的にどのようなモデル圧縮の方法があるのか、知りたい人もいるでしょう。ここでは、代表的な方法を3つ解説します。​

Pruning(枝刈り)

Pruning(枝刈り)は関係性が薄いノードを間引く方法です。ディープラーニングの結果、過学習してしまった無駄なノードをなくすことで、計算量を減らします。重要度の低いノードを選んで切り離すため、精度もあまり下げずに高速化することが可能です。

​人間の脳も年齢とともに情報が蓄積されていくため、必要なときに情報を引き出しにくいといわれます。人間の脳の情報を整理することはできませんが、AIデバイスのノード間の関連度を数値化して、チューニングすることは可能です。​

Quantize(量子化)

量子化とは近似的にデータを扱うことをいい、情報量を少なくして計算を効率化する方法です。ディープラーニングでは、ノード間の情報を32ビット浮動小数点精度単位で扱うのが一般的ですが、用途によっては情報量が多すぎます。仮に8ビットで量子化すれば処理速度が増し、低スペックの端末機械にAIを搭載するのも容易になります。

ASICやFPGAなどは効率よく計算することが期待できます。ただしビットが小さくなるほど精度が低下する可能性もあります。

Distillation(蒸留)

AIの開発対象に、それより大きなモデルを教師モデルとして継承する方法を蒸留といいます。大きなモデルの学習結果を生徒モデルへ引き継ぐことで、低スペックのデバイスでも高い精度を実現できます。蒸留では、大きなモデルの学習結果(soft target)と、教師モデルの学習などに利用する正解ラベル(hard target)を比較させて正解を導き出します。

​たとえば飛行機の画像を判定する際、hard targetには「この画像は飛行機だ」という正解の情報しかありませんが、soft targetを用いることで「飛行機には翼があり、窓があり……」という多角的な学習が期待できます。​

ディープラーニングのモデル作成上の課題

多くのAI学習に用いられているのは、機械学習の教師あり学習モデルです。つまり、入力データと正解データをセットにして学習を進める手法です。正解データは人の手で用意し、AIに着目してもらいたい特徴をラベリングすることも必要です。

この事情はディープラーニングでも大きく変わりません。実際、車の自動走行実験では膨大なデータを、大勢の人員によって手作業でラベル付けする作業が発生しています。

​しかも、学習の結果、データの内容と予測したい事柄が一致しなければ、集めたデータが役立たない可能性もあります。モデル圧縮の作業が加わることも考えると、精度の高いAIを実現するためには膨大なコストと時間がかかるといえるでしょう。​

​膨大な量のデータの精査や圧縮作業を、すべて人の手で行うには時間もコストもかかります。ソニーが開発した「Neural Network Console」に搭載されている構造自動探索機能では、精度が高いモデルもしくは演算量が少ないモデルを自動探索します。​

開発者が操作をしなくても自動でネットワークを探索するため、チューニングにおける追い込み作業を大幅に効率化できます。まずは無料体験からお試しください。

ディープラーニングが活用されている分野

ここでは、ディープラーニングが活用されている分野を具体的に紹介します。

画像解析から判断を下す自動運転車

​車の自動運転や緊急時のブレーキなどでは、瞬時の判断が欠かせません。そのため、通信遅延が発生する可能性があるシステムは採用できず、エッジAIが必要です。エッジの端末が自ら画像を解析して判断を行うため、コンマ数秒の自動応答制御が可能です。すでに実用化は時間の問題とされており、最もポピュラーなエッジAIの一つとして普及することになるでしょう。​

病気の予防や早期発見につながる医療診断

医療分野では、CT画像やレントゲン画像の医療診断のサポートにAIが使われています。医師のように論理的な推測で病気を見つけるというよりは、パターンマッチングのような技術が活用されているのが特徴です。人の目では見逃してしまいがちな細かい部分の分析や、めずらしい症状との照合などを短時間で行い、医師の診断をサポートします。

音声認識や言語解析

ディープラーニングによる音声認識や言語解析の代表例は、AppleのSiri、Google Nowなどが挙げられます。Webサイトの検索やオンラインショッピング、音声による文書作成などに利用できます。近年精度が高まっている分野は自動翻訳です。

従来、精度の向上にはアルゴリズムの改良が必要でしたが、ディープラーニングのAIは翻訳例を学習することで、自ら日々進化を続けています。

AI研究とディープラーニングの現状と未来

2000年代から現在は「第三次人工知能(AI)ブーム」とされています。特に、2012年に画像認識コンテストでディープラーニングのAIが目覚ましい成果をあげたことから、一気に開発が進みました。ただ、ディープラーニングによる技術革新は起きているものの、実用化のためには社会環境の整備などが必要です。

有識者の分析によると、医療における健康状態や病気の予兆といった高度な診断、路線バスやタクシーなどの自動運転へのニーズが高いとのことです。これらの分野で、ディープラーニング技術の活用が期待されています。

まとめ

​ディープランニングのモデル圧縮は、情報処理を効率化することで、精度を保ちながら処理速度を向上させるための技術です。Pruning(枝刈り)、Quantize(量子化)、Distillation(蒸留)などの圧縮方法はエッジAIにも使われています。モデル圧縮をはじめとしたさまざまな手法を取り入れつつ、AI開発の効率化や自動化を目指しましょう。​

ソニーの「Neural Network Console」は、コーディング無しでディープラーニングを用いた高度なAI開発を実現します。ドラッグ&ドロップの簡単編集でネットワーク設計した後、ボタン1つで高速学習が可能です。学習の進捗状況や性能をリアルタイムで確認することもできます。ぜひ一度、無料体験版をお試しください。

Cloud版ではInternet Explorerには対応していません。
Google Chromeをお使いいただくか、
こちらよりWindows版をダウンロードください

処理中に問題が発生しました。しばらく経ってからもう一度実行してください。

サインインアカウントの選択

Neural Network Consoleで利用するアカウントを選択してください。
Google、Sonyどちらのアカウントでも同様の機能が利用できます。