4.5 Fine-tuning
在 transfer learning 後解凍部分預訓練模型層數,用較小 learning rate 微調影像分類模型。這篇的重點不是一開始就把整個預訓練模型拿來訓練,而是先建立穩定 baseline,再小心調整後段特徵。
1. 學習目標
Transfer learning 只訓練新的分類頭,速度快且穩定。Fine-tuning 則是在分類頭訓練穩定後,解凍預訓練模型後段部分層數,用小 learning rate 讓模型更貼近自己的資料。
2. Fine-tuning 原則
- 先完成 transfer learning。
- 不要一開始就解凍全部模型。
- 只解凍後段較高階特徵層。
- 使用比前一階段更小的 learning rate。
- 搭配 EarlyStopping 避免過擬合。
3. 什麼時候需要 fine-tuning?
當自己的資料和預訓練資料差異較大,或分類頭訓練後 validation accuracy 停在瓶頸,可以嘗試 fine-tuning。若資料很少,fine-tuning 也可能過擬合。
4. 實作流程
Notebook 使用 flower_photos 與 MobileNetV2。第一階段先凍結 backbone,只訓練新分類頭;第二階段將 MobileNetV2 後段部分 layer 設為可訓練,並用 1e-5 這類較小 learning rate 重新編譯模型後微調。
5. 如何套用自己的資料?
套用自己的資料時,先不要急著 fine-tuning。建議先保存 transfer learning baseline,再解凍後段 layer 比較 validation loss 與 validation accuracy。如果 fine-tuning 後 validation loss 上升或 train/validation 差距變大,代表模型可能已經過擬合,應減少解凍層數、降低 learning rate 或加入更強的資料增強。
6. 小結
Fine-tuning 是 transfer learning 的進階步驟。它能提升模型對特定任務的適應能力,但必須小心 learning rate 與過擬合。