1. 程式人生 > 實用技巧 >Ng深度學習 改善深層神經網路

Ng深度學習 改善深層神經網路

深度學習的實踐層面

1.1 訓練,驗證,測試集

假設這是訓練資料,我用一個長方形表示,我們通常會將這些資料劃分成幾部分,一部分作為訓練集,一部分作為簡單交叉驗證集,有時也稱之為驗證集,方便起見,我就叫它驗證集(dev set),其實都是同一個概念,最後一部分則作為測試集。
接下來,我們開始對訓練集執行演算法,通過驗證集或簡單交叉驗證集選擇最好的模型,經過充分驗證,我們選定了最終模型,然後就可以在測試集上進行評估了,為了無偏評估演算法的執行狀況。
在機器學習發展的小資料量時代,常見做法是將所有資料三七分,就是人們常說的70%訓練集,30%測試集。如果明確設定了驗證集,也可以按照60%訓練集,20%驗證集和20%測試集來劃分。這是前幾年機器學習領域普遍認可的最好的實踐方法。

在這裡插入圖片描述

在大資料時代,我們現在的資料量可能是百萬級別,那麼驗證集和測試集佔資料總量的比例會趨向於變得更小。

在機器學習中,如果只有一個訓練集和一個驗證集,而沒有獨立的測試集,遇到這種情況,訓練集還被人們稱為訓練集,而驗證集則被稱為測試集

偏差,方差(Bias /Variance)

在這裡插入圖片描述

高偏差(high bias)------“欠擬合”(underfitting)
高方差(high variance)------擬合(overfitting):擬合一個非常複雜的分類器,比如深度神經網路或含有隱藏單元的神經網路,可能就非常適用於這個資料集,但是這看起來也不是一種很好的擬合方式分類器。

在這裡插入圖片描述

機器學習基礎

下圖為在訓練神經網路用到的基本方法:在這裡插入圖片描述


初始模型訓練完成後,首先要知道演算法的偏差高不高,如果偏差較高,試著評估訓練集或訓練資料的效能。如果偏差的確很高,甚至無法擬合訓練集,就要選擇一個新的網路。如果網路足夠大,通常可以很好的擬合訓練集。

評估方差------檢視驗證集效能。如果方差高,最好的解決辦法就是採用更多資料,也可以嘗試通過正則化來減少過擬合。但是,如果能找到更合適的神經網路框架,有時它可能會一箭雙鵰,同時減少方差和偏差。

(未完待續)