
この回でつかむこと
特徴抽出部の固定と新しい分類部の役割を言える。
学んだ特徴を新しい課題に生かすって何だろう?
転移学習は、ある課題で学んだモデルを別の課題へ使う考え方です。特徴抽出部を固定して新しい分類部だけ学習する方法があります。全体を再学習する方法はファインチューニングと呼ばれます。

ゼロから全部学び直さなくてもいいの?

そうなんだよ。前の課題で学んだ特徴を借りる方法が転移学習だね。

どの層を固定し、どの層を学習するかが重要です。

はる 固定した部分も計算には使い、重みの更新だけ止めます。
転移学習では、すでに学んだ特徴抽出部を再利用できる。 転移学習は、ある課題で学んだモデルを別の課題へ使う考え方です。特徴抽出部を固定して新しい分類部だけ学習する方法があります。全体を再学習する方法はファインチューニングと呼ばれます。
import torch
from torch import nn
features = nn.Sequential(nn.Linear(2,8),nn.ReLU())
head = nn.Linear(8,2)
for parameter in features.parameters():
parameter.requires_grad = False
print(sum(p.requires_grad for p in features.parameters()))なぜそうなる? 特徴抽出部のパラメータは更新対象から外れました。
新しい分類部だけ選ぶ
固定した部分も推論には使いますが、更新するのは新しい分類部の重みだけです。
model = nn.Sequential(features,head)
optimizer = torch.optim.SGD(head.parameters(),lr=0.1)
print(model(torch.zeros(1,2)).shape)ここに注目 出力は2クラス分です。ノートブックでは小さな合成データを使い、固定前後を観察します。
予想して、理由を話そう
答えを選んで、説明を確かめよう。外れても発見が一つ増えるよ。
答えを選ぶと理由が表示されます。
Colabで試してみよう
コードの実行はColaboratoryの実行環境で行います。まずノートブックを保存し、Colabで「ファイル → ノートブックをアップロード」から開いてください。上から順に実行し、最後に値を変えてみましょう。
保存ボタンを押しても画面は切り替わりません。通常はブラウザの「ダウンロード」フォルダに .ipynb が保存されます。見つからない場合はダウンロード履歴を確認してください。Colabの実習は小さな例から始められます。
身近な技術とつなげてみよう

AI先生:別の場所で学んだ道具の使い方を、新しい仕事にも生かす感じだね。ただし題材が大きく違えば、借りた特徴が合わないこともあるよ。
この回の重要な用語
本文で出会った言葉を、ここで意味と一緒に振り返ろう。上の「ことばの窓」からも説明を開けるよ。
- 転移学習
- 先に学んだモデルの特徴を別の課題で再利用する方法です。
- 特徴抽出部
- 入力から分類に役立つ表現を作る部分です。
- ファインチューニング
- 学習済みの重みを初期値にして、必要な層を改めて学習することです。