1行定義
転移学習とは、あるタスクやデータで学習したモデルの知識を、別の関連するタスクの学習に生かす手法のことです。
くわしく
転移学習は、あるタスクで身につけた知識を、別のタスクに移して使う考え方です。ピアノを習った人が、別の鍵盤楽器を早く覚えられるのに似ています。ディープラーニングでは、大量のデータで学習を済ませたモデルを出発点にして、目的のタスクを学習します。
なぜ有効なのか
ImageNetのような大規模なデータで学習したCNNは、入力に近い層でエッジや色の変化を、深い層で物の部分や形をとらえるようになります。こうした特徴は、多くの画像のタスクに共通して役立ちます。そのため、目的のタスクのデータが数百枚しかなくても、ゼロから学習するより高い精度を得やすくなります。学習にかかる時間や計算も減らせます。
狭い意味と広い意味
日本語の解説では、2つの使い方があります。
- 狭い意味:事前学習済みモデルの重みを固定し、付け替えた出力層などだけを学習する方法です。モデルを、特徴を取り出す道具として使います。
- 広い意味:学習済みの知識を別のタスクに生かす方法の全般です。事前学習済みの層まで重みを更新するファインチューニングも含みます。
問題文が転移学習とファインチューニングを対比している場合は、狭い意味で使われています。
注意点
元のタスクと目的のタスクがかけ離れていると、学習した特徴が役に立たず、かえって性能が下がることがあります。これを負の転移といいます。また、目的のデータで重みを大きく更新しすぎると、元のタスクでの能力を失う破滅的忘却が起きることがあります。
覚え方
「前の仕事の経験を、次の仕事に持ち込む」と覚えます。
G検定での出題
出題のされ方
キーワード一覧にはありませんが、項目31の名称にある中心的な概念です。少ないデータで精度を得られる理由や、出力層だけを学習する方法とファインチューニングとの違いが問われます。
混同しやすい用語
| 用語 | 意味 |
|---|---|
| 転移学習このページの用語 | あるタスクやデータで学習したモデルの知識を、別の関連するタスクの学習に生かす手法 |
| ファインチューニング | 大量のデータで事前学習したモデルの重みを初期値とし、目的のタスクのデータで追加の学習を行って重みを調整する手法 |
違いを表で比べる
◯×チェック
次の文が正しいか、誤りかを選んでください。
-
狭い意味の転移学習では、事前学習済みモデルの重みを固定し、付け替えた出力層などの新しい部分だけを学習する。
答えを見る
答え ◯ 正しい
日本語の解説でよく使われる区別です。事前学習済みの層の重みまで更新する方法は、ファインチューニングと呼んで区別します。
-
転移学習は、元のタスクと目的のタスクがまったく無関係でも、関係が深い場合と同じように効果が得られる。
答えを見る
答え × 誤り
元のタスクと目的のタスクが似ているほど、学習した特徴を生かしやすくなります。かけ離れていると、かえって性能が下がる負の転移が起きることがあります。
-
ImageNetで学習したCNNの入力に近い層は、エッジや色の変化など、多くの画像に共通する特徴をとらえていることが多い。
答えを見る
答え ◯ 正しい
入力に近い層ほど汎用的で、出力に近い層ほどタスクに固有の特徴を表します。学習済みの層を別のタスクに流用できるのは、このためです。
この用語の練習問題
出典
- G検定 試験出題範囲(シラバス2024)第1.4版 (技術分野 項目31 転移学習・ファインチューニング)
- Sinno Jialin Pan, Qiang Yang, A Survey on Transfer Learning, IEEE Transactions on Knowledge and Data Engineering 22(10), 1345–1359 (2010)
- Jason Yosinski, Jeff Clune, Yoshua Bengio, Hod Lipson, How transferable are features in deep neural networks? (2014)