TensorFlow > difference > Transfer learningとFine tuning


動作環境
GeForce GTX 1070 (8GB)
ASRock Z170M Pro4S [Intel Z170chipset]
Ubuntu 16.04 LTS desktop amd64
TensorFlow v1.2.1
cuDNN v5.1 for Linux
CUDA v8.0
Python 3.5.2
IPython 6.0.0 -- An enhanced Interactive Python.
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
GNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu)
scipy v0.19.1
geopandas v0.3.0
MATLAB R2017b (Home Edition)
ADDA v.1.3b6
gnustep-gui-runtime v0.24.0-3.1

Transfer learningとFine tuningを同じようなものとして扱っている例を見て気になった。

What is the difference between transfer learning and fine tuning? @ Quora

回答より抜粋の上、訳してみる。
訳が難しい部分は元の英語で記載する。

by Chomba Bupe

Transfer learningは学習したrepresentationsを別の問題にtransferすることだ。例として、事前学習したconvNetからのfeaturesを線形SVMを改良する(power)ために使うことができる。そのような場合、事前学習モデルは固定したまま、linear SVM weightsを更新することができる。

一方で、Fine tuningはただ単に精巧な(fine)調整を行いさらなるパフォーマンスの改善を行うことだ。例として、Transfer learningの間、事前学習モデルを動的(unfreeze)にしてそれにより手近なタスクをより最適化させることができる。

...

以下のように思われる。

  • Transfer learning: 学習内容を別のモデルから転移する
  • Fine tuning: 精巧な調整を行う

Quoraには他にも色々回答があり、両者が異なることが記載されている。

「Transfer learningによりFine tuningする」という使い方はできるように思われる。

by Alex Ekkis

(追記 2018/03/14)

...
Watch the following video snippet in which Andrej Karpathy and Andrew Ng, two luminaries in the field of machine learning, use the terms “transfer learning” and “fine-tuning” interchangeably, just to indicate how similarly the terms are used in practice (and in academic papers).

こちらの回答ではinterchangeablyとして大御所が使用しているとのこと。