【每日學習】深度學習相關知識

1、【2019年11月8日】過擬合與欠擬合

過擬合和欠擬合是常見的機器學習概念,這裏寫一下,爲後面的BN層學習奠定基礎。我們可以用下面的圖來表示:

最左邊爲欠擬合,可以看出擬合程度不是很好,經常會造成訓練中精度不高。最右邊爲過擬合,曲線很好擬合了樣本,以至於噪聲數據也被擬合,經常會造成實際測試精度不高。中間的就擬合的非常好,即保證了正常樣本的擬合,又確保了噪聲數據不會被擬合。

(1)欠擬合:欠擬合比較好理解就是模型簡單或者說語料集偏少、特徵太多,在訓練集上的準確率不高,同時在測試集上的準確率也不高,這樣如何訓練都無法訓練出有意義的參數,模型也得不到較好的效果。【解決方法】選取好的模型、特徵以及訓練集。

(2)過擬合:過擬合主要是因爲模型盡力去擬合所有的訓練數據,導致某一些噪聲數據也擬合。模型在訓練的時候並不清楚哪些是髒數據,它只會不停的去擬合這些數據。導致公共特徵學習較少,從而在測試過程準確率低。【解決方法】①提前結束訓練;②擴充數據集;③正則化或批歸一化;④Dropout;⑤挑選合適的模型。

【參考資料】

https://blog.csdn.net/randompeople/article/details/82107740

 

2、【2019年11月12日】批歸一化(Batch Normalization)

爲啥需要歸一化?神經網絡學習過程本質就是爲了學習數據分佈,一旦訓練數據與測試數據的分佈不同,那麼網絡的泛化能力也大大降低。

批歸一化算法原理如下圖所示。

首先求每一個小批量訓練數據的均值,然後求每一個小批量訓練數據的方差。接着使用求得的均值和方差對該批次的訓練數據做歸一化,獲得0-1分佈。其中\large \varepsilon是爲了避免除數爲0時所使用的微小正數。最後尺度變換和偏移:將\large x_{i}​乘以\large \gamma調整數值大小,再加上\large \beta增加偏移後得到\large y_{i}​,這裏的\large \gamma是尺度因子,\large \beta是平移因子。這一步是BN的精髓,由於歸一化後的\large x_{i}基本會被限制在正態分佈下,使得網絡的表達能力下降。爲解決該問題,我們引入兩個新的參數:\large \gamma\large \beta\large \gamma\large \beta是在訓練時網絡自己學習得到的。

BN在神經網絡訓練中會有下面的作用:第一是可以加快訓練速度。第二是可以省去Dropout、L1、L2等正則化處理方法。第三是可以提高模型訓練精度,在一定程度緩解了深層網絡中梯度彌散(特徵分佈較散)的問題,從而使得訓練深層網絡模型更加容易和穩定。

【參考資料】

https://blog.csdn.net/bingo_csdn_/article/details/79393354

https://blog.csdn.net/vict_wang/article/details/88075861

 

3、【2019年11月26日】L1正則化

正則化的目的就是防止模型的過擬合,我們當然希望模型訓練的過程中損失逐漸降低,也同時希望測試的時候也能有很好的泛化能力。

例如房價預測,使用多項式迴歸擬合數據。正常爲二次項(如上方左圖所示),我們當然不希望過擬合導致的曲線變爲高次函數(如上方右圖所示)。所以在這裏會加入一個懲罰項,從而使得高次冪近似爲0。

一般來說,監督學習可以看做最小化下面的目標函數:

                                       \large min \frac{1}{N} \sum_{i=1}^{N} (y_i-\omega ^Tx_i)^2 + \lambda J(f)

上式中第一項爲模型f(x)關於訓練數據集的平均損失;第二項爲正則化項,來約數模型更加簡單。

L1正則化和L2正則化可以看做是損失函數的懲罰項。所謂『懲罰』是指對損失函數中的某些參數做一些限制。對於線性迴歸模型,使用L1正則化的模型建叫做Lasso迴歸,使用L2正則化的模型叫做Ridge迴歸(嶺迴歸)。

L1範數是指向量中各個元素絕對值之和。

                                       \large min \frac{1}{N} \sum_{i=1}^{N} (y_i-\omega ^Tx_i)^2 + C||\omega||_1

以二維樣本爲例,下圖爲原始目標函數的曲線等高線,對於線性迴歸這種目標函數凸函數的話,我們最終的結果就是最裏邊的紫色的小圈圈等高線上的點。

加入L1正則化以後的圖像爲:

根據上圖可知,當這個菱形與某條等高線相切(僅有一個交點)的時候,這個菱形最小。

幾乎對於很多原函數等高曲線,和某個菱形相交的時候及其容易相交在座標軸(比如上圖),也就是說最終的結果,解的某些維度及其容易是0,比如上圖最終解是\omega=(0, x),這也就是我們所說的L1更容易得到稀疏解(解向量中0比較多)的原因。

L1範數會使權值稀疏,參數稀疏規則化能夠實現特徵的自動選擇,在特徵工程的過程中,一般來說,x_i的大部分元素(特徵)都和其標籤y_i沒有關係的。我們在最小化目標函數的時候,考慮了這些無關特徵,雖然可以獲得最小的訓練誤差,但是對於新的樣本時,這些沒用的信息反而被考慮,干擾了對樣本的預測。稀疏規則化將這些沒用的特徵的權重置爲0,去掉這些沒用的特徵。

【參考資料】

https://zhuanlan.zhihu.com/p/35356992

https://blog.csdn.net/fisherming/article/details/79492602

https://www.cnblogs.com/lliuye/p/9354972.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章