深度學習理論——目標函數(損失函數)&正則化&交叉驗證

大家好,繼續理論學習,網絡的設置接近了尾聲,本次學習目標函數和正則化。

1.目標函數

(1)分類問題中的目標函數

這類問題中最常用的就是交叉熵函數了,即使用了softmax的損失函數。假設共有N個訓練樣本,針對網絡最後分類層第i個樣本的輸入特徵爲xi,其對應的真實標記爲yi,hi爲其網絡對應的最終輸出,C爲分類任務的類別數。有了如上定義,其形式可寫爲:

其中前面的1/N是一個常數,加不加都一樣,後面的累加部分我還看到一個版本是再乘上真實值y。

(2)迴歸問題中的目標函數

在分類任務中,最後的樣本真實標記實際上是一條一維向量,僅在yi處標記爲1其餘地方均爲0。但迴歸問題的輸出就不一樣了,也是一條一維向量,但其每一個元素都爲實數,而不是僅爲二值。

首先介紹殘差的概念:即xi真實值和預測值的差


則迴歸常用的l1,l2目標函數定義如下:(M爲標記向量總維度)



2.正則化

我們通常使用正則化來減小過擬合。過擬合顧名思義就是模型過度貼合數據,導致泛化性不強的問題。這種時候,擬合出來的模型可以用很複雜的多項式表示,我們想要減少過擬合現象的出現,可以從簡化多項式做起。正則化做的就是這麼一個工作。它在計算真實值和估計值的差的後面對多項式參數的求和,我們不但要使真實值和估計值的差儘量小,還要使多項式參數的和儘量小,其中L2正則化就是取多項式參數的平方的和,L1正則化就是取多項式參數的絕對值的和。效果就是L1可以使有些參數被壓縮爲0,而L2是使參數普遍接近於0。L0 範數和 L1 範數都能夠達到使參數稀疏的目的,但 L0 範數更難優化求解,L1 範數是 L0 範數的最優凸近似,而且它比 L0 範數要容易優化求解。L2 範數不但可以防止過擬合,提高模型的泛化能力,還可以讓我們的優化求解變得穩定和快速。L2 範數對大數和 outlier 更敏感。

(1)l2正則化

l2正則化在深度學習中也叫權重衰減,就是通過對網絡中權重w的正則來控制擬合程度。假設待正則的網絡參數爲w,則其表達式爲:

其中λ用於控制正則項大小,λ越大對模型複雜度的約束就越大。

(2)l1正則化


l1除了和l2一樣約束參數量級以外,還可以使參數更加稀疏,能夠更好地去噪。

(3)dropout

dropout可以使網絡中節點隨機失活,降低參數對網絡的依賴,有效抑制過擬合,一句話就是每次用不同的樣本訓練不同的網絡,再取平均。

3.交叉驗證

交叉驗證簡單來說就是我們平時取一部分數據作爲訓練集,剩下的數據作爲測試集,這樣一來,測試集的數據並沒有在訓練的時候提供信息,沒有充分利用我們的樣本,且如果樣本集劃分不合理會嚴重影響訓練和測試效果。因此我們可以一次取一個(或k個)樣本作爲測試集,剩下的都作爲訓練集,這樣每個樣本都有作爲測試和訓練集的機會,充分利用了樣本信息,而且保證了魯棒性。

簡單介紹就是這樣,我們下期見!

發佈了78 篇原創文章 · 獲贊 26 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章