MNIST Transfer Learning in Keras

by allenlu2007

Reference: https://github.com/fchollet/keras/tree/master/examples

 

Transfer learning 的好處是不用 learning from scratch!

(1) 需要大量的 labelled data;  (2) 需要大量的 training resource (GPU and time)!

 

其實 transfer learning 是蠻神奇的一件事!

試想一般 feature base 的分類器。如果 input data/image 改變,原來的分類方式可能要重新訓練。

但是 deep learning train 的 feature 似乎更普適。可以只要微調就可以達到很好的效果!

注意所謂微調不是 perturbation of neural network weights!  而只是調整最後的分類器。

 

基本上的想法就是拿已經 train 好的 network,做一些微調就可以用來處理新的問題。

如何作微調?

Deep learning network 大多是:  Deep neural network + classifier (softmax or SVM).

一般只需少量的 labelled data for transfer learning, 同時只需要重 train 分類器即可。

因此可以避免上述 (1) and (2) 的問題。

 

Reference 中 example 恰好有 transfer learning on MNIST.  

1- Train a simple convnet on the MNIST dataset the first 5 digits [0..4].                                          
2- Freeze convolutional layers and fine-tune dense layers                                                          
   for the classification of digits [5..9].     

1- Train a simple convnet on the MNIST dataset the first 5 digits [0..4].

2- Freeze convolutional layers and fine-tune dense layers for the classification of digits [5..9].  

Advertisements