機械学習15-メタ学習

1メタ学習とは

一般的な機械学習タスクは、トレーニングデータを通じてモデルを取得し、テストデータで検証することです。一般的に言えば、このタスクでのモデルのパフォーマンスにのみ焦点を当てます。メタ学習は別の問題を解決するために探求します。つまり、さまざまなタスクを学習することによって、学習方法を学ぶことができるでしょうか。それは学ぶことを学ぶことです。私たちが心配しているのは、特定のタスクでのモデルのパフォーマンスではなく、複数のタスクで学習するモデルの機能です。

マシンが100のタスクを学習したと想像してみてください。たとえば、画像分類、音声認識、推奨順位付けなどのタスクを機械が学習した後、テキスト分類では、以前に学習したことにより、機械がよりよく学習できます。メタ学習とは、この問題をどのように機械に学習させるかを解決することです。

image.png

一般的な機械学習タスクでは、モデルfを学習し、入力xから出力yを取得する必要があります。また、メタ学習はFを学習し、それを使用してさまざまなタスクのfを学習することです。以下に示すように

image.png

 

2なぜメタ学習が必要なのか

メタ学習の主な利点は、

  1. 学習をより効率的にします。モデルが他のタスクを学習しやすくするために、複数のタスクから学習します。
  2. サンプル数が比較的少ないタスクでは、精度と収束速度を向上させるために効率的な学習がより必要です。メタ学習は、いくつかのショット学習のためのより良いソリューションです

 

3メタ学習で学べること

メタ学習を通して、私たちは学ぶことができます

  1. モデルパラメータ。モデル初期化パラメーター、埋め込み、特徴式などを含みます。
  2. モデルアーキテクチャ。モデルのアーキテクチャは、ネットワークの複数のレイヤー、各レイヤーの設計方法など、ネットワークアーキテクチャ検索(NAS)を通じて取得できます。
  3. モデルのハイパーパラメーター。学習率、ドロップアウト率、オプティマイザーなど これはAutoMLのカテゴリです
  4. これは必ずしもネットワークモデルではないため、アルゴリズム自体。

 

4共通データセット

メタ学習は複数のタスクをトレーニングする必要があるため、通常、各タスクのサンプルは多くなく、データセット自体も数ショットです。一般的に使用されるデータセットは次のとおりです。

omn​​iglot

1623文字を含む多くの異なる言語で構成され、文字ごとに20のサンプルがあります。だから、それはいくつかのショット学習と考えることができます。

image.png

 

miniImageNet

ImageNetの数ショットバージョン

image.png

 

カブ

Caltech-UCSD Birds。さまざまな鳥の写真も数枚です。

image.png

 

5最適化の目標と損失

メタ学習の質を評価する方法、つまり、最適化の目標は何ですか?一般的に言えば、メタ学習にはデータセットとして複数の機械学習タスクが必要です。その一部はトレーニングタスクとして使用され、他はテストタスクとして使用されます。トレーニングタスクとテストタスクの両方に、トレーニングデータとテストデータが含まれます。

image.png

最初にtask1を通じてモデルf1を学習し、損失関数l1を取得します。次に、タスク2でモデルf2を学習し、l2を取得します。類推により、すべてのタスクの損失関数の合計が得られます。これは、メタ学習の損失関数です。次のように

image.png

私たちの目標は、この損失関数L(F)を減らすことです。

image.png

 

6 MAML

image.png

ICML 2017

ディープネットワークの高速適応のためのモデルにとらわれないメタ学習

 

6.1解決するために使用される問題

MAMLの焦点は、モデルの初期化パラメーターの学習にあります。これは、事前学習モデルの目標と同じです。事前学習モデルは、監視ありまたは自己監視ありの方法を使用して、最初に十分なデータセットでタスクAのモデルをトレーニングし、次にモデルのパラメーターを使用して、少ないデータでタスクBを初期化します。転移学習により、データ量が比較的少ないタスクもトレーニングできます。メタ学習モデルと事前学習モデルの両方がモデルパラメータの初期化に役立ちますが、2つの違いは依然として非常に大きいです

  1. プレトレインモデルのタスクA、一般的に言えば、データの量は十分です。そうでないと、自分でトレーニングできず、適切な初期化パラメーターを取得できません。
  2. プレトレインモデルの初期化パラメーターは、タスクAで良好に機能することに焦点を当てており、タスクBでは適切でない場合があります。メタ学習は、初期化パラメーターを使用して各タスクのトレーニングを継続し、効果は良好です。モデルの可能性に焦点を当てています

image.png

 

6.2損失と最適化の目標

MAMLロス機能は以下の通り

image.png

すべてのタスクのテストセットでの損失の合計がMAMLの損失です。この損失を最小限に抑える必要があります。これは、勾配降下法によって実現できます。

 

6.3イノベーション

MAMLの革新は、モデルのトレーニング時に、モデルパラメーターが単一のタスクで一度だけ更新されることです。Li Hongyi先生は主な理由は

  1. MAMLは、モデルに単一のタスクがあり、パラメーターが1回だけ更新され、適切な初期化パラメーターを取得できることを期待しています。
  2. メタ学習データセットは、通常、数ショットです。それ以外の場合、多くのタスクとトレーニングには長い時間がかかります。いくつかのショットのシナリオでは、一般的なモデルパラメーターを数回更新することはできません。
  3. 初期化パラメーターはモデルのトレーニング時に一度だけ更新されますが、タスクテストでは、パラメーターを複数回更新してモデルを完全にトレーニングできます。
  4. 通常、メタ学習には多くのタスクが含まれ、単一のタスクは1回だけ更新されるため、学習の効率を確保できます。

 

6.4パラメータを更新する方法

MAML更新パラメーターのプロセスは次のとおりです

  1. メタ学習パラメータφ0を初期化
  2. φ0勾配から1度減少し、更新してθmを取得します
  3. タスクmで一度パラメーターを更新する
  4. 2番目のθの方向によって、φの更新方向が決定され、φ1が取得されます。

モデルの事前学習では、φとθの更新は常に一貫しています。

image.png

 

7爬虫類

image.png

openAI、2018、一次メタ学習アルゴリズムについて

 

7.1モデルの機能

MAMLと同様に、爬虫類もモデルパラメータの初期化に焦点を当てています。したがって、損失関数は基本的に同じです。違いは、プリトレインモデルとMAMLの特性を組み合わせたものであり、モデルパラメータの更新が異なります。Reptileはまた、最初にパラメーターφ0を初期化し、次にタスクmをサンプリングし、それを(MAMLで1回ではなく)複数回更新して、適切なパラメーターθmを取得します。θmの方向を使用して、φ0をφ1に更新します。同様にφ2に更新

image.png

 

おすすめ

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