Web教科書

ファインチューニング

ファインチューニング (Fine-tuning)

解説:「プロ」を再教育して「専門家」にする

ファインチューニング(微調整)は、学習済みのモデル(事前学習モデル)の重みデータを「初期値」として使い、新しいタスクに合わせて再学習(パラメータの更新)を行う手法です。

転移学習の一種ですが、単にモデルを「知識の引き出し(特徴抽出器)」として使うだけでなく、モデルの中身自体を少し書き換えて(微調整して)、新しいタスクに特化させる点に特徴があります。

👨‍🍳 シェフの例え

  • ゼロから学習: 包丁の持ち方から教える(時間がかかる)。
  • ファインチューニング: すでに「フレンチの達人(学習済みモデル)」であるシェフに、「イタリアン」を教える。

彼は「食材の切り方」や「火の通し方」といった基礎能力(下位層)は既に完璧なので、教える必要はありません(重みを固定)。
「イタリアンの味付け」という仕上げの部分(上位層)だけを特訓すれば、短期間でイタリアンの達人になれます。

どの層を再学習させるか?

ディープラーニングの層には役割の違いがあります。これを理解するのが合格の鍵です。

  • 入力に近い層(下位層):「線」「色」「模様」などの汎用的な特徴を見る。
    → どんな画像でも共通して使えるので、重みを固定(Freeze)することが多い。
  • 出力に近い層(上位層):「目」「タイヤ」などの具体的な物体のパーツを見る。
    → タスクによって見るべきものが違うので、再学習(Unfreeze)させる。
手法 学習コスト 精度
ゼロから学習
(Scratch)
高い
(大量のデータと時間が必要)
データが十分なら高いが、少ないと低い。
ファインチューニング 低い
(少データ・短時間で済む)
少データでも非常に高い精度が出やすい。

G検定対策

出題ポイント

  • 初期値:ランダムな値から始めるのではなく、「学習済みモデルの重みパラメータ」を初期値として利用する。
  • 学習率:すでに賢い状態からスタートするため、学習率(Learning Rate)はゼロから学習する時よりも「小さく」設定するのが一般的。大きくしすぎると、せっかくの事前の知識が壊れてしまう(破滅的忘却)。
  • 層の固定:データ量が少ない場合は、多くの層を固定し、出力層付近のみを学習させる。データ量が十分ある場合は、全層を微調整することもある。

ひっかけ対策

  • × すべての層を必ず再学習させる必要がある
    (解説)計算コスト削減や過学習防止のため、下位層を固定(フリーズ)するのが一般的です。
  • × 転移学習とは無関係である
    (解説)ファインチューニングは、転移学習を実現するための「具体的な手段の一つ」です。
タイトルとURLをコピーしました