model.fit(x_train, y_train, epochs=1, batch_size=64)
fit將訓練集的x_train(資料,也就是圖片)與y_train(標籤,也就是正確答案)
epochs=1:訓練1個世代,也就是所有的訓練集資料訓練一遍,考慮到大家電腦效能不一,我們先選擇盡快看到結果
batch_size=64,資料的抽取是隨機的,每次抽64個資料出來。batch_size經驗上64、128都是不錯的;數值太小會讓訓練震盪太大;數值太大會沒有效率。
如圖,訓練的目標,通常來說是讓Loss越接近0越好,Accuracy正確率越接近1越好(100%)。這個過程像是讓考生大量閱讀資料與正確答案,或是想像成從算法的宇宙中找出最接近你要的那個。
影像識別在機器學習領域算是比較成熟的,能達到9x%以上正確率很普遍。
但也要注意,如果訓練不夠,會有欠擬合的現象,就像是考前讀書不足,正確率在訓練集、驗證集都會偏低。
如果訓練過度,會有過擬合的現象,變得只會答考古題,新的題目反而答不好;此時就算訓練集正確率很高,在驗證集裡正確率反而變低很多。
當發現訓練好幾個epoch之後,正確率還是很低,而且沒有上升的跡象,同時Loss也是沒有下降的跡象,就要檢查一下神經網路有沒有架設正確、資料是否正確、資料量是否足夠等等問題。