事前に学習したモデルを用いて新しいモデルを高速に学習するディープラーニングのアプローチ

転移学習は、既に学習されたモデルを、他の類似タスクのモデルを学習するために使用する深層学習アプローチです。転移学習を用いたネットワークは、ディープラーニング モデルをゼロから学習させるよりも迅速で簡単に使用できます。この転移学習のアプローチは一般的に、物体検出、画像認識、音声認識等で使用されています。

転移学習は次の理由からよく利用されています。

  • 既に大規模なデータセットで学習されているモデルを利用して、比較的少ないラベル付きデータからモデルを学習することができる
  • 学習時間と計算リソースを大幅に削減できる。新しいモデルの学習には多くのエポック(全データセットを使った1トレーニングサイクル)数を必要としますが、転移学習の場合はそれが少なく済みます。

ゼロからの学習 vs. 転移学習

ディープラーニングでよく使用される2つのアプローチは、ゼロからのモデル学習と転移学習です。どちらのアプローチにも利点があり、異なる深層学習のタスクに使用することができます。

ゼロからモデルを開発し、学習することは、既存のモデルを使用できない特殊なタスクにおいて有効です。ただし、一般的にこの方法は、正確な結果を得るためには大量のデータを必要とします。例えば、テキストを検証する際、多数のデータサンプルを必要とします。テキスト分析において事前に学習されたモデルを利用できない場合は、ゼロからモデルを開発することが推奨されます。

転移学習は、物体認識などに適していて、AlexNetやGoogLeNetなどの既に学習済みの様々なモデルをベースとして使用することができます。例えば、花の分類タスクにおいて、利用可能なデータが限られている植物学のプロジェクトがある場合、画像を1,000カテゴリに分類するAlexNetモデルから重みやレイヤーを活用し、最終的な分類レイヤーだけを置き換えることで実現できます。

ゼロからモデルをトレーニングする場合と転移学習を行う場合の比較

下のグラフは、転移学習を用いたモデルとゼロから学習したモデルのネットワークパフォーマンスを示しています。転移学習では、より短時間で、より高い精度のモデルを実現できます。

ゼロからのトレーニングとトランスファー学習のネットワークパフォーマンス

転移学習はどのように実装されるのでしょうか?

このアプローチは、一般的に以下のような手順を踏みます:

  1. 事前学習済みネットワークをロードする。新しいタスクに似た、関連性のある学習済みのネットワークを選択します
  2. 新しいタスクの分類レイヤーに置き換えます。新しいタスクと利用可能なデータ数に応じて、重みを微調整することもできます。一般的に、データが多ければ多いほど、調整するレイヤーの数を多くできます。データが少ない場合、過適合を起こすことがあります
  3. 新しいタスクのデータでネットワークを学習します
  4. 新しいネットワークの精度をテストします

転移学習のワークフロー

転移学習の詳細は Deep Learning Toolbox™ や Computer Vision Toolbox™を参照ください。

参考: 畳み込みニューラルネットワーク, 人工知能(AI), 機械学習, 教師なし学習, AdaBoost, 教師あり学習, Statistics and Machine Learning Toolbox