大項目5 ディープラーニングの要素技術(最適化と汎化)
G検定の転移学習(特徴抽出とファインチューニングの違い)
G検定の出題範囲には、ディープラーニングの要素技術として、転移学習とファインチューニングがあります。このページは、TensorFlow公式チュートリアルの実行例にある実際のパラメータ数を使い、2つの違いを数字で確認します。「どこを凍結し、どこを学習するか」を数で見ると、用語の違いを説明できるようになります。
転移学習とファインチューニングの関係が曖昧な人、特徴抽出という言葉が出てくると迷う人向けの内容です。
出題を予想するものではありません。
この記事の目次
公式情報の確認
試験日、料金、申込条件、試験方式など変動する情報は、公式情報を最終確認してください。 当サイトの一次情報確認日: 2026-10-02。
試験の出題範囲・実施要項は変動するため、受験前に公式情報を確認してください。
結論
- 転移学習は、大規模なデータで事前学習したモデルを、別のタスクに再利用する考え方
- 特徴抽出は、基本モデルを凍結し、新しく足した分類器だけを学習する方法
- ファインチューニングは、基本モデルの上位の層も解凍して、分類器と一緒に学習する方法
- 順番は、先に分類器を学習してからファインチューニングする。学習率は低くする
- 公式の実行例では、学習するパラメータが1,281個から1,862,721個に増える
転移学習とは何か
TensorFlow公式チュートリアルは、事前トレーニング済みモデルを、大規模な画像分類タスクなどの大規模なデータセットで事前トレーニングされた、保存済みのネットワークと説明しています。そのまま使うことも、転移学習で任意のタスクにカスタマイズすることもできます。
考え方の根拠は、モデルが大規模で十分に一般的なデータセットで学習されていれば、視覚世界の一般的なモデルとして働く、という点です。学習した特徴マップを使えば、最初から大きなデータセットで大きなモデルを学習し直さずに済みます。
特徴抽出とファインチューニング
公式チュートリアルは、カスタマイズの方法として次の2つを試しています。
- 特徴抽出:事前トレーニング済みモデルの上に、新しく学習する分類器を足し、前に学習した特徴マップを再利用する
- ファインチューニング:凍結した基本モデルの最上位の層をいくつか解凍し、新しい分類器と解凍した層を合わせて学習する
特徴抽出で基本モデルを使えるのは、畳み込みネットワークの下位の層に、画像全般に役立つ特徴がすでに入っているからです。一方、最後の分類部分は元の分類タスクに固有なので、新しいタスクでは作り直します。
用語の使い方は教材によって違います。このページは公式チュートリアルに合わせ、転移学習を全体の考え方、ファインチューニングを上位の層も更新する方法としています。生成AIパスポート向けの比較ページのように、転移学習を「出力層だけ再学習」、ファインチューニングを「モデル全体を再学習」と区別する説明もあるため、問題文に定義が書かれているときは、その定義に従って読んでください。
ファインチューニングで上位だけを解凍する理由も、同じ説明で理解できます。大部分の畳み込みネットワークでは、上位の層ほど専門性が高く、最初の数層はほぼどんな画像にも当てはまる単純な特徴を学習します。ファインチューニングの目的は、一般的な学習を上書きすることではなく、特殊な特徴を新しいデータに合わせることです。
学習するパラメータ数で比べる
公式チュートリアルの実行例は、MobileNetV2を基本モデルにして、末尾に全結合層1つの分類器を足しています。基本モデルは154層で、パラメータは全体で2,259,265個です。
| 項目 | 特徴抽出 | ファインチューニング |
|---|---|---|
| 更新する部分 | 新しく足した分類器だけ | 新しい分類器と、基本モデルの上位の層 |
| 基本モデルの扱い | すべて凍結(更新しない) | 上位の一部を解凍し、下位は凍結のまま |
| 実行例で学習するパラメータ | 1,281個 | 1,862,721個 |
| 全体(2,259,265個)に対する割合 | 約0.06% | 約82% |
| 学習率 | 通常どおり | 低くする(公式が重要と明記) |
特徴抽出の段階では、学習するのは新しい分類器の1,281個(特徴1,280個の重みと偏り1個)だけで、残りの2,257,984個は凍結されています。ファインチューニングでは、100層目より前を凍結したまま、それ以降を解凍するので、学習するパラメータは1,862,721個になります。割合は、1,281÷2,259,265で約0.06%、1,862,721÷2,259,265で約82%です。同じモデルでも、特徴抽出とファインチューニングでは、更新される部分が1,000倍以上違います。
なお、チュートリアルは、新しいトレーニングセットが比較的小規模で、元のMobileNetV2のデータセットに似ているために、過適合が発生する場合があると述べています。
順番と学習率に決まりがある理由
公式チュートリアルは、ファインチューニングについて次の注意を出しています。
- 先に分類器を学習する。ランダムに初期化した分類器と基本モデルを同時に学習すると、勾配の更新が大きすぎて、基本モデルが学習したことを忘れる
- 学習率を低くする。事前学習済みの重みを再び学習するとき、低くしないと、すぐに過適合を起こす可能性がある
- バッチ正規化の層を含むモデルを解凍するときは、その層を推論モードにしておく。そうしないと、学習しない重みに更新が入り、学習した内容が壊れる
3つに共通するのは、事前学習で得た重みを壊さないことです。問題文に「低い学習率」「先に分類器だけ学習」とあれば、ファインチューニングの説明だと判断できます。
BERTの事前学習との関係
画像だけでなく、自然言語処理でも同じ考え方を使います。BERTの原論文の抄録によると、事前学習したBERTは、出力層を1つ追加するだけでファインチューニングでき、質問応答や言語推論など幅広いタスクのモデルを、タスク固有の構造を大きく変えずに作れます。
大量のデータでの事前学習と、目的のタスクのデータでのファインチューニングを分ける流れは、画像でも言語でも共通です。BERTの仕組みそのものは、単語埋め込みのページで整理しています。
問題文から読み取る
このページの内容から導いた読み方です。出題を予想するものではありません。
- 「学習済みモデルを別のタスクに再利用する」とあれば、転移学習
- 「基本モデルは凍結し、追加した分類器だけ学習する」とあれば、特徴抽出
- 「上位の層も含めて低い学習率で再学習する」とあれば、ファインチューニング
- 「ランダムな分類器と同時に学習して、事前学習の内容を忘れる」とあれば、順番を守らなかった場合の失敗
G検定の学習に使う書籍(Amazon)
試験範囲を通して読むときの1冊です。読んだ章は、このサイトの章別問題で確かめられます。
よくある質問
転移学習とファインチューニングは同じ意味ですか?
同じではありません。転移学習は、あるデータで学習した結果を別のタスクに使う考え方の全体です。ファインチューニングは、その中で、事前学習済みモデルの重みの一部を新しいデータで調整し直す方法の1つです。TensorFlow公式チュートリアルは、転移学習によるカスタマイズの方法として、特徴抽出とファインチューニングの2つを挙げています。
特徴抽出では、どの部分を学習しますか?
新しく足した分類器だけです。基本モデルは凍結して特徴抽出器として使うため、トレーニング中に更新されるのは分類器の重みだけです。公式の実行例では、全体2,259,265個のパラメータのうち、学習するのは1,281個です。
ファインチューニングで、なぜ学習率を低くするのですか?
事前学習済みの重みを大きく壊さないためです。公式チュートリアルは、かなり大規模なモデルをトレーニングするので、事前トレーニング済みの重みを再適用する場合は低い学習率を使うことが重要で、そうしないとモデルがすぐに過適合を起こす可能性があると説明しています。
ファインチューニングは、なぜ分類器を学習したあとに行うのですか?
ランダムに初期化した分類器と基本モデルを同時に学習すると、分類器のランダムな重みのせいで勾配の更新が大きくなりすぎ、事前学習で得た内容を忘れてしまうからです。公式チュートリアルは、この順番を必ず守るよう注意しています。
自然言語処理でも、転移学習は使われますか?
使われます。BERTの原論文の抄録は、事前学習したBERTは出力層を1つ追加するだけでファインチューニングでき、質問応答や言語推論などのモデルを、タスク固有の構造の大きな変更なしに作れると述べています。
