データセット蒸留の包括的な調査

この記事は、蒸留学習レビュー シリーズの 3 番目の記事であり、「A Comprehensive Survey of Dataset Distillation」の翻訳です。

まとめ

近年、ディープ ニューラル モデルはほぼすべての領域で成功を収めており、最も複雑な問題ステートメントも解決しています。ただし、これらのモデルは巨大で、数百万 (または数十億) のパラメーターがあり、多くのコンピューティング能力を必要とするため、エッジ デバイスに展開することはできません。さらに、パフォーマンスの向上は、冗長なラベル付きデータに大きく依存します。より高速な速度を達成し、ラベル付きデータの欠如によって引き起こされる問題に対処するために、あるモデルから学習した情報を別のモデルに転送する知識蒸留 (KD) が提案されています。KD は、いわゆる「学生と教師」(ST) 学習フレームワークによって特徴付けられることが多く、モデル圧縮や知識伝達に広く使用されています。本稿では、近年盛んに研究されているKD学習とST学習について説明します。まず、KD とは何か、そしてそれがどのように機能するのか、なぜ機能するのかを説明することを目的としています。次に、視覚タスクに一般的に使用される KD 手法と ST フレームワークに関する最近の進歩に関する包括的な調査を提供します。全体的に、この研究分野を推進するいくつかの基本的な問題を検討し、研究の進捗状況と技術的な詳細を包括的に要約します。さらに、視覚応用における KD の研究状況を体系的に分析します。最後に、既存の方法の可能性と課題について議論し、KD と ST 学習の将来の方向性を構想します。

1 はじめに

ここに画像の説明を挿入
ディープ ニューラル ネットワーク (DNN) の成功は、多くの場合、DNN アーキテクチャの慎重な設計にかかっています。大規模な機械学習、特に画像認識や音声認識などのタスクでは、最も顕著な特徴を抽出して一般化を確実にするために、ほとんどの DNN ベースのモデルが過剰にパラメータ化されます。このような扱いにくいモデルは通常、非常に深くて幅が広く、トレーニングに多くの計算が必要で、リアルタイムで操作するのが困難です。したがって、より高速な速度を達成するために、多くの研究者は、トレーニングされた扱いにくいモデルを利用して、エッジデバイスに展開できる軽量の DNN モデルを取得しようと試みてきました。つまり、図 1(a) に示すように、扱いにくいモデルをトレーニングすると、そのモデルを使用して、リアルタイム アプリケーションや展開により適したより小さなモデルを学習できます。
一方で、DNN のパフォーマンスは、トレーニング データセットの非常に大規模で高品質なラベルにも大きく依存します。このような理由から、DNN のパフォーマンスに大きなダメージを与えることなく、ラベル付きトレーニング データの量を削減するために多くの努力が払われてきました。このデータ不足に対処する一般的なアプローチは、ソース タスクから知識を転送してターゲット タスクの学習を促進することです。古典的な例は半教師あり学習です。この学習では、少数のラベル付きデータ セットと大規模なラベルなしデータ セットのみを使用してモデルがトレーニングされます。ラベルなしの例の監視コストは非決定的であるため、ラベル付きデータとラベルなしデータからの予測を一致させるには、一貫性コストまたは正則化手法を適用することが重要です。この場合、教師と生徒の二重の役割を想定したモデルで知識が伝達されます。ラベルのないデータを使用すると、生徒はこれまでと同様に学習しますが、教師がオブジェクトを生成し、それを生徒が学習に使用します。このような学習指標の共通の目標は、図 1(b) に示すように、追加のトレーニングを行わずに生徒からより優れた教師モデルを形成することです。もう 1 つの古典的な例は、入力変換 (回転、反転、色の変更、トリミングなど) から構築された人工ラベルを使用してモデルがトレーニングされる自己教師あり学習です。この場合、図 1(c) に示すように、入力変換からの知識がモデル自体を監視してパフォーマンスを向上させるために転送されます。
本稿は、近年活発に研究されている知識蒸留(KD)学習と学生・教師(ST)学習についての論文です。一般に、KD は、同じまたは異なるカテゴリの小さなトレーニング セットを与えるだけで、人間が新しい複雑な概念を迅速に学習できるようにする主要なメカニズムとして広く認識されています。ディープ ラーニングでは、KD は建設的なトレーニング中に 1 つのネットワークから別のネットワークに情報を転送するために広く使用されている効率的な手法です。KD は [4] によって最初に定義され、Hinton らによって一般化されました。KD は、モデル圧縮 (図 1(a) を参照) と知識伝達 (図 1(b) および (c) の段落を参照) という 2 つの異なる領域で広く使用されています。モデル圧縮の場合、事前トレーニングされたより大きなモデルまたはモデルのアンサンブルを模倣するように、より小さなスチューデント モデルがトレーニングされます。目的によってさまざまな形式の知識が定義されますが、KD の共通の特徴は、知識を提供するモデルを教師と呼び、知識を学習するモデルを生徒と呼ぶ ST フレームワークにあります。
この研究では、モデル圧縮と知識伝達のための既存の KD 手法とさまざまなタイプの ST 構造の分析と分類に焦点を当てます。私たちは、この急速に発展している分野を、特に最近の進歩に重点を置いて再検討します。KD は視覚知能、音声認識、自然言語処理などのさまざまな領域に適用されていますが、ほとんどのデモンストレーションはコンピュータ ビジョン タスクで実行されるため、この論文では主にビジョン領域の KD 手法に焦点を当てます。NLP と音声認識で使用される KD 手法は、ビジョンの KD プロトタイプを使用して簡単に説明されます。最も研究されている KD 手法はモデル圧縮のためであるため、技術的な詳細、課題、可能性について体系的に説明します。同時に、半教師あり学習、自己教師あり学習などにおける知識伝達のための KD 手法にも焦点を当て、ST 学習を学習指標として使用する手法に焦点を当てます。
この分野の研究を推進する基本的な疑問のいくつかを探ります。具体的には、KD および ST 学習の背後にある理論原理は何ですか? ある蒸留方法が他の蒸留方法よりも優れているのはなぜですか? 一人の教師を使用するよりも複数の教師を使用する方が良いですか? より大きなモデルは常により優れた教師とより強い生徒を生み出すのでしょうか? 教師モデルが存在する場合にのみ、生徒は知識を習得できますか? 学生は自分で勉強できますか? オフラインの KD は常にオンライン学習よりも優れていますか?
これらの問題について議論し、既存の KD 手法の可能性を組み込み、ST フレームワークとともに KD 手法の将来の方向性を構想します。私たちは、ニューラル アーキテクチャ検索 (NAS)、グラフ ニューラル ネットワーク (GNN)、強化された KD のためのゲート メカニズムなど、最近開発された技術の重要性を特に強調します。さらに、360° ビジョンやイベントベースのビジョンなど、特定のビジョン領域における困難な問題を解決する際の KD 手法の可能性も強調します。
この文書の主な貢献は次の 3 つの側面です。

• 問題定義、理論分析、深層学習を使用した一連の KD 手法、ビジョン アプリケーションなど、KD および ST 学習手法の包括的な概要を説明します。

• KD 手法と ST フレームワークの最近の進歩を階層的かつ構造的に系統的に概説し、分析し、各カテゴリーの可能性と課題についての洞察と結論を提供します。

• 私たちは問題や未解決の問題について議論し、新しい傾向と将来の方向性を特定して、この研究分野における洞察力に富んだガイダンスを提供します。

本稿の構成は以下の通りです。まず、セクション 2 で、KD 学習と ST 学習を考慮する必要がある理由を説明します。次に、セクション 3 で KD の理論的分析を実行します。セクション 3 の後にセクション 4 ~ 8 が続き、そこで既存の手法を分類し、その課題と可能性を分析します。図 2 は、本調査で対象とする KD と ST 学習の分類を階層構造で示したものです。セクション 9 では、分類法に基づいてセクション 1 で提起された質問に対する答えを説明します。セクション 10 では、KD および ST 学習の将来の可能性を示し、セクション 11 で結論となります。

2. 背景

2.1 正式なデータセットの抽出

3 メタ学習フレームワーク

3.1 時間逆伝播法

3.2 カーネルリッジ回帰法

3.3 ディスカッション

4 データマッチングフレームワーク

4.1 勾配マッチング法

4.2 軌跡マッチング法

4.3 分布マッチング法

4.4 ディスカッション

5 因数分解データセットの抽出

6 性能比較

6.1 標準ベンチマーク

6.2 アーキテクチャ間の移植性

7 件のアプリケーション

7.1 継続的な学習

7.2 ニューラルアーキテクチャの検索

7.3 プライバシー保護

7.4 フェデレーションラーニング

7.5 堅牢性に対する反対

7.6 その他のアプリケーション

8 課題と方向性

8.1 課題

8.2 今後の方向性

おすすめ

転載: blog.csdn.net/c_cpp_csharp/article/details/130993958