Blog人工知能であらゆる機械の自動化を目指すDeepXのメンバーが、最新の人工知能研究について発信します。2018-09-25Tweetこんにちは、エンジニアの中村です。ディープラーニング技術における蒸留という手法の基本とその発展を俯瞰的に見てきました。その中で、ディープラーニングを実用する際に直面する本番環境の計算リソースの制約という問題について触れました。蒸留は、ディープラーニングのモデルを軽量化させる機能があり、それにより、この問題を緩和・解消できることに言及しました。(モデル圧縮)、本番環境の制約下でも使用可能な、軽量かつ高性能なモデルを開発可能とすることを紹介しました。今回の記事では、蒸留によるモデル圧縮について、該当する論文をいくつか参照して、詳細に紹介していきたいと思います。分類タスク、回帰タスクそれぞれの代表的な研究例を取り上げます。分類タスクにおける蒸留の詳細を説明し、蒸留が持つ正則化効果について紹介します。その後、蒸留の回帰タスクへの応用について、紹介します。第1回の記事をご覧ください。2015]について紹介します。この文献は、ディープラーニングにおける蒸留の分野の草分け的位置付けの研究です。先生が、蒸留という手法を導入しました。背景ディープラーニングに限らず機械学習において、複数のモデルを学習し各モデルの予測を総合することで、全体として性能の向上を図るアンサンブルがしばしばなされます。複数のモデルに対して、まずは個別に各単一モデルでの精度向上を目指して試行錯誤した後、最終的にそれら複数のモデルの予測を単純に平均あるいは重み付き平均することで、精度向上を狙うという戦略が多く採用されているかと思います。確かに、アンサンブルによって最終的に高性能なモデルを得ることができますが、しかしながら、アンサンブルモデルを実際に使おうとすると、複数のモデルを動作させるため、本番環境の計算リソースが潤沢である必要があります。本番環境の計算リソースは多くの場合制約があります。ディープラーニングに関しては、アンサンブル以外にもモデルの大規模化によって一般に精度向上を図ることができますが、これも同様に、本番環境の計算リソースの制約という課題を抱えることになります。本論文では、計算リソースの制約という課題に対して、アンサンブルあるいは大規模モデルの学習済みの知識を、別の軽量な単一モデルに落とし込む手法として、蒸留を導入しています。知識の継承元となるアンサンブルあるいは大規模モデルを教師モデル、継承先の軽量な単一モデルを生徒モデルと呼びます。高い精度で予測・分類できる教師モデルには汎化のための十分な知識が備わっています。その知識はクラス間の類似度を反映して、教師モデルの出力に現れます。含まれる情報を生徒モデルの学習に利用することで、生徒モデルの効果的な知識獲得と汎化を促します。(ここまで、前回の記事の「基本的な蒸留の枠組み」で触れた内容をハイライトしています。用語や詳しい説明については、そちらも合わせてご覧ください。して生徒モデルの学習に使用しますが、ここでは少し工夫を加えています。使用する場合とほとんど変わりません。関数を代わりに使用するという工夫を加えています。内の正解クラス以外の類似クラスに対する値が増幅されます。期待する効果がより現れやすくなります。上げることで知識を教師モデルから生徒モデルに抽出することが、「蒸留」という命名の由来だと思われます)。使用する方法も考えられます。distillation」の節を参照ください)。組み合わせて、生徒モデルの学習に使うことができます。計算される勾配とスケールを合わせることが必要になります。3種類のデータセットを題材に、蒸留の有効性が実験的に示されています。使用した実験と、アンサンブルモデルを単一モデルに蒸留した音声認識データセットによる実験を紹介します。実験の結果は以下の表の通りです。蒸留した生徒モデルは、モデルサイズが同じ軽量なモデルの約半数のテストエラー数となり、教師モデルにも匹敵する性能を示しています。67件、74件であり、ほとんど同程度の精度であることが分かります。反面、生徒モデルのパラメータ数は、教師モデルの約53%と大幅に削減することができています。作成)次に、音声認識データセットを使用した実験を紹介します。推定する実験で、同一アーキテクチャの単一モデルを10個アンサンブルしたモデルから、単一モデルに蒸留しています。結果は下表の通りで、蒸留によって、10のアンサンブルモデルに匹敵する精度を、単一モデルで実現することができています。蒸留したモデルの精度は10アンサンブルモデルとほとんど変わりませんが、パラメータ数をアンサンブルモデルの10%と劇的に抑えることができています。本研究では、蒸留は正則化効果をもたらすことが合わせて報告されています。上述の音声認識データセットを使用した実験で、同サイズのモデルを対象に、訓練データ数を意図的に減らすことで過学習が起きやすい条件を設定しています。蒸留したモデルは、同じ少数の訓練データでの学習にもかかわらず、訓練データ全てを使って訓練されたモデルに匹敵するようなテスト精度をおさめています。作成)過学習を防いでいる点、蒸留が正則化効果を持つことが実験的に示されています。含まれる情報により、教師モデルが獲得した特徴表現と同様の特徴表現を、生徒モデルも一定程度獲得するように学習するためと考えることができるかもしれません。2017]について紹介します。この文献は、蒸留が回帰タスクを含む物体検出に適用可能であるかどうかを検証し、物体検出でも蒸留が有効であることを報告しています。上で紹介した論文により、ニューラルネットワークの蒸留の基本コンセプトが提示され、ディープラーニングの分類タスクにおいて蒸留が有効であることが示されました。ディープラーニングが効果を発揮するのは、単純な分類タスクに限定されないことは周知の通りです。分類タスク以外には、回帰タスクに含まれるものとして、例えば物体検出が挙げられます。物体検出では、物体が何であるか分類するだけではなく、その物体が画像中のどこにあるかを検出することが求められます。前者は分類タスクですが、物体検出では、物体を含む領域と物体と含まない領域を比較すると、物体を含まない領域がほとんどであります。クラス間でデータ数の大きな偏りがない単純な分類タスクでは効果を示していた蒸留は、物体検出では、このクラス間のデータ数のインバランスに対処する必要があります。後者の物体位置の検出は回帰タスクの代表例ですが、上で紹介した単純な分類タスクを対象とした蒸留が扱わないタスクのため、蒸留を応用するには、回帰タスクのための工夫が必要となります。本論文では、データ数にインバランスのある分類タスクに蒸留を応用するために、物体と非物体で異なる重みを使って学習する重み付きクロスエントロピーを導入しています。