AI 101
トランスファーラーニングとは何ですか?
トランスファーラーニングとは何ですか?
機械学習を実践する場合、モデルのトレーニングに時間がかかることがあります。モデル アーキテクチャを最初から作成し、モデルをトレーニングし、その後モデルを微調整するのは、膨大な時間と労力です。機械学習モデルをトレーニングするはるかに効率的な方法は、すでに定義されているアーキテクチャを使用し、場合によってはすでに計算された重みを使用することです。これが背後にある主なアイデアです 転移学習、すでに使用されているモデルを取得し、それを新しいタスクに再利用します。
転移学習のさまざまな使用方法を詳しく説明する前に、転移学習がなぜこれほど強力で便利な手法なのかを理解しましょう。
深層学習の問題を解決する
画像分類器の構築など、深層学習の問題を解決しようとしている場合は、モデル アーキテクチャを作成し、データに基づいてモデルをトレーニングする必要があります。 モデル分類器のトレーニングには、ネットワークの重みの調整が含まれます。このプロセスには、モデルとデータセットの両方の複雑さに応じて、数時間、場合によっては数日かかる場合があります。 トレーニング時間は、データセットのサイズとモデル アーキテクチャの複雑さに応じて変化します。
モデルがタスクに必要な精度を達成できない場合は、モデルを微調整し、その後モデルを再トレーニングする必要がある可能性があります。 これは、最適なアーキテクチャ、トレーニングの長さ、データセットのパーティションが見つかるまで、さらに多くの時間のトレーニングが必要になることを意味します。 分類器が役立つためには、どれだけの変数を相互に調整する必要があるかを考えると、機械学習エンジニアがモデルをトレーニングして実装するためのより簡単で効率的な方法を常に探していることは当然です。 このため、転移学習手法が作成されました。
モデルを設計してテストした後、モデルが有用であることが判明した場合は、保存して、後で同様の問題に再利用できます。
転移学習の種類
一般に、XNUMXつの異なるものがあります 転移学習の種類: モデルを最初から開発し、事前トレーニングされたモデルを使用します。
モデルを最初から開発する場合は、トレーニング データを解釈し、そこからパターンを抽出できるモデル アーキテクチャを作成する必要があります。 モデルを初めてトレーニングした後、モデルから最適なパフォーマンスを引き出すために、おそらくモデルに変更を加える必要があります。 その後、モデル アーキテクチャを保存し、同様のタスクで使用するモデルの開始点として使用できます。
XNUMX 番目の条件 (事前トレーニング済みモデルの使用) では、使用する事前トレーニング済みモデルを選択するだけです。 多くの大学や研究チームは、モデルの仕様を一般に利用できるようにする予定です。 モデルのアーキテクチャは重みとともにダウンロードできます。
転移学習を実行する場合、モデルのアーキテクチャ全体と重みを当面のタスクに使用することも、モデルの特定の部分/層だけを使用することもできます。 事前トレーニングされたモデルの一部のみを使用し、残りのモデルをトレーニングすることを微調整と呼びます。
ネットワークの微調整
ネットワークの微調整とは、ネットワーク内の一部の層だけをトレーニングするプロセスを指します。 新しいトレーニング データセットが元のモデルのトレーニングに使用されたデータセットによく似ている場合は、同じ重みの多くを使用できます。
フリーズ解除して再トレーニングする必要があるネットワーク内のレイヤーの数は、新しいデータセットのサイズに応じて増減する必要があります。 トレーニング対象のデータセットが小さい場合は、レイヤーの大部分をそのまま保持し、最後のいくつかのレイヤーだけをトレーニングすることをお勧めします。 これは、ネットワークの過剰適合を防ぐためです。 あるいは、事前トレーニングされたネットワークの最後の層を削除し、新しい層を追加してからトレーニングすることもできます。 対照的に、データセットが大規模なデータセットであり、元のデータセットよりも大きい可能性がある場合は、ネットワーク全体を再トレーニングする必要があります。 ネットワークを次のように使用するには 固定特徴抽出器、ネットワークの大部分を特徴の抽出に使用でき、ネットワークの最後の層だけを解凍してトレーニングできます。
ネットワークを微調整するときは、ConvNet の初期の層に、画像のより一般的な特徴を表す情報が含まれていることを覚えておいてください。 これらはエッジや色などの特徴です。 対照的に、ConvNet の後の層は、モデルが最初にトレーニングされたデータセット内に保持されている個々のクラスにより固有の詳細を保持します。 元のデータセットとはまったく異なるデータセットでモデルをトレーニングしている場合は、モデルの最初のレイヤーを使用して特徴を抽出し、モデルの残りの部分を再トレーニングすることをお勧めします。
転移学習の例
転移学習の最も一般的なアプリケーションは、おそらく画像データを入力として使用するアプリケーションです。 これらは多くの場合、予測/分類タスクです。 道 畳み込みニューラルネットワーク 畳み込み層は非常によく似た特徴を区別することが多いため、画像データの解釈はモデルの側面を再利用するのに役立ちます。 一般的な転移学習の問題の一例は、1000 の異なるクラスのオブジェクトで満たされた大規模なデータセットである ImageNet 1000 タスクです。 このデータセットで高いパフォーマンスを実現するモデルを開発する企業は、他の企業がモデルを再利用できるライセンスに基づいてモデルをリリースすることがよくあります。 このプロセスから得られたモデルには、次のようなものがあります。 Microsoft ResNet モデル、Google インセプション モデル、および オックスフォード VGG モデル グループ。