怎麼評判卷積神經網路訓練得差不多了?
01-05
訓練卷積神經網路的時候,總是不知道該訓練多少次,有沒有一個評判標準?比如說loss值達到平穩或者說模型達到一定的精度?
理想的情況:一開始,loss會下降的比較爽,就是睡一覺起來一看能明顯感覺到loss有下降!
然後loss會長時間平穩住.
讓你感覺loss這輩子都不會下降了,這時候你可以把學習率除以10繼續訓練,loss又會有明顯的下降.再次下降完之後,loss會又平穩很長時間,你會認為loss這輩子真的不會下降了.然後差不多可以停了!
謝邀。
牆裂推薦去看一下Coursera上吳恩達的Machine Learning第6周課程: Advice for applying machine learning和machine learning system design. 裡面對你提出的這個問題有全方面的解釋以及HOWTOs.
就我個人而言,這是整個課里對我幫助最大的部分。將整個training set的10-20%作為validation set,每個epoch之後計算val set的loss,將val loss和train loss比較,當train loss持續下降而val loss不再一同下降或不降反升的時候以某個係數削減learning rate。我喜歡0.3左右的值,直到val loss趨於平穩,也就是將early stoping和learning rate的調整結合…
ng的課程說的很詳細了
你也可以畫圖看loss的趨勢我通常是訓練很多次 然後每隔1w或者更多繪製loss趨勢圖片....有的loss函數即使收斂也並不會趨於0或者特別小的值 在訓練前有一個大概的期望,這就要求你對你的loss函數有一定的數學了解。
這裡分享一個經驗吧。在訓練過程中,以Caffe為例,可以通過Log來在終端輸出。比如我想讓兩類不同類別特徵在高維空間中距離越來越大。我可以使用Log輸出距離。loss函數只考慮那些距離「不夠大」的樣本,但是那些「夠大」的究竟大多少。0.1?0.01?個人覺得Log函數調試包括選擇參數都非常好用。
當然你也可以寫很多小腳本不斷畫圖推薦閱讀:
※如何理解卷積神經網路中的權值共享?
※深度學習如何優化神經網路結構?
※ICML 2016上哪些論文值得關注?
※如何比較Keras, TensorLayer, TFLearn ?
※寫一個像Keras的深度學習框架需要學習哪些知識?
TAG:機器學習 | 深度學習DeepLearning | 卷積神經網路CNN | keras |