Python メタラーニング - 一般人工知能の実装 第 1 章 読書メモ

この本のコード: https://github.com/sudharsan13296/Hands-On-Meta-Learning-With-Python
この本の ISBN 番号: 9787115539670

ここに画像の説明を挿入します

第1章

1.1 メタ学習

メタ学習では、さまざまなタスクの実行方法を学習できる一般的な人工知能モデルを、最初からトレーニングすることなく生成できます。非常に少数のデータ ポイントを使用してメタ学習モデルをトレーニングし、さまざまな関連タスクを完了できます。そのため、新しいタスクの場合、メタ学習モデルは以前のデータ ポイントを使用できます。関連タスクから得た知識、トレーニングを一から始める必要はありません。

データセットには犬と猫という 2 つのカテゴリがあるため、デュアル (n = 2) カテゴリ k サンプル学習と呼ぶことができます。n はデータセット内のカテゴリの数を表します。k サンプル学習の k は、各カテゴリのデータ ポイントの数を表します。

モデルが少数のデータポイントから学習できるように、同じ方法でデータポイントをトレーニングします。したがって、データ セット D がある場合、サポート セットと呼ばれるデータ セット内の各カテゴリからいくつかのデータ ポイントを選択します同様に、クエリセットと呼ばれる、各カテゴリからいくつかの異なるデータ ポイントを選択しますしたがって、サポート セットを使用してモデルをトレーニングし、クエリ セットを使用してモデルをテストします。モデルをエピソード形式でトレーニングします。つまり、各段階でデータ セット D から少数のデータ ポイントを抽出し、サポート セットとクエリ セットを準備し、トレーニングにサポート セットとトレーニングにクエリ セットを使用します。 .テスト。したがって、複数の段階を経た後、モデルはより小さなデータセットから学習する方法を学習します。

1.2 メタ学習の種類

  • 計量空間の学習
  • 学習初期化
  • 学習オプティマイザー

1.2.1 計量空間の学習

計量ベースのメタ学習シナリオでは、適切な計量空間を学習します。2 つの画像間の類似性を学習したいとします。メトリクスベースのシナリオでは、単純なニューラル ネットワークを使用してデータを抽出します。特徴を抽出する、そして2 つの画像の特徴間の距離を計算して類似点を見つけますこの方法は、データポイントが少ない少数ショット学習で広く使用されています。次の章では、シャム ネットワーク、プロトタイプ ネットワーク、リレーショナル ネットワークなどのメトリクスベースの学習アルゴリズムを紹介します。

1.2.2 学習の初期化

この方法では、最適な初期パラメータ値を学習しようとします。それはどういう意味ですか?画像を分類するためのニューラル ネットワークを構築しているとします。まずランダムな重みを初期化し、損失を計算し、勾配降下法によって損失を最小限に抑えます。したがって、勾配降下法を使用して、損失を最小限に抑える最適な重みを見つけます。重みをランダムに初期化するのではなく、最適な値または最適な値に近い値で初期化すると、より早く収束し、迅速に学習することができます。次の章では、MAML、Reptile、Meta-SGD などのアルゴリズムを通じてこれらの最適な初期重みを正確に見つける方法を紹介します。

MAML と Reptile では、より優れた、利用可能なものを見つけようとしています。複数の関連タスク少ないデータポイントで迅速に学習できるように、時間の経過とともに一般化するモデルパラメーター。

1.2.3 学習オプティマイザー

このアプローチでは、オプティマイザーを学習しようとします。一般的にニューラル ネットワークを最適化するにはどうすればよいでしょうか? 答えは、大規模なデータセットでトレーニングし、勾配降下法を使用して損失を最小限に抑えることによってニューラル ネットワークを最適化することです。しかし、少数ショットの学習シナリオでは、データセットが小さいため、勾配降下は失敗します。したがって、この場合は、オプティマイザー自体について学習します。学習を試みるベース ネットワークと、ベース ネットワークを最適化するメタネットワークの 2 つのネットワークがあります。

を使用しております従来の勾配降下法オプティマイザーの代わりにリカレント ニューラル ネットワーク RNN (LSTM も使用可能)勾配降下の動作は基本的に、出力層から入力層への一連の更新です。RNN を使用して更新を RNN セルに保存できるように、これらの更新を状態に保存します。

このアルゴリズムの主なアイデアは、勾配降下法を RNN に置き換えることです。私たちは RNN を通じて勾配降下法を実行する方法を学習しています。この RNN は勾配降下法によって最適化されています。

RNN を使用して最適なパラメーターを見つけます。したがって、RNN (オプティマイザー) は最適なパラメーターを見つけて、最適化オブジェクト (ベース ネットワーク) に送信します。最適化オブジェクトはこのパラメーターを使用して損失を計算し、損失を RNN に送信します。この損失に基づいて、RNN は勾配降下法を通じてそれ自体を最適化し、モデル パラメーター θ を更新します。

RNN は、最適化オブジェクトの勾配 ▽ tとその前の状態 h tを入力として受け取り、出力、つまりオプティマイザーの損失を最小限に抑える更新 g tを返します。関数 m を使用して RNN を表します。
ここに画像の説明を挿入します
ここに画像の説明を挿入します
これはモデルのパラメーター値を更新するために使用できますここに画像の説明を挿入します

ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/qq_56039091/article/details/127239583