吳恩達 DeepLearning.ai 課程提煉筆記改善深層神經網路-深度學習的實踐方面
吳恩達DeepLearning.ai課程系列筆記
乾貨吳恩達 DeepLearning.ai 課程提煉筆記(1-2)神經網路和深度學習 --- 神經網路基礎
乾貨吳恩達 DeepLearning.ai 課程提煉筆記(1-3)神經網路和深度學習 --- 淺層神經網路
1
訓練、驗證、測試集
對於一個需要解決的問題的樣本數據,在建立模型的過程中,我們會將問題的data劃分為以下幾個部分:
訓練集(train set):用訓練集對演算法或模型進行訓練過程;
驗證集(development set):利用驗證集或者又稱為簡單交叉驗證集(hold-out cross validation set)進行交叉驗證,選擇出最好的模型;
測試集(test set):最後利用測試集對模型進行測試,獲取模型運行的無偏估計。
小數據時代:
在小數據量的時代,如:100、1000、10000的數據量大小,可以將data做以下劃分:
無驗證集的情況:70% / 30%;
有驗證集的情況:60% / 20% / 20%;
通常在小數據量時代,以上比例的劃分是非常合理的。
大數據時代:
但是在如今的大數據時代,對於一個問題,我們擁有的data的數量可能是百萬級別的,所以驗證集和測試集所佔的比重會趨向於變得更小。
驗證集的目的是為了驗證不同的演算法哪種更加有效,所以驗證集只要足夠大能夠驗證大約2-10種演算法哪種更好就足夠了,不需要使用20%的數據作為驗證集。如百萬數據中抽取1萬的數據作為驗證集就可以了。
測試集的主要目的是評估模型的效果,如在單個分類器中,往往在百萬級別的數據中,我們選擇其中1000條數據足以評估單個模型的效果。
100萬數據量:98% / 1% / 1%;
超百萬數據量:99.5% / 0.25% / 0.25%(或者99.5% / 0.4% / 0.1%)
Notation:
建議驗證集要和訓練集來自於同一個分布,可以使得機器學習演算法變得更快;
如果不需要用無偏估計來評估模型的性能,則可以不需要測試集。
2
偏差、方差
對於下圖中兩個類別分類邊界的分割:
從圖中我們可以看出,在欠擬合(underfitting)的情況下,出現高偏差(high bias)的情況;在過擬合(overfitting)的情況下,出現高方差(high variance)的情況。
在 bias-variance tradeoff 的角度來講,我們利用訓練集對模型進行訓練就是為了使得模型在train集上使bias最小化,避免出現 underfitting 的情況;
但是如果模型設置的太複雜,雖然在train集上 bias 的值非常小,模型甚至可以將所有的數據點正確分類,但是當將訓練好的模型應用在dev 集上的時候,卻出現了較高的錯誤率。這是因為模型設置的太複雜則沒有排除一些train集數據中的雜訊,使得模型出現overfitting的情況,在dev 集上出現高variance的現象。
所以對於bias和variance的權衡問題,對於模型來說是一個十分重要的問題。
例子:
幾種不同的情況:
以上為在人眼判別誤差在0%的情況下,該最優誤差通常也稱為「貝葉斯誤差」,如果「貝葉斯誤差」大約為15%,那麼圖中第二種情況就是一種比較好的情況。
High bias and high variance的情況
上圖中第三種bias和variance的情況出現的可能如下:
沒有找到邊界線,但卻在部分數據點上出現了過擬合,則會導致這種高偏差和高方差的情況。
雖然在這裡二維的情況下可能看起來較為奇怪,出現的可能性比較低;但是在高維的情況下,出現這種情況就成為可能。
3
機器學習的基本方法
在訓練機器學習模型的過程中,解決High bias 和High variance 的過程:
1. 是否存在High bias?
增加網路結構,如增加隱藏層數目;
訓練更長時間;
尋找合適的網路架構,使用更大的NN結構;
2. 是否存在High variance?
獲取更多的數據;
正則化( regularization);
尋找合適的網路結構;
在大數據時代,深度學習對監督式學習大有裨益,使得我們不用像以前一樣太過關注如何平衡偏差和方差的權衡問題,通過以上方法可以使得再不增加另一方的情況下減少一方的值。
4
正則化(regularization)
利用正則化來解決High variance 的問題,正則化是在 Cost function 中加入一項正則化項,懲罰模型的複雜度。
Logistic regression
Neural network
加入正則化項的代價函數:
Weight decay
在加入正則化項後,梯度變為:
5
為什麼正則化可以減小過擬合
假設下圖的神經網路結構屬於過擬合狀態:
對於神經網路的 Cost function:
加入正則化項,直觀上理解,正則化因子 設置的足夠大的情況下,為了使代價函數最小化,權重矩陣 就會被設置為接近於0的值。則相當於消除了很多神經元的影響,那麼圖中的大的神經網路就會變成一個較小的網路。
當然上面這種解釋是一種直觀上的理解,但是實際上隱藏層的神經元依然存在,但是他們的影響變小了,便不會導致過擬合。
數學解釋:
歡迎關注公眾號學習交流~
歡迎加入交流群交流學習

