転移学習とは
Transfer Learning
あるタスク・ドメインで学習したモデルの知識を、別の関連タスク・ドメインへ再利用する機械学習の手法
ひとことで言うと
あることで学んだ知識を、別の似たことに応用する学習方法。
概要
転移学習とは、あるタスク・ドメインで学習したモデルの知識(パラメータや特徴表現)を、別の関連するタスク・ドメインに再利用する機械学習の手法。 ゼロから学習する場合と比べて、必要なラベル付きデータ量と計算コストを抑えながら、目的タスクでの性能を高められる点が特徴。 画像認識分野ではImageNet等の大規模データセットで事前学習したCNNの畳み込み層を特徴抽出器として流用する手法が古くから使われ、自然言語処理分野ではBERTやGPTのように大規模コーパスで事前学習したモデルを、ファインチューニングを通じて個別タスクに適応させる形で広く応用されている。 転移元と転移先のタスクが近いほど効果が高く、大きく異なる場合は転移した知識がかえって悪影響を及ぼす負の転移(negative transfer)が起きることもある。
背景
大量のラベル付きデータと計算資源をタスクごとに用意してゼロから学習するのは非効率であり、多くのタスクに共通する低レベルの特徴やパターンを再利用できないかという発想から転移学習が生まれた。 深層学習では、浅い層ほど汎用的な特徴(エッジ・基本的な文法構造等)を、深い層ほどタスク固有の特徴を学習する傾向が知られており、これが転移学習の理論的な裏付けの1つになっている。
歴史
1990年代: 転移学習の概念自体が機械学習分野で提案される。 2012年以降: ImageNetで事前学習したCNNの特徴を他の画像タスクへ転用する手法が画像認識分野で一般化。 2018年: ULMFiTとBERTがNLP分野に事前学習→ファインチューニングという転移学習の枠組みを普及させる。 2020年代: LLMの事前学習・ファインチューニング・LoRA等のPEFT手法として、転移学習はほぼ全てのディープラーニング応用の前提になっている。
アーキテクチャ
事前学習済みモデルの層構造をそのまま、または一部変更して流用する。 下位層(汎用的な特徴を学習した層)を凍結し、上位層やタスク固有の出力層のみを学習し直す「特徴抽出」的アプローチと、事前学習済みの重み全体を初期値として使い、目的タスクのデータで全パラメータを再調整する「ファインチューニング」的アプローチに大別される。
ワークフロー
関連する大規模データセットでモデルを事前学習(またはすでに公開済みの事前学習モデルを取得) → 目的タスクのデータセットを用意 → 層の凍結範囲を決定 → 目的タスクのデータで学習(特徴抽出 or ファインチューニング) → 評価・デプロイ。
利点
- ゼロから学習する場合と比べ、必要なラベル付きデータ量と学習時間を抑えられる
- 大規模データで学習した汎用的な特徴表現を、データが少ないタスクにも活用できる
- 既に公開されている事前学習済みモデルを再利用することで、開発コストを下げられる
欠点
比較
- ファインチューニング — ファインチューニングは転移学習を実現する代表的な具体的手法の1つ
- LoRA — LoRAは転移学習(ファインチューニング)をパラメータ効率的に行う手法
- LLM — LLMの事前学習→タスク適応という枠組みは転移学習の典型例
- 機械学習 — 転移学習は、機械学習モデルが1つのタスクで得た知識を別のタスクへ再利用する手法
関連用語
よくある質問
転移学習とファインチューニングの違いは?
転移学習は「既存モデルの知識を別タスクへ再利用する」という広い概念。 ファインチューニングは、その転移学習を実現する具体的な手法の1つで、事前学習済みモデルの重みを目的タスクのデータで追加学習することを指す。
参考文献
- Research PaperHow transferable are features in deep neural networks?
- DocumentationPyTorch Transfer Learning Tutorial