機械学習14-転移学習

1。概要

転移学習の目的は、無関係なデータを使用して対象タスクを改善することです。主に含まれない

  1. タスクは関連していません。たとえば、1つは猫と犬の分類子で、もう1つは虎とライオンの分類子です
  2. データは関係ありません。たとえば、どちらも猫と犬の分類子ですが、1つは猫と犬の実際の写真から、もう1つは漫画の猫と犬です。

転移学習にはデータの2つの部分があります

  1. ソースデータ。ターゲットタスクとは直接関係がないため、ラベル付きデータまたはラベルなしデータは一般に取得が簡単で、データ量も多くなります。ImageNetなどの一部のパブリックデータセットを使用できます。たとえば、機械翻訳タスクでは、中国語-英語データの量が非常に多く、ソースデータとして使用できます。
  2. ターゲットデータ。ターゲットタスクに直接関連するデータ、ラベル付きデータまたはラベルなしデータは、一般に比較的小さいです。たとえば、機械翻訳タスクでは、ポルトガル語への中国語の翻訳は比較的少なくなります。

ソースデータとターゲットデータによれば、ラベル付きデータが含まれているかどうかにかかわらず、4つのカテゴリに分類できます。

image.png

ここでは、4種類のケースとその処理方法を示します。

 

2ソースとターゲットの両方にラベルがあります

この時点では、通常両方にラベルがありますが、ソースデータの量は比較的多く、ターゲットデータの量は比較的少ないです。ターゲットデータのボリューム自体が比較的大きい場合は、ソースデータを使用せずに、ターゲットデータを直接使用してモデルをトレーニングできます。現在、2つの方法が一般的に使用されています

  1. ソースデータを事前トレーニングしてから、ターゲットデータを微調整する
  2. ソースとターゲットの2つのタスクを組み合わせてマルチタスク学習(MTL)を実行する

 

2.1微調整

モデルの微調整のアイデアは、ソースデータでモデルをトレーニングし、次にターゲットデータで微調整することです。このようにして、ソースデータから多くの知識を学び、ターゲットデータの特定のタスクに適応できます。最初にソースデータを使用してモデルをトレーニングし、次にモデルパラメーターを使用して初期化してから、ターゲットデータのトレーニングを続行します。ターゲットデータが特に小さい場合は、微調整が過剰に行われないようにする必要があります。

image.png

レイヤートランスファー

ターゲットデータが特に小さい場合、微調整もオーバーフィットする可能性があります。この時点でレイヤー転送を使用できます。

  1. 最初にソースデータを使用してモデルをトレーニングする
  2. 次に、モデルの一部のレイヤーをターゲットモデルに直接コピーします。
  3. 次に、ターゲットデータを使用して、ターゲットモデルの残りのレイヤーをトレーニングします。以前にコピーしたレイヤーはフリーズしてライブできます。

現時点では、必要なのはトレーニングモデルの数層のみであり、過剰適合はそれほど起こりません。

image.png

したがって、ここでの問題は、どのレイヤーを直接コピーする必要があるか、どのレイヤーを微調整する必要があるかということです。これは、さまざまなタスクに基づいている必要があります

  1. 音声認識では、通常、最後の数層が直接コピーされ、微調整の最初の数層がコピーされます。これは、口頭の構造が異なるため、異なる人の発音は低レベルの機能がまったく異なる一方で、セマンティクスや言語モデルなどの高レベルの機能は類似しているためです。
  2. イメージタスクでは、通常、最初の数層が直接コピーされ、次の数層の微調整がコピーされます。これは、画像内の照明や影などの低レベルの機能にはほとんど違いがなく、高レベルの機能(象の幹など)は互いに非常に異なるためです。

image.png

 

2.2マルチタスク学習マルチタスク学習

微調整では、モデルがターゲットデータに及ぼす影響のみを考慮する必要がありますが、マルチタスク学習では、モデルがソースとターゲットでより優れたパフォーマンスを発揮する必要があります。

  1. ソースとターゲットの入力フィーチャが比較的類似している場合、最初のいくつかのレイヤーを共有でき、後のレイヤーを異なるタスクで個別に処理できます。
  2. ソースとターゲットの入力特性が異なる場合、最初の数層と最後の数層を分離して、中間層を共有できます。

image.png

以下は機械翻訳のマルチタスク学習の例です

image.png

次の図は、マルチタスク学習を使用すると、同じ量のデータでエラー率を大幅に削減できることを示しています。同時に、データ量が半分未満の場合でも、単一のタスクの効果を達成できます。モデルのデータへの依存を大幅に削減すると同時に、モデルのパフォーマンスを向上させます。

image.png

 

3ターゲットにはラベルがありませんが、ソースにはラベルがあります

現時点では、ドメインを使用して、移行やゼロサンプル学習と戦うことができます

3.1ドメイン敵対的トレーニング

ニューラルネットワークの最初の数層は、通常、特徴抽出に使用されます。後者の層は、分類などの対応するタスクを実装します。私たちの目標は、特徴抽出機能がさまざまなドメインデータの影響を受けず、ドメイン固有の情報を削除し、共通の情報を可能な限り保持することです。

黒と白の背景の手書き認識、カラーの背景の手書き認識など。2つのドメインはまったく異なり、ソースモデルはターゲットデータの予測に直接使用され、効果は非常に低くなります。主にさまざまな背景色の影響を受けます。背景に影響を受けず、数値の一般的な情報を本当にキャプチャできる特徴抽出器が必要です。

image.png

ドメイン対立トレーニングを行う方法は、GANのアイデアから学ぶことができます。次の図に示すように、ネットワーク全体は3つの部分で構成されます

  1. 特徴抽出器特徴抽出器。異なるドメインデータから特徴を抽出するために使用されます
  2. 予測子ラベル予測子。ソースデータのラベルを予測するために使用されます
  3. ドメイン分類子。データがソースからのものかターゲットからのものかを区別するために使用されます。

image.png

私たちには2つの目標があります

  1. ラベル予測のACCを最大化し、実際のタスクに対するモデルの影響が悪くならないようにします。
  2. ドメイン分類子のACCを最小化して、モデルがデータの元のドメインを区別できないようにします。これにより、特徴抽出機能が異なるドメインの影響を受けないことが保証されます。ドメインのプライベート機能を抽出しないでください。異なるドメインの共通機能を抽出してみてください。

 

3.2ゼロショット学習

たとえば、ソースは猫と犬を分類することですが、サルはターゲットデータに表示されます。猿のラベルさえないので、ソースモデルを直接使用することは明らかに役に立たない。この時点で、カテゴリを直接学習するのではなく、ゼロショット学習を使用できますが、カテゴリの属性を使用できます。たとえば、足の数、尻尾の有無、角の有無、髪の毛の有無などの属性を持つテーブルを作成できます。これらの属性に基づいて、猫、犬、猿などのカテゴリを決定できます。ソースからこれらの属性を予測することを学び、次に属性ルックアップテーブルを使用して、それがどのカテゴリであるかを推測します。

image.png

 

4ソースにはラベルがなく、ターゲットにはラベルがあります

現時点では、半教師あり学習を参照できますが、半教師ありとは大きな違いがあります。半教師ありデータでは、ドメインにほとんど違いがありません。ここでのソースとターゲットには、ドメインに特定の違いがあります。大量のソースデータを使用して、自己教師あり学習タスクを作成し、特徴表現を学習できます。典型的な例は、NLPのさまざまな事前トレーニングモデルです。自動教師付き学習を使用して、自動エンコーダを構築し、ソースで事前トレーニングモデルをトレーニングします。次に、ターゲットタスクを微調整します。見る

機械学習10-半教師あり学習

機械学習13-自己教師なし教師なし学習

 

5ソースにもターゲットにもラベルがありません

現時点では、主にクラスタリングのカテゴリーであり、一般的にあまり遭遇しないため、ここでは触れません。

 

 

おすすめ

転載: blog.csdn.net/u013510838/article/details/108566050