【G検定|理解型予想問題】転移学習・ファインチューニング・特徴抽出はなぜ混同する?

学習済みモデルを新しい課題に利用する方法として、転移学習、ファインチューニング、特徴抽出があります。
3つとも学習済みモデルを利用するため、同じ意味の用語に見えやすいですが、表している範囲と学習時の処理が異なります。
転移学習は、学習済みモデルの知識を別の課題に活用する広い考え方です。その代表的な方法として、学習済み部分を固定して使う特徴抽出と、学習済み部分の重みも更新するファインチューニングがあります。
この記事では、転移学習、ファインチューニング、特徴抽出の違いを、全10問の理解型予想問題で整理します。
転移学習・ファインチューニング・特徴抽出とは?
転移学習、ファインチューニング、特徴抽出は、すべて学習済みモデルの知識を新しい課題へ活用するときに使われる用語です。
ただし、3つは同じ分類軸の対等な用語ではありません。
転移学習は広い考え方を表し、特徴抽出とファインチューニングは、転移学習を行うときの代表的な方法を表します。
TensorFlow や PyTorch の公式解説でも、学習済みモデルを固定した特徴抽出と、重みを更新するファインチューニングが代表的な方法として整理されています。
| 用語 | 意味 | 見分けるポイント |
|---|---|---|
| 転移学習 | 学習済みモデルの知識を別の課題へ活用する考え方 | 学習済みモデルを再利用する |
| 特徴抽出 | 学習済み部分を固定し、取り出した特徴を新しい課題で使う方法 | 学習済みの重みを更新しない |
| ファインチューニング | 学習済みモデルの一部または全体を新しい課題に合わせて追加学習する方法 | 学習済みの重みも更新する |
3つの関係は、次のように整理できます。
問題①
大規模な画像データで学習した CNN を、別の画像分類課題に活用した。この考え方として最も適切なものはどれか?
- A. 転移学習
- B. データ拡張
- C. 教師なし学習
- D. 強化学習
- 正解・解説(クリックで開きます)
-
正解
A
解説

転移学習は、ある課題で学習したモデルの知識を、別の課題へ活用する考え方です。
たとえば、大規模な画像データから線、角、模様などを学習した CNN を、犬と猫を分類する新しい課題へ活用する場合があります。
一からすべての重みを学習するのではなく、すでに学習された特徴を利用することがポイントです。
学習済みモデル+新しい課題→転移学習データ拡張は、画像の回転、反転、拡大などによって、学習データを増やしたように扱う方法です。
転移学習はモデル側の知識を再利用し、データ拡張はデータ側を変化させる点が異なります。
問題②
学習済み CNN の畳み込み層を固定し、新しく追加した分類層だけを学習した。この方法として最も適切なものはどれか?
- A. ファインチューニング
- B. 特徴抽出
- C. 蒸留
- D. アンサンブル学習
- 正解・解説(クリックで開きます)
-
正解
B
解説

特徴抽出では、学習済みモデルが取り出す特徴を、新しい課題に利用します。
学習済みの畳み込み層などは固定し、その重みを更新しません。一方、新しい課題に合わせて追加した分類層などは学習します。
PyTorch の公式チュートリアルでも、固定した特徴抽出では最終層を新しい層へ置き換え、その層だけを学習する例が示されています。学習済みモデルで特徴を取り出す↓学習済み部分の重みは固定する↓新しく追加した分類層を学習する特徴抽出は「すべての層を固定するため、何も学習しない方法」ではありません。
固定された部分は学習しませんが、新しく追加した層は学習します。
問題③
学習済みモデルの一部の層について固定を解除し、新しい課題のデータを使って重みを更新した。この方法として最も適切なものはどれか?
- A. 特徴抽出
- B. データの標準化
- C. ファインチューニング
- D. 次元削減
- 正解・解説(クリックで開きます)
-
正解
C
解説

ファインチューニングは、学習済みモデルの一部または全体を、新しい課題に合わせて追加学習する方法です。
学習済みモデルが持っている知識をそのまま使うだけでなく、新しい課題に合うように重みを調整します。
学習済みモデルを用意する↓一部または全体の固定を解除する↓新しい課題のデータで重みを更新するファインチューニングは、必ずすべての層を更新する方法ではありません。
出力に近い層だけを更新
問題④
転移学習、特徴抽出、ファインチューニングの関係として、最も適切なものはどれか?
- A. 転移学習は、特徴抽出だけを表す用語である
- B. ファインチューニングは、転移学習とは無関係である
- C. 特徴抽出とファインチューニングは、転移学習の代表的な方法である
- D. 特徴抽出を行う場合、学習済みモデルは利用しない
- 正解・解説(クリックで開きます)
-
正解
C
解説

転移学習は、学習済みモデルの知識を新しい課題へ活用する広い考え方です。
特徴抽出とファインチューニングは、その転移学習を実現する代表的な方法です。
転移学習→特徴抽出転移学習→ファインチューニングしたがって、転移学習とファインチューニングを、どちらか一方だけを選ぶ対立関係として考えるのは適切ではありません。
ファインチューニングを使った転移学習もあります。
問題⑤
特徴抽出において、固定した学習済み層の扱いとして最も適切なものはどれか?
- A. 固定した層は、入力データの計算にも使われない
- B. 固定した層は、特徴を計算するが重みは更新されない
- C. 固定した層の重みは、毎回ランダムに初期化される
- D. 固定した層だけが学習される
- 正解・解説(クリックで開きます)
-
正解
B
解説

層を固定するとは、その層を使わないという意味ではありません。
入力データは固定された層を通り、学習済みの重みを使って特徴が計算されます。
ただし、誤差逆伝播によって、その層の重みを更新する処理は行いません。入力から特徴を計算する→行う学習済みの重みを更新する→行わない「固定する」とは、主に重みの更新を止めることだと整理しましょう。
問題⑥
新しい課題の学習データが少なく、学習済みモデルと新しい課題が比較的似ている。最初に検討する方法として適切なものはどれか?
- A. 学習済みモデルを使わず、すべての重みを一から学習する
- B. 学習済み部分の多くを固定し、特徴抽出として利用する
- C. 学習済みの重みをすべて削除する
- D. データを学習用とテスト用に分けない
- 正解・解説(クリックで開きます)
-
正解
B
解説

新しい課題のデータが少ない場合に、モデル全体の多くの重みを更新すると、学習データに合わせすぎる可能性があります。
そのため、まず学習済みモデルの大部分を固定し、特徴抽出として利用する方法が考えられます。新しい課題のデータが少ない↓多数の重みを更新すると過学習しやすい↓学習済み部分を固定して特徴を利用するただし、データ量だけで方法が自動的に決まるわけではありません。
学習済みモデルと新しい課題の類似度、モデルの大きさ、必要な精度なども考慮します。
問題⑦
特徴抽出を行った後、学習済みモデルの一部をファインチューニングすることにした。一般的な考え方として適切なものはどれか?
- A. 学習済みの特徴を急激に変えないよう、比較的小さな学習率を使う
- B. 必ず最初の学習より大きな学習率を使う
- C. 学習率を0にして、すべての重みを固定する
- D. 学習率は重みの更新と関係しない
- 正解・解説(クリックで開きます)
-
正解
A
解説

ファインチューニングでは、すでに学習された有用な特徴を大きく壊さないように、比較的小さな学習率を使うことがあります。
Keras の公式ガイドでも、固定を解除したモデルを低い学習率で再学習し、学習済みの特徴を段階的に新しいデータへ適応させる流れが示されています。学習済みの有用な特徴がある↓大きな更新で特徴が崩れる可能性がある↓小さな学習率で少しずつ調整する学習率を小さくすることは、ファインチューニングを見分ける代表的な手がかりの一つです。
ただし、具体的な学習率はモデルやデータによって異なります。
問題⑧
ファインチューニングについて、最も適切な説明はどれか?
- A. 必ずモデルのすべての層を更新する
- B. 必ず出力層だけを更新する
- C. 新しい課題に応じて、一部または全体の層を更新する
- D. 学習済みモデルの重みは一切利用しない
- 正解・解説(クリックで開きます)
-
正解
C
解説

ファインチューニングでは、学習済みモデルの一部または全体を更新します。
必ず全層を更新するわけではありません。
一般に、ニューラルネットワークの入力に近い層では、線、角、模様などの比較的基本的な特徴を捉え、出力に近い層では、元の課題に特有の特徴を捉えやすくなります。
そのため、出力に近い層から固定を解除し、新しい課題に合わせて調整する方法があります。入力に近い層は固定する↓出力に近い層の固定を解除する↓新しい課題に合わせて追加学習する「ファインチューニング = 全層を必ず更新する」と暗記しないようにしましょう。
問題⑨
転移学習とデータ拡張の違いとして、最も適切なものはどれか?
- A. 転移学習はデータを変化させ、データ拡張はモデルを再利用する
- B. 転移学習はモデルの知識を再利用し、データ拡張はデータを変化させる
- C. どちらも学習済みモデルの重みを必ず固定する
- D. どちらも学習データを使用しない
- 正解・解説(クリックで開きます)
-
正解
B
解説

転移学習とデータ拡張は、どちらも少ないデータを補うために利用されることがあります。
ただし、工夫する対象が異なります。用語 工夫する対象 具体例 転移学習 モデル 学習済みCNNの知識を再利用する データ拡張 データ 画像を回転、反転、拡大する データ拡張は、元の画像を回転、反転、切り抜きなどで変化させ、異なるデータとして学習に利用する方法です。
転移学習とデータ拡張は、どちらか一方しか使えない方法ではありません。
転移学習を行いながら、データ拡張も使うことがあります。
問題⑩
次の学習手順を行った。
① 学習済み CNN を用意した
② 畳み込み層を固定し、新しい分類層だけを学習した
③ その後、一部の畳み込み層の固定を解除し、小さな学習率で追加学習した
この説明として最も適切なものはどれか?
- A. 最初から最後まで特徴抽出だけを行っている
- B. 最初から最後までファインチューニングだけを行っている
- C. 転移学習の中で、特徴抽出を行った後にファインチューニングしている
- D. 転移学習を使わず、モデルを一から学習している
- 正解・解説(クリックで開きます)
-
正解
C
解説

この問題では、学習の段階を分けて考えます。
最初に、学習済みの畳み込み層を固定し、新しい分類層だけを学習しています。
これは特徴抽出です。
次に、一部の畳み込み層の固定を解除し、重みを更新しています。
これはファインチューニングです。
そして、全体として学習済みモデルを新しい課題へ利用しているため、転移学習に該当します。学習済みモデルを用意する↓学習済み部分を固定して新しい層を学習する↓特徴抽出↓一部の固定を解除して追加学習する↓ファインチューニング特徴抽出とファインチューニングは、必ずどちらか一方だけを選ぶものではありません。
特徴抽出で新しい分類層を学習した後に、ファインチューニングでモデルをさらに調整する方法があります。TensorFlow と Keras の公式ガイドでも、この段階的な流れが代表的な手順として紹介されています。
転移学習・ファインチューニング・特徴抽出を混同しないための整理
3つの用語は、学習済みモデルを利用する点では共通しています。
違いは、用語が表す範囲と、学習済みの重みを更新するかどうかです。
| 用語 | 一言でいうと | 試験で注目する言葉 |
|---|---|---|
| 転移学習 | 学習済みモデルの知識を別の課題へ活用する | 学習済みモデル/再利用/別の課題 |
| 特徴抽出 | 学習済み部分を固定して特徴を利用する | 固定/重みを更新しない/新しい分類層 |
| ファインチューニング | 学習済み部分も新しい課題に合わせて調整する | 固定を解除/重みを更新/小さな学習率 |
特に、次の誤解に注意しましょう。
| よくある誤解 | 正しい整理 |
|---|---|
| 転移学習とファインチューニングは別々の方法 | ファインチューニングは転移学習の代表的な方法 |
| 特徴抽出ではモデルを学習しない | 固定した層は更新しないが、新しく追加した層は学習する |
| ファインチューニングでは必ず全層を更新する | 一部の層だけを更新する場合もある |
| 特徴抽出とファインチューニングは同時に使えない | 特徴抽出の後にファインチューニングする方法もある |
| 転移学習とデータ拡張は同じ | 転移学習はモデル側、データ拡張はデータ側の工夫 |
まとめ

転移学習、ファインチューニング、特徴抽出は、すべて学習済みモデルを新しい課題に活用するときに関係する用語です。
ただし、3つが表している範囲は異なります。
試験では、次の順番で確認すると見分けやすくなります。
学習済みモデルを再利用する広い考え方が転移学習です。
学習済み部分を固定して特徴を利用する方法が特徴抽出です。
学習済み部分の重みも新しい課題に合わせて更新する方法がファインチューニングです。
「広い考え方なのか」、「固定するのか」、「更新するのか」という順番で整理しておきましょう。
関連記事・おすすめ記事
| おすすめ記事 | 確認できる内容 |
|---|---|
| 転移学習とは? | 学習済みモデル/事前学習/ファインチューニング/データ拡張 |
| CNNの畳み込み・プーリングとは? | 畳み込み層/プーリング層/フィルタ/特徴マップ |
| データ拡張とは? | 回転/反転/切り抜き/少ない学習データへの対策 |
| スキップ結合・ResNetとは? | 深いCNN/スキップ結合/勾配消失問題/画像認識 |
| 画像認識の歴史を流れで整理 | AlexNet/VGG/GoogLeNet/ResNet/画像認識の発展 |
| 重みとは? | 重みの役割/誤差逆伝播/重みの更新/過学習 |
| ディープラーニングの要素技術の重要用語まとめ | 活性化関数/損失関数/最適化手法/正則化/CNNの要素技術 |

