Blog人工知能であらゆる機械の自動化を目指すDeepXのメンバーが、最新の人工知能研究について発信します。2018-08-28Tweetこんにちは、エンジニアの中村です。今回から数回にわたって、ディープラーニング技術の実用上の重要な課題を解決する蒸留という手法について紹介したいと思います。ディープラーニングは非常に魅力的なモデル学習技術ですが、実際に使用する際には計算リソースがボトルネックとなり、利用可能なシーンが限定されてしまうことがあります。魅力的な技術も、そうなってしまうと宝の持ち腐れです。蒸留は、精度を損なわずに計算負荷の小さいモデルを訓練することを可能にし、ディープラーニングが実際に利用できるシーンを拡大します。Attack)に対する防御など、その他のさまざまな用途に使用可能な応用領域の広い手法でもあります。今回の記事では、モデル圧縮という蒸留の基本からはじめて、蒸留が取り扱うさまざまな応用領域について、俯瞰的に見ていきたいと思います。さまざまな領域において、旧来手法をはるかに凌ぐ性能を示すモデルを学習することが可能になっています。ディープラーニングを実用の場面に応用する取り組みも盛んです。ディープラーニングは非常に有望な技術ですが、実応用する際には課題もあります。その1つに、ディープラーニングモデルを稼働させる本番環境において、十分な計算リソースが得られない場合があることが挙げられます。訓練時には、大規模なデータに対して、大規模なモデルを学習させることで、高性能なモデルを得ることが可能です。モデルをより深く、より大きくすることで、性能が向上することが一般的に知られています。訓練で得た大規模なモデルをそのまま使うには、実応用の本番環境の計算リソースが十分でない場合がしばしばあります。画像認識モデルをスマートフォンアプリで動かす、画像認識モデルを移動型ロボットに搭載して高度な制御を実現する、音声認識・生成モデルをスマートスピーカに搭載する、などです。ディープラーニングモデルが実際に稼働するデバイスは小型であり、計算リソースに制約があります。この課題を克服しない限り、ディープラーニングモデルが実際に活用可能な場面が限定されることになります。2012])本番環境における計算リソースの制約という課題を解決するための打ち手の1つとして、本番環境で使えるように軽量で、かつ、十分に高性能なモデルを用意する、ということが考えられます。いう研究領域があり、下記を例とするさまざまな方法でニューラルネットワークを上手くダウンサイズしようと試みられています。別の軽量なモデルに継承させる蒸留の基本的な枠組み蒸留では、大規模なモデルの知識を軽量なモデルに継承させることによってモデル圧縮を実現します。ここで重要となるのは、知識の継承先の軽量なモデルの訓練方法です。蒸留は、基本的に、以下のステップにしたがった訓練によって実現されます。