以典型的分類問題為例,來梳理模型的訓練過程。訓練的過程就是問題發現的過程,一次訓練是為下一步迭代做好指引。
準備: 整理資料集
將各個標籤的資料放於不同的資料夾中,並統計各個標籤的數目
如:第一列是路徑,最後一列是數目。
ps:可能會存在某些標籤樣本很少/多,記下來模型效果不好就怨它。
樣本均衡,樣本不會絕對均衡,差不多就行了
如:控制最大類/最小類
切分樣本集
如:90%用於訓練,10%留著測試,比例自己定。訓練集合,對於弱勢類要重取樣,最後的列表要shuffle;測試集合就不用重取樣了。
訓練中要保證樣本均衡,學習到弱勢類的特徵,測試過程要反應真實的資料集分布。
第一列是路徑,後面幾列是標籤(多工)。
按需要的格式生成tfrecord
按照train.list和validation.list生成需要的格式。生成和解析tfrecord的**要根據具體情況編寫。
1.混淆矩陣必不可少
混淆矩陣可以發現哪些類是難區分的。基於混淆矩陣可以得到各類的準召,進而可以得到哪些模擬較差。
如:列為真值,行為檢測的值。
gt/pl
靴子單鞋
運動休閒
棉鞋雪地靴
帆布拖鞋
涼鞋雨鞋
靴子4524
4539
7912595
6020單鞋
514088
1544
1159
1880436
運動38
6817
2470218
810休閒
5347
171806178
1181512
棉鞋12
1105
15424552
3211雪地靴536
51073628013
21帆布鞋5
2816
1581
1515173
4拖鞋6139112
333182316606
涼鞋7693
6002
556331雨鞋
26613
0125
1499
進而可得:
label
召回精度
靴子0.9446648569638756
0.947434554973822
單鞋0.9147460281942269
0.8996478873239436
運動0.7185576077396658
0.7614165890027959
休閒0.6510500807754442
0.5840579710144927
......
...ps:運動-休閒容易混淆。
2.抽樣看測試資料
從測試資料中每類抽1000張,把它們的模型結果放在不同的資料夾下。對於分析問題還是很有效的,為什麼它會分錯,要拿出來看看!
有些確實是人工標錯了。
通過cam可以檢視網路究竟學到了什麼(是不是學錯了)。對於細粒度問題就不用分析cam了,一般7x7的特徵圖本來就很小了,根本就看不出細節學到了什麼,只能粗略看看部位定位是否準確。
也可以一定程度上幫助理解為什麼網路會搞錯,比如下面的單鞋被誤判為了拖鞋。
深度學習中模型的優化
準備 整理資料集 將各個標籤的資料放於不同的資料夾中,並統計各個標籤的數目 如 第一列是路徑,最後一列是數目。ps 可能會存在某些標籤樣本很少 多,記下來模型效果不好就怨它。樣本均衡,樣本不會絕對均衡,差不多就行了 如 控制最大類 最小類 切分樣本集 如 90 用於訓練,10 留著測試,比例自己定。...
論深度學習模型的訓練方式
特點 隨機從資料中抽取樣本訓練 優點 操作簡單,上手容易。缺點 1.可能始終都會有一部分資料未參加訓練,造成資料浪費 2.可能使得訓練出來的模型有偏差,對小類樣本完全不能擬合 3.訓練時間較長,輪次較多。特點 將資料分割成兩份按照不同的比例劃分,每次按照順序取出資料,訓練完一次後保證訓練集和測試集不...
深度學習模型訓練基本步驟
原文 這裡 一.資料預處理 二.將資料輸入神經網路 每個神經元先輸入值加權累加再輸入啟用函式作為該神經元的輸出值 正向傳播,得到得分 三.將 得分 輸入誤差函式loss function 正則化懲罰,防止過度擬合 與期待值比較得到誤差,多個則為和,通過誤差判斷識別程度 損失值越小越好 四.通過反向傳...