普通の人間が普通のことを書くブログ

日記、自動車関係、カーシェアリングを中心に思ったことをつらつらと書きます。

【論文読み】[2006.05525] Knowledge Distillation: A Survey

論文リンク

[2006.05525] Knowledge Distillation: A Survey

著者

Jianping Gou, Baosheng Yu, Stephen John Maybank, Dacheng Tao

Abstract

近年、ディープニューラルネットワークは、特に画像認識と自然言語処理の応用において、産業界と学術界の両方の分野で大成功を収めている。ディープラーニングの大きな成功は、主に大規模なデータサンプルと数十億のモデルパラメータの両方に対するスケーラビリティの高さに起因している。しかし、携帯電話や組込み機器などの限られたリソースのデバイス上で、このような煩雑なディープモデルを展開することは、計算の複雑さだけでなく、ストレージの問題もあり、大きな課題となっています。そのために、プルーニング、量子化、ニューラルアーキテクチャ探索など、様々なモデル圧縮・高速化手法が開発されてきました。代表的なモデル圧縮・高速化手法として、知識蒸留は、大きな教師モデルから小さな生徒モデルを学習することを目的としており、コミュニティからの注目度が高まっている。本論文では、さまざまな知識カテゴリ、学習スキーム、蒸留アルゴリズム、アプリケーションの観点から、知識蒸留に関する包括的な調査を行う。さらに、知識蒸留における課題を簡単にレビューし、今後の研究課題についての洞察を提供する。

1. Introduction

蒸留の概念図 f:id:sek_165:20200622231422p:plain

本論文の構成 f:id:sek_165:20200622231612p:plain

2. Backgrounds

蒸留では、教師モデルのLogits (最終層の出力) を用いる。図3では、猫の画像は非常に低い確率で犬と誤分類されるが、そのような誤分類の生成頻度は、猫を車と誤分類するよりも何倍も高いことを示している。このようなモデルの"暗黙の知識"と考えられるものが生徒モデルのターゲット (Soft Target) である。このような"暗黙の知識"はHard Target (通常、one-hotベクトル) では表現することができない。 f:id:sek_165:20200622233053p:plain

Logitsは通常、以下の(1), (2)式のようにSoftmaxもしくは温度付きSoftmaxで表現される。(2)式において、T→0の時、Soft targetはHard targetに等しくなる。 f:id:sek_165:20200622233607p:plain f:id:sek_165:20200622233628p:plain

教師モデルZtと生徒モデルZsの間の損失関数LD (=蒸留損失) を以下のように定義する。Hard targetを用いた画像分類と同様に、LDはCross Entropyとなっている。 f:id:sek_165:20200622234342p:plain

蒸留の損失計算の図は以下の通り。 f:id:sek_165:20200624215541p:plain

損失の式は以下の通り。蒸留損失と生徒損失にそれぞれαとβのパラメータをかけ合わせ、これらを足し合わせることで定義される。 f:id:sek_165:20200624220309p:plain

3. Knowledge

f:id:sek_165:20200624220827p:plain

3.1 Response-based Knowledge

レスポンスベースの知識は通常、教師モデルの最後の出力層の神経反応を指し、教師モデルの最終予測を直接模倣することを主眼としている。レスポンスベースの知識蒸留は、シンプルでありながらモデル圧縮に効果的であり、様々なタスクやアプリケーションで広く利用されている。

・画像分類タスクでは、Soft targetsが用いられる。(Ba and Caruana, 2014; Hinton et al., 2015)

・物体検出タスクでは、ロジットに加え、バウンディングボックスのオフセットも含む。(Chen et al., 2017)

・ポーズ推定では、教師モデルの応答は、各ランドマークのヒートマップを参照しても良い。

Soft targetsはLabel-smoothingと同じ考えであり、正則化(過学習抑制)として機能する。

3.2. Feature-based Knowledge

ディープニューラルネットワークは、抽象度を上げながら複数のレベルの特徴表現を学習することを得意としており、これは表現学習として知られている(Bengio et al., 2013)。したがって、最終層の出力とは別に、中間層の出力、すなわち特徴マップもまた、学生モデルの学習を監督するための知識として利用される。

中間表現は、学生モデルの訓練プロセスを改善するためのヒントとしてFitnets(Romero et al., 2015)で最初に導入され、主なアイデアは、教師と学生の間の特徴量/アクティベーションを直接一致させることである。これに触発されて、特徴を間接的に一致させる他の様々な手法が提案されている(Zagoruyko and Komodakis, 2016; Passalis and Tefas, 2018; Kim et al., 2018; Heo et al., 2019c)。具体的には、Zagoruyko and Komodakis(2016)は、元の特徴量マップからの「アテンションマップ」を知識と定義し、ニューロン選択性伝達を介してHuang and Wang(2017)によって一般化された;(Passalis and Tefas, 2018)では、特徴空間内の確率分布をマッチングさせることで知識を伝達した。Kimら(2018)では、教師の知識の伝達をより容易にするために、中間表現のより分かりやすい形として「因子」を導入した。最近では、Heoら(2019c)が隠れニューロンの活性化境界を知識伝達に利用することを提案している。特徴に基づく知識の概要を表1に示す。

f:id:sek_165:20200624223110p:plain

3.3. Relation-based Knowledge

(省略)

4. Distillation Schemes

知識蒸留の学習スキームは、図6に示すように、オンライン蒸留、オフライン蒸留、自己蒸留の3つに直接分けられる。

f:id:sek_165:20200624223558p:plain

4.1. Offline Distillation

これまでの知識蒸留法のほとんどはオフラインで動作する。全体のトレーニングプロセスは、2段階のトレーニング手順、すなわち、2つの別々の段階である。1) 最初に大規模な教師モデルが訓練サンプルのセットで訓練され、2) 教師モデルがロジットや中間特徴などの知識を抽出するために使用され、それが学生モデルの訓練を導くために使用される。

つまり、教師はあらかじめ定義されたモデルであると仮定し、モデル構造や学生モデルとの関係にはほとんど注意を払わない。したがって、オフライン手法は、知識の設計(Hintonら、2015; Romeroら、2015)および特徴/分布マッチングのための損失関数(Huang and Wang、2017; Zagoruyko and Komodakis、2016; Passalis and Tefas、2018; Mirzadehら、2019; Liら、2018; Heoら、2019b; Asifら、2019)を含む、知識伝達の異なる部分の改善に主に焦点を当てている。オフライン手法の主な利点は、シンプルで実装が容易であることである。例えば、教師モデルは、異なるソフトウェアパッケージによって訓練されたモデルのセットを含んでいてもよく、および/または異なるマシンに配置されていてもよく、我々は、知識を抽出し、抽出された知識を保存するためにデバイス上のキャッシュを使用することができる(教師モデルは、オンライン設定で動的に変更される)。

明らかに、オフライン蒸留法は、常に一方通行の知識伝達と二段階の訓練手順を採用している。しかし,オフライン蒸留では,複雑で大容量の教師ネットワークと大規模な訓練データを用いた大規模な訓練時間が必要であり,蒸留前には教師と学習者の間の能力差が常に存在している.

4.2 Online Distillation

オフライン蒸留法はシンプルでありながら効果的であるが、オフライン蒸留にはいくつかの問題点があり、コミュニティからの注目度が高まっている(Mirzadeh et al., 2019)。オフライン蒸留の限界を克服するために、特に強力な性能を持つ大容量の教師モデルが利用できない場合に、学生モデルの性能をさらに向上させるために、オンライン蒸留が提案されている(Zhang et al., 2018b; Chen et al., 2019a)。オンライン蒸留では、教師モデルと学生モデルの両方が同時に更新され、知識蒸留フレームワーク全体がエンドツーエンドで訓練可能である。

(省略)

4.3 Self-Distillation

自己蒸留では、教師モデルと生徒モデルが同じネットワークを使用しており(Yuanら、2019; Zhangら、2019b; Houら、2019; Yangら、2019b; Yunら、2019; Hahn and Choi、2019; Leeら、2019a)、オンライン蒸留の特殊なケースと考えられる。

Zhangらは、教師と生徒のネットワークを同じ畳み込みニューラルネットワークで構成し、ネットワークの深い部分の知識をその浅い部分に蒸留するという新しい自己蒸留法を提案した(Zhangら、2019b)

(Zhang et al., 2019b)の自己蒸留と同様に、ネットワークが自身の層の注目マップを下位層の蒸留対象として利用することを可能にすることによって、レーン検出のための自己注目蒸留法が提案された(Hou et al., 2019)

自己蒸留の特別な変形として、スナップショット蒸留は、同じネットワーク内の教師付き訓練プロセスをサポートするために、ネットワークの以前のエポック(教師)の知識を後のエポック(学生)に転送することによって提案された(Yang et al., 2019b)

さらに、別の3つの興味深い自己蒸留法も最近(Yuan et al., 2019; Hahn and Choi, 2019; Yun et al., 2019)で提案された。Yuanらは、label-smoothing正則化を分析する観点から教師なしの知識蒸留法を提案した(Yuan et al., 2019)。Hahn and Choiは、従来のソフト確率の代わりに予測確率を自己知識とした新しい自己知識蒸留法を提案した(Hahn and Choi, 2019)。これらの予測確率は、学習モデルの特徴表現によって定義され、特徴埋め込み空間におけるデータの類似性を反映している。Yunらは、クラス内サンプルと同一ソース内の拡張サンプルの間の訓練モデルの予測分布から得られる知識をモデルの自己に蒸留するクラス単位の自己知識蒸留を提案している(Yunら、2019)。また、(Lee et al., 2019a)で提案された自己蒸留をデータのオーグメンテーションに採用し、オーグメンテーションの自己知識をモデル自身に蒸留した。そして、自己蒸留の考え方は、同じアーキテクチャを持つ深層モデル(教師または学生ネットワーク)の最適化にも採用され、教師-学生最適化の際に、次のネットワークが前のネットワークの知識を蒸留していた(Furlanello et al.)

蒸留を直感的に理解するためには、オフライン蒸留、オンライン蒸留、自己蒸留も人間の教師と生徒の学習と一致するようにまとめることができる。オフライン蒸留とは、知識のある教師が新しい学生に知識を教えることを意味し、オンライン蒸留とは、教師の主な監督の下で教師と学生が同時に学び合うことを意味し、自己蒸留とは、教師なしで学生自身が知識を学ぶことを意味する。また、人間の学習と同じように、これらの三種類の蒸留はそれぞれの利点のためにお互いを補完するために組み合わせることができます。

5. Teacher-Student Architecture

知識の蒸留では、教師と生徒のアーキテクチャは、知識の伝達を形成するための一般的なキャリアである。つまり、教師から学生への知識の獲得・蒸留の質も、教師と学生のネットワークをどのように設計するかで決まる。人間の学習習慣の観点からは、学生が正しい教師を見つけられることを期待しています。このように、知識の取り込みと知識の蒸留を成功させるためには、教師と生徒の適切な構造をどのように選択し、設計するかが非常に重要であるが、難しい問題である。最近では、教師と学生のモデル設定は、蒸留の際にサイズや構造が不揃いで固定されていることがほとんどで、モデルのキャパシティギャップが発生しやすい。しかし、教師と生徒のアーキテクチャを具体的にどのように設計するのか、また、なぜこれらのモデル設定によってアーキテクチャが決定されるのかについては、ほとんど見落とされている。ここでは、主に図7に示すように、教師モデルと学生モデルの構造の関係を考察する。

f:id:sek_165:20200624225109p:plain

知識蒸留は、以前に(Hintonら、2015)でディープニューラルネットワークのアンサンブルを圧縮するように設計された。深層ニューラルネットワークの複雑さは、主に深さと幅という2つの次元に由来し、すなわち、通常、より深くてより広いニューラルネットワークからより浅くてより薄いニューラルネットワークに知識を伝達する必要がある(Romeroら、2015)。したがって、生徒ネットワークは通常、次のようなものが考えられます。

  • 1) 教師ネットワークの簡略化されたバージョンであって、各層におけるより少ない層および/またはより少ないチャネルを有するもの(Wang et al., 2018a; Zhu and Gong, 2018)
  • 2) 教師ネットワークといくつかの同じ構造を共有する教師ネットワークの量子化されたバージョン(Polino et al., 2018; Mishra and Marr, 2017; Wei et al., 2018; Shin et al., 2019)
  • 3)教師の効率的な基本操作に基づく小さなネットワーク(Howardら、2017;Zhangら、2018a;Huangら、2017)
  • 4)最適化されたグローバルネットワーク構造を有する小さなネットワーク(Liuら、2019h;Xieら、2019;Gu and Tresp、2020)
  • 5)教師と同じ構造を共有する(Zhangら、2018b;Furlanelloら、2018)

大規模なディープニューラルネットワークと小規模な学生ニューラルネットワークの間のモデル能力のギャップは、知識伝達のパフォーマンスを低下させる(Mirzadeh et al., 2019; Gao et al., 2020)。学生ネットワークへの知識の伝達を効果的に行うために、モデルの複雑さを円滑に低減するための様々な方法が提案されている(Zhang et al., 2018b; Nowak and Corso, 2018; Crowley et al., 2018; Wang et al., 2018a; Liu et al., 2019a,h; Gu and Tresp, 2020)。一方、Mirzadehら(2019)は、教師モデルと生徒モデルの間のトレーニングギャップを緩和するために教師アシスタントを導入し、残差学習、すなわちアシスタント構造を用いた残差学習によってさらに改善した(Gaoら、2020)。一方,最近のいくつかの手法では,学生モデルと教師モデルの構造上の差異を最小化することに焦点を当てている.例えば、Polinoら(2018)は、ネットワーク量子化と知識蒸留を組み合わせた、すなわち、生徒モデルは教師モデルの小さい量子化版であった。Nowak and Corso (2018)は、構造圧縮法、すなわち、複数の層で学習した知識を単一の層に転送する方法を提案した。Wangら(2018a)は、教師ネットワークから学生ネットワークへの受容場を保存した状態でブロック単位の知識伝達を漸進的に行った。オンライン設定では、教師ネットワークは通常、学生ネットワークのアンサンブルであり、学生モデルは互いに似た構造(または同じ構造)を共有している(Zhang et al., 2018b; Zhu and Gong, 2018; Furlanello et al., 2018; Chen et al., 2019a)。

最近、深さ方向分離可能畳み込みは、モバイルまたは組み込みデバイスのための効率的なニューラルネットワークの設計に広く使用されている(Chollet, 2017; Howardら, 2017; Sandlerら, 2018; Zhangら, 2018a; Maら, 2018)。ニューラルアーキテクチャ探索(またはNAS)の成功に触発されて、効率的なメタ演算またはブロックに基づいて大域構造を探索することによって、小型ニューラルネットワークの性能がさらに向上している(Wuら、2019; Tanら、2019; Tan and Le、2019; Radosavovicら、2020)。さらに、適切な知識伝達レジームを動的に探索するという考えは、知識蒸留においても現れ、例えば、強化学習を用いてデータ駆動的な方法で冗長な層を自動的に除去する(Ashokら、2017)、および教師ネットワークを与えられた最適な学生ネットワークを探索する(Liuら、2019h; Xieら、2019; Gu and Tresp、2020)。知識蒸留におけるニューラルアーキテクチャ探索の考え方、すなわち、教師モデルの指導の下での学生構造と知識伝達の共同探索は、今後の研究の興味深い課題となるであろう。

6. Distillation Algorithms

知識伝達のためのシンプルでありながら非常に効果的なアイデアは、教師モデルと生徒モデルの間で応答/特徴量に基づく知識(Hinton et al. 2015; Romero et al. 2015)または特徴空間における分布(Passalis and Tefas, 2018)を直接一致させることである。最近では、より複雑な設定で知識を伝達するプロセスを改善するために、多くの異なるアルゴリズムが提案されている。本節では、知識蒸散の分野で最近提案された知識移転のための代表的なタイプの蒸散方法をレビューする。

6.1. Adversarial distillation

知識蒸留では、教師モデルが真のデータ分布から完全に学習することは困難であり、また、学生モデルも教師モデルをうまく模倣することができず、教師の知識を転送することで真のデータ分布を学習することができない(Mirzadeh et al., 2019)。したがって、教師モデルを完全に模倣するために、学生モデルをさらに推進するにはどうすればよいか。最近では、生成的ネットワーク、すなわち、生成的敵対的ネットワークまたはGAN(Generative adversarial networksまたはGANs)において大きな成功を収めていることから、敵対的学習がますます注目されている(Goodfellowら、2014)。具体的には、GANにおける判別器は、生成器が生成されたデータサンプルを介して判別器を欺こうとしている間に、あるサンプルが訓練データ分布に由来する確率を推定します。これに触発されて、教師/生徒ネットワークが真のデータ分布をよりよく理解できるようにするために、より多くの敵対的知識蒸留法が提案されている(Wang et al. 2018d; Xuら、2017; Micaelli and Storkey、2019; Xuら、2018; Liuら、2018b; Wangら、2018e; Chenら、2019b; Shenら、2019b; Shuら、2019; Liuら、2018a; Belagiannisら、2018)。)

(省略)

6.2 Multi-teacher distillation

異なる教師アーキテクチャは、知識蒸留性能を向上させるために学生に転送される異なる自身の有用な知識を提供することができることが知られている。したがって、教師-生徒アーキテクチャにおいて教師の知識を十分に活用するために、複数の教師ネットワークを個別に、かつ統合的に、生徒ネットワークを訓練している間に、知識蒸留のために利用することができる。典型的な教師-生徒フレームワークでは、教師は通常、大規模モデルまたは大規模モデルのアンサンブルである。複数の教師から知識を伝達するためには、最も単純な方法は、すべての教師からの平均応答を監督信号として使用することである(Hintonら、2015)。複数の多様な教師の利点をさらに探求するために、いくつかの複数教師の知識蒸留法が最近提案されている(You et al., 2017; Chen et al., 2019c; Furlanello et al., 2018; Yang et al. 2019a; Zhangら、2018b; SauおよびBalasubramanian、2016; ParkおよびKwak、2019; Papernotら、2016a; Fukudaら、2017; Ruderら、2017; Wuら、2019a; Vongkulbisalら、2019; Yangら、2020; Leeら、2019c)。) 一般的に、マルチティーチャー蒸留法のフレームワークは、図9に示されている。

f:id:sek_165:20200624232125p:plain

複数教師ネットワークは、知識としてのロジットと特徴表現の形で学生モデルを学習するのに有効であることが判明した。You et al. (2017)では、全教師のロジットの平均値とは別に、中間層の特徴量をさらに取り入れ、異なる学習サンプル間の非類似性を促すようにした。ロジットと中間層の特徴の両方を利用するために、Chenら(2019c)は2つの教師ネットワークを用いて、一方の教師が応答ベースの知識を伝え、もう一方の教師が特徴ベースの知識を生徒に伝えた。さらに、福田ら(2017)は、各反復ごとに教師ネットワークのプールから1人の教師をランダムに選択した。複数の教師から特徴ベースの知識を転送するために、教師の中間的な特徴を模倣するために、追加の教師ブランチが学生ネットワークに追加される(Park and Kwak, 2019; Asif et al. Born againネットワークは、ステップバイステップで複数の教師に対処し、すなわち、tステップの学生をt+1ステップの学生の教師として使用した(Furlanello et al., 2018)、同様のアイデアは、(Yang et al., 2019a)に見られる。知識伝達を効率的に実行し、複数の教師の力を探求するために、異なるノイズを追加することにより(Sau and Balasubramanian, 2016)、または確率的なブロックとスキップ接続を使用することにより、1人の教師から複数の教師をシミュレートするためのいくつかの代替方法が提案されている(Leeら、2019c)。より興味深いことに、複数教師KDの特殊な特性のために、その拡張は、知識適応を介したドメイン適応のために使用され(Ruderら、2017)、データのプライバシーおよびセキュリティを保護するために使用される(Papernotら、2016a; Vongkulbisalら、2019)。

6.3. Cross-modal distillation

(省略)

6.4. Graph-based distillation

(省略)

6.5. Attention-based distillation

(省略)

6.6. Data-free distillation

プライバシー、合法性、セキュリティおよび機密性の問題のためにデータが利用できないという問題を克服するために、いくつかのデータフリーKD法が提案されている(Chen et al., 2019b; Micaelli and Storkey, 2019; Lopes et al., 2017; Nayak et al., 2019)。その名が意味するように、学生ネットワークのための転送訓練データは存在せず、異なる方法で新たにまたは合成的に生成され得る。(Chen et al., 2019b; Micaelli and Storkey, 2019)では、転送データはGANによって生成された。提案されたデータフリー知識蒸留法(Lopes et al., 2017)では、生徒ネットワークを訓練するための転送データは、教師ネットワークの層活性化または層スペクトル活性化を使用して再構成された。(Nayak et al., 2019)では、既存のデータを用いずにゼロショット知識蒸留法を提案し、教師ネットワークのパラメータからソフトマックス空間をモデル化することで伝達データを生成した。実際、(Micaelli and Storkey, 2019; Nayakら, 2019)の対象データは、教師ネットワークの特徴表現からの情報を用いて生成された。ゼロショット学習と同様に、ガウス過程を持つ教師モデルから学生ニューラルネットワークに知識を蒸留することで、少数ショット学習を伴う知識蒸留法が設計され、教師は限定されたラベル付きデータを使用した(Kimura et al., 2018)。

6.7. Quantized distillation

f:id:sek_165:20200629225045p:plain

ネットワーク量子化は、高精度のネットワーク(32ビット浮動小数点など)を低ビットのネットワーク(2ビットや8ビットなど)に変換することで、ニューラルネットワークの計算量を削減します。一方、知識蒸留は、小さなモデルを訓練して複雑なモデルと同等の性能を得ることを目的としています。これに触発されて、教師-生徒フレームワーク量子化処理を利用した量子化KD法がいくつか提案されており(Polinoら、2018; Mishra and Marr、2017; Weiら、2018; Shinら、2019; Kimら、2019a)、量子化蒸留法のフレームワークを図12に示す。具体的には、(Polino et al., 2018)では、重み量子化された学生ネットワークに知識を伝達するための量子化蒸留法が提案されている。(Mishra and Marr, 2017)では、提案された量子化されたKDは「見習い」と呼ばれるもので、教師としての高精度ネットワークが、知識の伝達を通じて低精度ネットワークを生徒として教えるというものであった。小さな生徒ネットワークを大きな教師ネットワークをうまく模倣させるために、まず全精度の教師ネットワークを特徴量マップ上で量子化し、量子化された教師から量子化された生徒ネットワークに知識を伝達した(Wei et al., 2018)。(Kim et al., 2019a)では、量子化された生徒ネットワークの自己学習と、知識移転を伴う教師・生徒ネットワークの共学習により、量子化を考慮した知識蒸留が提案された。さらに、Shinら(2019)では、教師ネットワークのサイズや蒸留温度などの知識蒸留のハイパーパラメータに応じて、蒸留と量子化の両方を用いたディープニューラルネットワークの実証分析を行った。

6.8. Lifelong distillation

継続学習、継続学習、メタ学習を含む生涯学習は、人間と同様の学習を目指す。それは、以前に学習した知識を蓄積するだけでなく、学習した知識を将来の学習に移すこともできる(Chen and Liu, 2018)。知識蒸留の特性を考えると、学習した知識を保存して転送することは、壊滅的な忘却を回避するための有効な方法となり得る。近年、生涯学習に基づくKDの亜種が増加している(Jang et al., 2019; Flennerhag et al., 2018; Peng et al., 2019b; Liu et al., 2019d; Lee et al., 2019b; Zhai et al., 2019; Zhou et al., 2019c; Li and Hoiem, 2017; Shmelkov et al., 2017)。その中でも、(Jang et al., 2019; Flennerhag et al., 2018; Peng et al., 2019b; Liu et al., 2019d)におけるこれらの方法は、メタ学習の基本的な考え方を採用していた。(Jang et al., 2019)では、Jang et al.は、教師-生徒アーキテクチャで何をどこに転送するかを決定することができるメタ転送ネットワークを設計した。(Flennerhag et al., 2018)では、学習プロセスを横断して知識を転送することでタスクマニフォールド上のメタ学習を実現するために、Leapと呼ばれる軽量フレームワークが提案された。Pengらは、画像の視覚情報と事前知識の両方を同時に組み込んだ数ショット画像認識のための新しい知識伝達ネットワークアーキテクチャを設計した(Peng et al., 2019b)。(Liu et al., 2019d)では、画像検索のためのセマンティックを意識した知識保存法を提案し、画像のモダリティとセマンティック情報から教師の知識を保存して転送した。さらに、生涯学習における破局的な忘却の問題に対処するために、グローバル蒸留(Leeら、2019b)、マルチモデル蒸留(Zhouら、2019c)、知識蒸留ベースの生涯GAN(Zhaiら、2019)、その他のKDベースの手法(Li and Hoiem、2017; Shmelkovら、2017)が開発されており、学習した知識を抽出し、新たなタスクで学生ネットワークを教えることができるようになってきている。

6.9. NAS-based distillation

自動機械学習(またはAutoML)の一つであるニューラルアーキテクチャ探索(NAS)は、深層神経モデルを自動的に識別し、適切な深層神経構造を適応的に学習することを目的としている。一方、知識の蒸留では、知識伝達の成功は教師からの知識だけでなく、学生のアーキテクチャにも依存する。しかし、大規模な教師モデルと小規模な学生モデルとの間にキャパシティギャップが生じ、学生が教師の知識をうまく学習することが困難になる場合がある。この問題を解決するために、知識蒸留における適切な学生アーキテクチャを見つけるために、オラクルベース(Kangら、2019)やアーキテクチャを考慮した知識蒸留(Liuら、2019h)などのニューラルアーキテクチャ探索が採用されている。さらに、知識蒸留は、AdaNAS(Mackoら、2019)、アーキテクチャ知識を蒸留したNAS(Liら、2020)、およびアーキテクチャのための教師ガイド付き検索またはTGSA(Bashivanら、2019)のようなニューラルアーキテクチャ検索の効率を向上させるためにも採用することができる。TGSAでは、各アーキテクチャ探索ステップは、構造と候補ネットワーク(または学生)が効率的に探索され、特徴の伝達が教師によって効果的に監督される教師ネットワークの中間特徴表現を模倣するように導かれる。

7. Applications

(省略)

8. Discussions

8.1. Challenges

知識蒸留では、1)教師から豊かな知識を抽出し、2)教師から知識を伝達して学生の訓練を導くことが重要である。そこで本研究では、知識の質、知識蒸留のアルゴリズム、教師と学生のアーキテクチャ、知識蒸留の背後にある理論などの観点から、知識蒸留の課題を議論する。

ほとんどのKD手法は、応答ベース、特徴ベース、関係ベースの知識を含む異なる種類の知識の組み合わせを活用している。したがって、個々の知識がどのような影響を与えているのか、また、異なる種類の知識がどのように補完的に助け合っているのかを知ることが重要である。例えば、レスポンスベースの知識は、ラベルスムージングやモデルの正規化と同様の動機を共有している(Kim and Kim, 2017; Mullerら, 2019; Dingら, 2019)。このため、異なる種類の知識を統一的なフレームワークでモデル化することはまだ課題である。

現在、ほとんどのKD手法は、新しい知識または新しい蒸留損失関数のいずれかに焦点を当てており、教師と生徒のアーキテクチャの設計は十分に調査されていないままである(Nowak and Corso, 2018; Crowleyら, 2018; Kangら, 2019; Liuら, 2019h; Ashokら, 2017; Liuら, 2019a)。実際には、知識と蒸留とは別に、教師と生徒の構造の関係も知識蒸留のパフォーマンスに大きく影響する。例えば、(Zhang et al., 2019b)に記載されているように、学生モデルはいくつかの教師モデルから知識をほとんど学習しないが、これは教師モデルと学生モデルの間のモデル能力のギャップによって引き起こされる(Kang et al., 2019)。その結果、どのようにして効果的な学生モデルを設計するか、あるいは適切な教師モデルを見つけるかは、知識蒸留における挑戦的な問題である。

膨大な数の知識蒸留の応用があるにもかかわらず、理論的な説明や経験的な評価を含む知識蒸留の理解は依然として不十分である(Lopez-Paz et al., 2015; Phuong and Lampert, 2019; Cho and Hariharan, 2019)。例えば、蒸留は特権的な情報を持つ学習の一形態とみなすことができる(Lopez-Pazら、2015)。線形教師と生徒のモデルを仮定して、蒸留を介した生徒の学習の特徴の理論的説明が研究されている(Phuong and Lampert, 2019)。さらに、知識蒸留の有効性に関するいくつかの実証的評価と分析が(Cho and Hariharan, 2019)で研究されている。しかし、知識蒸留の一般化可能性についての深い理解、特に知識の質や教師と生徒のアーキテクチャの質をどのように測定するかについては、まだ非常に困難な問題である。

8.2. Future Directions

知識と蒸留のパフォーマンスを高めるために最も重要なことは、教師ネットワークからどのような知識をどのような教師-学生アーキテクチャで学生ネットワークのどこに蒸留するかを学ぶことである。つまり、有用な知識、効果的な知識蒸留、適切な教師-生徒アーキテクチャが知識蒸留において重要な3つの側面である。このように、モデル圧縮のための知識蒸留の一般性に基づいて、上記のような困難な問題を解決するために、知識の捕捉と蒸留のための新しい戦略を開発し、新しい教師-生徒アーキテクチャを設計することが今後の課題の一つである。

深層ニューラルネットワークの高速化のためのモデル圧縮とは別に、知識蒸留は教師-生徒アーキテクチャ上の知識伝達の自然な特性のため、他の問題にも使用することができる。最近では、データのプライバシーとセキュリティの問題(Wangら、2019a)、ディープモデルの敵対的攻撃(Papernotら、2016b)、クロスモダリティ(Guptaら、2016)、マルチドメイン(Asamiら、2017)、破局的忘却の問題に知識蒸散が利用されている。2017)、破局的忘却(Leeら、2019b)、ディープモデルの学習の加速化(Chenら、2015)、ニューラルアーキテクチャ探索の効率化(Bashivanら、2019)、自己管理(Norooziら、2018)、およびデータ増強(Leeら、2019a; Gordon and Duh、2019)。もう一つの興味深い例として、小さな教師ネットワークから大きな生徒ネットワークへの知識移転は、大きなネットワークの学習を加速させることができます(Chen et al., 2015)が、これは通常の知識蒸留の動機とは全く異なります。大規模モデルがラベル付けされていないデータから学習した特徴表現は、蒸留を介して対象モデルをスーパービジョンすることもできる(Noroozi et al., 2018)。そのためには、知識蒸留を他の目的やアプリケーションに拡張することが将来的に意味のある方向性となるかもしれない。

9. Conclusion

本論文では、知識蒸留に関する包括的なレビューを、知識、蒸留スキーム、教師-生徒アーキテクチャ、蒸留アルゴリズム、アプリケーション、そして課題と今後の方向性の観点から提示する。この包括的なレビューが、知識蒸留の概要を提供するだけでなく、今後の研究課題についての洞察を提供することを期待している。