Building powerful image classification models using very little data
Keras:https://blog.keras.io/building-powerful-image-classification-models-using-very-little-data.html
Reference:https://jkjung-avt.github.io/keras-tutorial/
本文目的:用盡可能少的數據集,訓練出準確度盡可能高的神經網絡模型
1、如果比較少,則可以使用數據增強【類似於產生更多的數據,可以在一定程度上避免過擬合】
2、神經網絡模型不是越復雜越好,而應該視數據集的量而定
3、Fine-tuning the top layers of a pre-trained network,Using the boeeleneck features of a pre-trained network,Referring to Keras‘ Applications documentation【對於使用此方法,如果pre-trained network很復雜,則可以預先將train image和valid image流經pre-trained model產生bottleneck features,並存放起來。到了訓練的時候再將bottleneck features取出來,輸入Fully-connected classifier進行訓練------>這樣訓練的時候速度會很快】
這裏我們只微調最後的卷積塊而不是整個網絡,其目的在於防止過擬合
微調應該以非常小的學習率完成,通常使用SGD優化器而不是適應性學習率優化器,例如RMSProp
Building powerful image classification models using very little data