AI 101
トランスファーレーニングとは?

トランスファーレーニングとは?
機械学習を実践する際、モデルをトレーニングするには長い時間がかかることがあります。モデルアーキテクチャを一から作成し、モデルをトレーニングし、モデルを微調整することは、多大な時間と労力が必要です。モデルをトレーニングするためのより効率的な方法は、すでに定義されたアーキテクチャを使用することです。すでに計算された重みを持つモデルを使用することもできます。これがトランスファーレーニングの主な考え方です。すでに使用されているモデルを新しいタスクに転用することです。
トランスファーレーニングが使用されるさまざまな方法について説明する前に、トランスファーレーニングがなぜそんなに強力で便利なテクニックであるのかを理解するために、少し時間を費やしましょう。
ディープラーニングの問題を解決する
ディープラーニングの問題、たとえば画像分類器を構築することを試みている場合、モデルアーキテクチャを作成し、モデルをデータでトレーニングする必要があります。モデル分類器をトレーニングするには、ネットワークの重みを調整するプロセスが必要です。このプロセスは、モデルとデータセットの複雑さによっては、数時間または数日かかる場合があります。トレーニング時間は、データセットのサイズとモデルアーキテクチャの複雑さに比例して増加します。
モデルがタスクに必要な精度を達成しない場合、モデルを微調整する必要があり、モデルを再トレーニングする必要があります。これは、最適なアーキテクチャ、トレーニング期間、データセットパーティションが見つかるまで、さらに数時間のトレーニングを意味します。クラス分類器が有用になるために、多くの変数が一致する必要があることを考えると、機械学習エンジニアが常にモデルをトレーニングして実装するためのより簡単で効率的な方法を探していることは当然です。したがって、トランスファーレーニングテクニックが作成されました。
モデルを設計してテストした後、モデルが有用であることが証明された場合、モデルは後で類似の問題に対して保存して再利用できます。
トランスファーレーニングの種類
一般的に、トランスファーレーニングには2つの種類があります。スクラッチからモデルを開発することと、事前トレーニング済みのモデルを使用することです。
モデルをスクラッチから開発する場合、トレーニングデータを解釈し、パターンを抽出できるモデルアーキテクチャを作成する必要があります。モデルが最初にトレーニングされた後、モデルを最適なパフォーマンスにするために変更する必要がある場合があります。次に、モデルアーキテクチャを保存し、類似のタスクに使用するための出発点として使用できます。
2番目の条件、つまり事前トレーニング済みモデルの使用の場合、事前トレーニング済みモデルを選択するだけで済みます。多くの大学や研究チームが、モデル仕様を一般に公開しています。モデルアーキテクチャと重みをダウンロードできます。
トランスファーレーニングを実行する場合、モデルアーキテクチャと重みのすべてをタスクに使用するか、モデルの特定の部分/層のみを使用することができます。事前トレーニング済みモデルの一部のみを使用し、モデルの残りの部分をトレーニングすることをファインチューニングと呼びます。
ネットワークのファインチューニング
ネットワークのファインチューニングとは、ネットワークの特定の層のみをトレーニングすることを指します。新しいトレーニングデータセットが元のモデルでトレーニングされたデータセットと非常に似ている場合、多くの同じ重みを使用できます。
ネットワーク内の層の数が、再トレーニングされるべき層の数に比例して増加する必要があります。トレーニングするデータセットが小さい場合、多くの層を固定し、最後の数層のみをトレーニングすることがベストプラクティスです。これは、ネットワークが過剰適合しないようにするためです。代わりに、事前トレーニング済みネットワークの最後の層を削除し、新しい層を追加してトレーニングすることもできます。対照的に、データセットが大きい場合、元のデータセットよりも大きい場合、ネットワーク全体を再トレーニングする必要があります。ネットワークを固定された特徴抽出器として使用する場合、ネットワークの大部分を使用して特徴を抽出し、ネットワークの最後の層のみを解凍してトレーニングします。
ネットワークをファインチューニングする場合、ConvNetの初期層には画像のより一般的な特徴、たとえばエッジや色が含まれていることを覚えておく必要があります。対照的に、ConvNetの後層には、モデルが最初にトレーニングされたデータセット内の個々のクラスに特有の詳細が含まれています。如果、モデルを元のデータセットとかなり異なるデータセットでトレーニングする場合、モデルの中間層を使用して特徴を抽出し、モデルの中間層を再トレーニングする必要がある場合があります。
トランスファーレーニングの例
トランスファーレーニングの最も一般的な応用例は、画像データを入力として使用するものです。画像データを使用する分類/予測タスクが多いです。畳み込みニューラルネットワークが画像データを解釈する方法は、モデルの再利用を可能にします。畳み込み層は、非常に似た特徴を区別することが多いからです。トランスファーレーニングの一般的な例は、ImageNet 1000タスクです。これは、1000個の異なるオブジェクトクラスの巨大なデータセットです。このデータセットで高いパフォーマンスを達成したモデルを開発する企業は、他者がこれらのモデルを再利用できるようにライセンスを公開しています。このプロセスによって生まれたモデルには、Microsoft ResNetモデル、Google Inceptionモデル、Oxford VGGモデルグループがあります。












