高偏差(bias)的優化
高方差(variance)的優化
當訓練的模型的**準確率(accuracy)不高,如何尋找模型的下一步調優方向?
通過對比訓練集與開發(測試)集的準確率,可以確定模型的偏差(bias)與方差(variance)問題,給下一步模型的優化提供方向指導。
模型訓練前通常將資料集劃分為訓練集(training set)、開發集(dev set)與測試集(test set)。訓練集、開發集與測試集在資料集中的比例通常為6:2:2,而測試集與開發集的最大數量可以不用超過10000條:比如整個資料集有1000條,那麼訓練集、開發集與測試集可以分別為600條:200條:200條;如果整個資料集有10 000 000條資料,那麼訓練集、開發集與測試集可以分別為:9 980 000條:10 000條:10 000條。
模型使用訓練集中的資料進行引數的訓練,訓練完成後,對開發集與測試集中的資料做驗證。通過模型對訓練集與開發集**的準確率做統計對比,可以分析當前模型存在的欠擬合(underfitting)/過擬合(overfitting)問題,即高偏差(bias)或者高方差(variance)。
假設通過房屋的面積****,對於訓練集,下圖是比較合適的擬合曲線:因為隨著面積的增加,房價會增加,但是增速會變緩。
下圖的**與實際的情況存在較高的偏差(bias),或者說下圖的**欠擬合(underfitting),因為模型的**與真實的房價存在較大的差距。模型的高偏差或者欠擬合表達的是相同的概念。
下圖的**與實際情況存在較高的方差(variance),或者說下圖的**是過擬合(overfitting),原因是雖然下圖的曲線很好的模擬和訓練集中的資料,但反應到真實的房價上看,面積越大反而**越便宜,這不太符合實際情況(要是真的就好了:()。
實際的模型比較複雜,無法通過上圖中簡單的圖示定位模型的問題。因此,通過對比訓練集與開發集的準確率(accuracy),也可以分析模型存在的問題是高偏差或者是高方差:
模型對於訓練集和開發集的**準確率都很高,恭喜模型很完美(下圖右上角)。
模型對於訓練集和開發集的準確率很低,屬於高偏差問題:即模型無法正常擬合訓練集中的資料,或者說模型對於訓練集中的資料是**欠擬合(underfitting)**的(左下角)。
模型對於訓練集中的資料**的準確率很高,但是對於開發集中的資料**準確率較低:表明模型可以很好的**它「看過」的資料,但對於它「沒看過」的資料**的準確率不高。即模型對於其訓練集存在**過擬合(overfitting)**問題(左上角)。
我想應該不會存在模型對訓練集**不高,對開發集**很好的實際例子吧(右下角)? 如果存在,我想會不會是我的開發集出了問題?
對於高偏差(bias)或者欠擬合(underfitting)問題,可以考慮如下優化方向:
更大/更深的網路結構,比如增加各層的神經單元,以及增大各神經單元的訓練引數等。
訓練更長的時間,嘗試找到更優解。
更換網路架構,比如yolo不行的話,試試看mask rnn。
對於高方差(variance)問題或者過擬合(overfitting)問題,可以考慮如下優化方向:
獲得更多的訓練資料。
使用正則化(reguliaztion)防止過擬合問題,如常用的l2 regulization與dropout等。
更換網路架構。
使用資料增強(data argumentation)。
早停法(early stop)。
深度學習中模型的優化
準備 整理資料集 將各個標籤的資料放於不同的資料夾中,並統計各個標籤的數目 如 第一列是路徑,最後一列是數目。ps 可能會存在某些標籤樣本很少 多,記下來模型效果不好就怨它。樣本均衡,樣本不會絕對均衡,差不多就行了 如 控制最大類 最小類 切分樣本集 如 90 用於訓練,10 留著測試,比例自己定。...
調參 深度學習模型24種優化策略
2.深度學習模型優化策略 2.2 更好的泛化技術 2.3 更好的 技術 2.4 網格搜尋超引數 深度學習神經網路學習對映功能。開發模型需要歷史資料作為訓練資料。該資料由觀察值或樣本組成,輸入元素描述了條件,輸出元素捕獲了樣本特徵。通常將輸出為數量的問題描述為回歸 建模問題 而將輸出作為標籤的問題通常...
深度學習的模型是怎麼訓練 優化出來的
以典型的分類問題為例,來梳理模型的訓練過程。訓練的過程就是問題發現的過程,一次訓練是為下一步迭代做好指引。準備 整理資料集 將各個標籤的資料放於不同的資料夾中,並統計各個標籤的數目 如 第一列是路徑,最後一列是數目。ps 可能會存在某些標籤樣本很少 多,記下來模型效果不好就怨它。樣本均衡,樣本不會絕...