この記事の内容の一部はブログリンク[1]からのものであり、私が読んだいくつかの論文を補足するものです。モデル蒸留は、自然言語処理、コンピューター ビジョン、音声認識などの分野で広く研究されてきました。この読書ノートには、コンピューター ビジョンに関連するいくつかの論文のみが含まれています。 モデル圧縮と高速化のための4つの技術は、効率的な小規模ネットワークの設計、剪定、量子化、蒸留である[2]。蒸留とは知識の蒸留であり、教師ネットワークの知識を生徒ネットワークに転送し、生徒ネットワークのパフォーマンスが教師ネットワークのパフォーマンスと同じになるようにします。その後、学生ネットワークを携帯電話やその他のエッジデバイスに問題なく展開できます。通常、蒸留は 2 つの方向で実行されます。1 つは深くて大きなネットワークから浅くて小さなネットワークへ、もう 1 つは分類器のアンサンブルから個々の分類器へです。 2015年にHintonら[2]は、ニューラルネットワークにおける知識蒸留(KD)技術/概念を初めて提案しました。これまでの研究[3-4]と比較すると、これは一般的で単純な異なるモデル圧縮技術である。具体的には、第一に、Buciluaらの研究[3]と比較すると、Hintonらの研究は教師ネットワークまたはアンサンブルネットワーク(多くの教師ネットワーク)の出力ロジットを使用しているのに対し、前者は複雑なアンサンブルシステム(SVM、バギングツリー、ブーストツリーなどの10ベースの学習者)を使用してMUNGEによって生成された疑似データを予測し、疑似ラベルを取得し、これらの疑似ラベル付き疑似データと元のトレーニングデータを使用して高速で小さなネットワークをトレーニングすることで、「圧縮」の目的を達成しています。特に、モデルサイズを100〜100,000倍圧縮し、実行速度を100〜10,000倍高速化できます。第二に、Liらの研究[4]と比較すると、Hintonらの研究は異なる温度を使用して教師ネットワークによって出力される小さなロジットを最大限に活用しているのに対し、前者は温度1を使用しており、蒸留モデルがうまく機能していません。 BaとCaruanaの研究[5]では、確率値の代わりにロジットをターゲットとして初めて使用し、KDに影響を与えました。通常、この分類タスクにおける低確率カテゴリと高確率カテゴリの関係をダーク知識と呼びます。 知識蒸留[2]の原理は、簡単に言えば、まず大規模データを用いて教師ネットワークを訓練し、次に大規模データを用いて生徒ネットワークを訓練することである。このときの損失関数は2つの部分から構成される。1つは教師ネットワークと生徒ネットワークの出力ロジットを用いて蒸留損失/KLダイバージェンスを計算することであり([2]の式(4)を参照)、もう1つは生徒ネットワークの出力とデータラベルを用いてクロスエントロピー損失を計算することである。 Hinton らの研究では、手書き数字認識と音声認識を例に、上記の蒸留の有効性を検証しました。蒸留モデルは確かに教師ネットワークと同じ一般化能力を獲得しました。 2019年11月23日現在、HintonらのKD[2]は2,489回引用されています。過去 5 年間で KD に何が変わったか見てみましょう。 (ICLR 2015) FitNets Romeroら[6]は、教師ネットワークの最終出力ロジットを使用するだけでなく、その中間隠れ層パラメータ値(中間表現)も使用して生徒ネットワークをトレーニングし、深くて細かいFitNetを取得します。前者はKDの内容であり、後者は著者が提案したヒントベースのトレーニングです(図1参照)。教師ネットワークと生徒ネットワークの出力特徴マップのサイズが異なるため、ヒントを提供する特徴マップは通常大きくなり(図 1 の中央の緑色のボックスの出力)、ガイド付き特徴マップ(図 1 の中央の赤色のボックスの出力)は小さくなります。著者は、畳み込みベースの回帰器を導入して、特徴マップを同じサイズにします。入力は同じであり、出力は可能な限り類似することが求められるため、中間の隠れ層のパラメータ値も可能な限り類似したものになります。 図1: プロンプトベースの学習 (ICLR 2017) 注意にもっと注意を払うZagoruykoとKomodakisは、注意を使って知識を伝達することを提案しました[7]。具体的には、図2に示すように、活性化ベースと勾配ベースの空間注意マップを使用しました。活性化ベースの空間注意マップは、入力が 3 次元の活性化値テンソルで、出力が 2 次元の空間注意マップであるマッピング関数 F を構築します。著者はそのようなマッピング関数 F を 3 つ示しており、それらはすべて有効です。勾配ベースの空間注意マップは、Simonyanら[8]の研究、すなわち入力感度マップを使用します。簡単に言えば、KD は教師ネットワークと生徒ネットワークの出力確率分布が類似することを期待しますが、Paying More Attention to Attention は教師ネットワークと生徒ネットワークの中間活性化が元の RGB 活性化領域に類似することを期待します。 2 種類の知識移転の効果は重ね合わせることができます。 図2: 注意マップ (NIPS 2017) 効率的な物体検出モデルの学習Chen ら [9] は、KD [2] とヒント学習 [6] を使用して、教師 Faster R-CNN の知識を生徒 Faster R-CNN に転送しました。図 3 に示すように、物体検出の場合、著者らは分類の不均衡問題を解決するために、元の KD クロスエントロピー損失をカテゴリ重み付けクロスエントロピー損失に変更しました。検出ボックス回帰の場合、著者らは教師回帰損失を生徒回帰損失の上限として使用しました。バックボーンの中間表現の場合、著者らは特徴適応にヒント学習を使用しました。 2 段検出器は、1 段検出器やアンカーフリー検出器よりも複雑です。将来的には、1 段検出器やアンカーフリー検出器にも KD が使用されると考えられます。この記事では、オブジェクト検出と知識蒸留を組み合わせた実践的な経験を紹介します。 図3: より高速なR-CNNの抽出 (arXiv 2017) TuSimpleのニューロン選択性転送NST[10]は、最大平均不一致を使用して中間計算層で分布マッチングを実行します。 ( AAAI 2018) TuSimpleのDarkRank DarkRank[11]は、KDで使用される知識は単一のサンプルから得られると考えており、異なるサンプル間の関係は無視しています。したがって、著者らはサンプル間の類似性から得られる新たな知識を提案している。検証タスクは、人物の再識別と画像の検索です。 (CVPR 2017) 知識蒸留からの贈り物Yimらの研究[12]では、KDが次の3つのタスクに役立つことが示されました。1. 高速ネットワーク最適化、2. モデル圧縮、3. 転移学習。著者の知識蒸留法は、生徒ネットワークのFSP マトリックス (解決手順の流れ)と教師ネットワークの FSP マトリックスをできるだけ同じにすることです。 FSP 行列は、図 4 に示すように、畳み込みネットワークの 2 つの計算層の結果 (特徴マップ) 間の関係を指します。この関係を記述するために、グラミアン行列が使用されます。教師ネットワークの「知識」は、いくつかの FSP マトリックスの形で抽出されます。教師ネットワークと生徒ネットワークの FSP マトリックスを最小化することで、教師から生徒への知識が抽出されます。著者の実験では、この知識転送方法が FitNet よりも優れていることが示されています。 図4: FSPマトリックス (arXiv 2019) 対照的表現蒸留 (CRD) Tianらの研究[13]では、オリジナルのKDはネットワーク出力がカテゴリ分布である場合に適しているが、KLダイバージェンスが定義されていないため、画像処理ネットワーク(RGB情報の処理)の表現/特徴を深層処理ネットワーク(深度情報の処理)に移行するようなクロスモーダル蒸留には適していないと指摘されています。著者らは対照的な目的を使用して、構造化された特徴知識と高次の出力依存性の関連性を捉えます。簡単に言えば、対照学習とは、特定のメトリック空間内で正のペアがより近く、負のペアがより遠くにある表現を学習することです。 CRD は、図 5 に示すように 3 つの特定のアプリケーション シナリオに適用できます。そのうち、モデル圧縮と統合蒸留は、元の KD に適用可能なタスクです。ここで少し話題から外れます。ドメイン適応に精通している学生は、ピクセルレベルの適応 (CycleGAN)、特徴レベルの適応、および出力空間の適応 (AdaptSegNet) が、ターゲット ドメイン データへのモデルの適応を改善するための 3 つの角度であることを知っておく必要があります。本来のKDは出力空間蒸留、CRDは機能蒸留です。この2つは重ね合わせて使い分けることもできます。 図5: 対照的表現蒸留の3つの応用シナリオ (arXiv 2019) 教師アシスタント知識蒸留(TAKD) Mirzadeh SIらの研究[14]は、KDが必ずしも効果的ではないことを指摘した。教師ネットワークと生徒ネットワーク間のモデルサイズのギャップが大きすぎると、KD は失敗し、生徒ネットワークのパフォーマンスが低下します [これには特別な注意が必要です]。著者は、図 6 に示すように、教師ネットワークと生徒ネットワークの間にアシスタント指導ネットワークを導入します。 TAKD の原理は、簡単に言えば、教師ネットワークとティーチング アシスタント ネットワーク間で知識蒸留を実行し、次にティーチング アシスタント ネットワークと学生ネットワーク間で知識蒸留を実行することであり、これを多段階知識蒸留と呼びます。 図6: ティーチングアシスタントの知識蒸留 (TAKD) (ICCV 2019)知識蒸留の有効性についてチョーとハリハランの研究[15]はKDの有効性に焦点を当て、教師ネットワークの精度が高いことが生徒ネットワークの精度が高いことを意味しないと結論付けました。この結論はMirzadeh SIら[14]の研究と一致している。容量の不一致により、生徒ネットワークは教師ネットワークを安定して模倣できなくなります。興味深いことに、チョーとハリハランの研究では、上記のようなTAKDの多段階蒸留は効果的ではないと主張し、講じるべき対策は教師ネットワークのトレーニングを事前に停止することであると提案しています。 (ICCV 2019) 特徴蒸留の包括的な見直しHeoらの研究[16]は特徴蒸留に焦点を当てており、これはHintonらの研究、つまりダークナレッジや出力蒸留とは異なります。隠れ層の特徴値/中間表現の蒸留は FitNet から始まります。特徴蒸留に焦点を当てたこの論文は、2種類の知識を伝達します。1つ目はReLU後の特徴応答の大きさであり、2つ目は各ニューロンの活性化状態です。 ResNet50を学生ネットワーク、ResNet152を教師ネットワークとして使用し、著者の特徴蒸留法を使用すると、学生ネットワークResNet50(学生)は76.16から78.35に改善され、教師ネットワークResNet152の78.31(ImageNetのトップ1)を上回りました。さらに、本論文では、一般的な分類、検出、セグメンテーションという3つの基本タスクに関する実験を実施しました。 Heoらは以前、AAAI2019で活性化境界に基づく知識蒸留を提案した[17]。 (ICCV 2019) ディープポーズ回帰ネットワークからの知識の抽出Saputraらの研究[18]は、回帰タスクに使用されるネットワークの知識の抽出において、一定の実用的な指針となる価値がある。 (arXiv 2019) ルート制約最適化 (RCO) Jin、Pengらの研究[19]はカリキュラム学習に着想を得たもので、生徒と教師の間に大きなギャップがあると蒸留の失敗につながることを知っていました。彼らは、図7に示すように、ルート制約ヒント学習を提案しました。簡単に言うと、教師ネットワークをトレーニングするときに、いくつかの中間モデル、つまりチェックポイントが存在します。RCO の論文ではこれをアンカー ポイントと呼んでいます。これらの中間モデルのパフォーマンスは異なります。したがって、学生ネットワークは、これらの中間モデルに基づいて、簡単なものから難しいものまで段階的にゆっくりと学習することができます。さらに、この論文では、オープンな顔認識データセット MegaFace で実験を行い、0.8MB のパラメータで 1:10^6 タスクで 84.3% の精度を達成しました。 図7: ルート制約ヒント学習 (arXiv 2019) アーキテクチャを考慮した知識蒸留(AKD) Liuらの研究[20]では、教師ネットワークが与えられれば最適な生徒ネットワークが存在する、つまり教師ネットワークの重みが蒸留されるだけでなく、教師ネットワークの構造も蒸留されて生徒ネットワークが得られることが指摘されています。 (「ネットワーク プルーニングの価値を再考する」という記事では、プルーニングされたネットワークは最初からトレーニングして良好なパフォーマンスを達成できることも指摘されており、検索/プルーニングによって得られるネットワーク構造が非常に重要であることが示されています。) (ICML 2019) 知識蒸留の理解に向けてPhuongとLampertの研究[21]では、線形分類器(層の数が1)と深層線形ネットワーク(層の数が2以上)を研究し、学生モデルが何を学習しているのかという疑問に答えています。 (生徒は何を学ぶのか?)生徒モデルはどれくらい学ぶのか? (学生はどのくらい速く学習するのか?)、データ ジオメトリ、最適化バイアス、強い単調性という 3 つの側面から蒸留が機能する理由を説明します。 (蒸留がなぜ機能するのか) 。数学が得意な学生はこの論文を読むことができます。 (ICLR 2016) 蒸留と特権情報の統合Lopez-Pazら[22]の研究は、機械がお互いから学習できるようにする2つの技術、蒸留と特権情報を組み合わせ、蒸留を一般化する新しいフレームワークを提案しました。蒸留を理論的に解説した論文です。 (ICML 2018) Born-Again ニューラル ネットワーク(BAN) 学生モデルの容量が教師モデルの容量と等しいため、BAN はモデル圧縮とは見なされません。しかし、Furlanelloら[23]は、KD法を用いて同等のモデル容量を持つ生徒ネットワークを訓練すると教師ネットワークを上回る結果になることを発見し、そのような生徒ネットワークをマスターネットワークと呼んだ。この発見は本当に驚きです! Hinton のダーク ナレッジの理解とは異なり、BAN の著者である Furlanello らは、ソフト ターゲット分布が機能するのは、それが重要度サンプリング重みであるためであると考えています。 (ICLR 2018)Apprentice [24]は、量子化と蒸留技術を組み合わせたKD技術を使用して、低精度ネットワークの分類性能を向上させました。量子化の導入により、教師ネットワークは量子化されていないパラメータを持つ高精度ネットワークになり、見習いネットワークは量子化されたパラメータを持つ低精度ネットワークになります。 (ICLR 2018)蒸留と量子化によるモデル圧縮この研究[25]はApprenticeに似ており、量子化と蒸留技術を組み合わせることで浅く量子化された小さなネットワークを得ることを目的としています。 (CVPR 2019) 構造化知識の蒸留Liuらの研究[26-27]では、図8に示すように、セマンティックセグメンテーション、深度推定、物体検出などの高密度予測タスクのために、ダークナレッジのピクセル単位の蒸留、マルコフランダムフィールドのペア単位の蒸留、条件付き生成敵対ネットワークの全体論的蒸留を統合しました。 図8: 構造化された知識の蒸留 (arXiv 2019) xxx Liらによる研究[28]。 (arXiv 2019) xxx Kimらによる研究[29]。 モデル圧縮において、モデル蒸留はあらゆるネットワーク(大規模ネットワークから小規模ネットワーク、再帰型ネットワークから畳み込み型ネットワーク、統合型ネットワークから単一ネットワークなど)に使用できるため、非常に魅力的です。そのため、広く研究され、特定のビジュアルコンピューティングタスクに適用されてきました。世の中にただ飯はない。蒸留の「落とし穴」が徐々に探究され発見され、蒸留技術の応用に貴重な経験を提供してきた。知識蒸留の背後にある原理も研究され始めています。つまり、蒸留には単純な理論から具体的な応用まで、多くの研究と実践があるので、試してみる価値はあるでしょう。原則や論文の解釈に関するその他の有用な紹介については、Zhihu で「知識蒸留」を検索してください。 |
<<: Alibaba DAMO Academyは、勾配を直接ターゲットとし、既存のオプティマイザーを1行のコードで置き換えることができる新しい最適化手法を提案しています。
>>: アルゴリズムを視覚化するオープンソース プロジェクトをお勧めします。
次世代の集中型電子電気アーキテクチャでは、中央+ゾーン中央コンピューティング ユニットと地域コントロ...
プラスチック廃棄物が海洋生物にとって常に恐ろしい脅威となっていることは誰もが知っているはずです。しか...
大規模モデルの時代において、Transformer は科学研究分野全体を一手にサポートします。 Tr...
データサイエンティストとして、業界の新しい知識グラフをまとめ、技術専門家と共有し、ビッグデータの知識...
CCTVの報道によると、中国は世界最大のロボット市場となっている。今年1月から10月まで、中国の産...
[[322859]]この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI...
近年、自動車業界はインテリジェント車両システムの出現により大きな変化を遂げています。これらのシステム...
AI がリーダーシップ能力を強化できるとしたらどうでしょうか? チームをより深く理解し、チームのニー...
2017年、『エコノミスト』誌は、石油ではなくデータが世界で最も価値のある資源になったと宣言し、この...