日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何防止过拟合(overfitting)

發布時間:2023/12/20 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何防止过拟合(overfitting) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?為了得到一致假設而使假設變得過度復雜稱為過擬合(overfitting),過擬合表現在訓練好的模型在訓練集上效果很好,但是在測試集上效果差。也就是說模型的泛化能力弱。在很多問題中,我們費心費力收集到的數據集并不能窮盡所有的狀態,而且一般訓練得到的模型被用來預測未知數據的結果,模型雖然在訓練集上效果很好,但是在實際應用中效果差,就說明這個模型訓練的并不是很成功,還需要改進。就譬如下方的圖像中,左邊黑色直線在一定程度擬合數據排列,而藍紫色的曲線就是照顧到每一個樣本點,曲線彎彎折折,屬于過擬合;右邊黑色的曲線就能把紅藍兩種數據點進行很好的分類,過擬合的綠色雖然在此數據上能完美分開兩類數據點,可是對于一個新的數據集,其適應能力遠不如黑色的曲線。

下面皮一下,下面的圖就生動形象地展示了過擬合問題。

?過擬合和機器學習面臨的關鍵障礙,各類學習算法都必然帶有一些針對過擬合的措施;然而必須認識到,過擬合是無法徹底避免的,我們所做的只是“緩解”,或者說減少其風險。那么如何解決過擬合?下面介紹幾種方法。

1. 數據集擴增(Data Augmentation)

眾所周知,更多的數據往往勝過一個更好的模型。就好比盲人摸象,不足夠的數據讓每個人對大象的認識都不同,學習太過片面。更多的數據能夠讓模型學習的更加全面,然而,在現實世界中,由于條件的限制,而不能夠收集到更多的數據。所以,往往在這個時候,就需要采用一些計算的方式與策略在原有數據集上進行手腳,以獲得更多的數據。數據集擴增就是要得到更多符合要求的數據。

在物體分類(object recognition)問題中,數據擴增已經成為一項特殊的有效的技術。物體在圖像中的位置、姿態、尺度,整體圖片敏感度等都不會影響分類結果,所以我們就可以通過圖像平移、翻轉、縮放、切割等手段將數據庫成倍擴充。或者在語音識別(speech recognition)中,加入噪音也被看做是一種數據擴增方式。

2. 改進模型

過擬合主要有兩個原因造成的,數據太少和模型太復雜,數據擴增增加數據量,下面我們通過使用合適復雜度的模型來防止過擬合問題,讓其能夠學習到真正的規則。對于模型復雜,最簡單暴力的做法就是減少網絡的層數和神經元的個數,但是一般不是很提倡這種做法,是因為人為并不能很好掌控刪減的程度,因此下面介紹幾種高效的方法。

2.1 Early Stopping

如下圖所示,在對模型訓練的時候,模型在訓練集上的訓練誤差(training error)隨著時間會一直減少,然而模型在驗證集上的驗證誤差會減少到一定程度后逐步上升,形成一個非對稱的U型曲線。對模型進行訓練的過程即是對模型的參數進行更新的過程,參數更新會用到一些優化算法,為了能夠得到最低測試誤差時的參數,Early Stopping的做法就是運行優化方法直到若干次在驗證集上的驗證誤差沒有提升時候停止。

一般做法是,在訓練的過程中,記錄到目前為止最好的驗證正確率(validation accuracy),當連續10次Epoch,validation accuracy沒有達到最佳Accuracy,則認為accuracy不再有所提升,此時就可以停止迭代了。

2.2 ?正則化(regularization)

損失函數分為經驗風險損失函數和結構風險損失函數,結構風險損失函數就是經驗損失函數+表示模型復雜度的正則化,正則項通常選擇L1或者L2正則化。結構風險損失函數能夠有效地防止過擬合。

  • L1正則化是指權值向量中各個元素的絕對值之和,通常表示為,L1正則化可以產生稀疏權值矩陣,即產生一個稀疏模型,可以用于特征選擇,一定程度上,L1也可以反之過擬合
  • L2化是指權值向量中各個元素的平方和的平方,通常表示為,L2正則化可以防止模型過擬合

那L1和L2正則化是如何防止過擬合呢?首先我們先明白稀疏參數和更小參數的好處。

稀疏參數(L1):參數的稀疏,在一定程度實現了特征的選擇。稀疏矩陣指有很多元素為0,少數參數為非零值。一般而言,只有少部分特征對模型有貢獻,大部分特征對模型沒有貢獻或者貢獻很小,稀疏參數的引入,使得一些特征對應的參數是0,所以就可以剔除可以將那些沒有用的特征,從而實現特征選擇。

更小參數(L2):越復雜的模型,越是嘗試對所有樣本進行擬合,那么就會造成在較小的區間中產生較大的波動,這個較大的波動反映出在這個區間內的導數就越大。只有越大的參數才可能產生較大的導數。試想一下,參數大的模型,數據只要偏移一點點,就會對結果造成很大的影響,但是如果參數比較小,數據的偏移對結果的影響力就不會有什么影響,那么模型也就能夠適應不同的數據集,也就是泛化能力強,所以一定程度上避免過擬合。2.2 ?正則化(regularization)

假設帶有L1正則化的損失函數為:,當我們在后添加L1正則化項時,相當于對做了一個約束。此時我們的任務就變成在L1正則化約束下求出取最小值的解。考慮二維的情況,在有兩個權值和的情況下,此時L1為,對于梯度下降方法,求解的過程用等值線表示,如下圖所示。黑色方形是L1正則化的圖形,五彩斑斕的等值線是的等值線。在圖中,等值線與黑色方形首次相交的地方就是最優解。因為黑色方形棱角分明(二維情況下四個,多維情況下更多),與這些棱角接觸的幾率要遠大于其他部位接觸的概率,而在這些棱角上,會有很多權值為0,這就是為什么L1正則化可以產生稀疏模型,進而可以用于特征選擇。

L1正則化

?

假設帶有L2正則化的損失函數為:,類似地,可以得到下圖在二維平面上的圖形。因為二維L2正則化函數是個圓,與L1的方形相比,圓滑了好多,因此和L2相交于棱角的幾率比較小,而是更多權值取值更小。

?

L2正則化

2.3 Dropout

在神經網絡中,Dropout方法通過修改隱藏層神經元的個數來防止網絡的過擬合,也就是通過修改深度網絡本身。對于下圖中左邊的神經網絡,在訓練過程中按照給定的概率隨機刪除一些隱藏層的神經元,同時保證輸入層和輸出層的神經元不變。便能得到左邊的神經網絡,從而簡化復雜的網絡。

在每一批次數據被訓練時,Dropout按照給定的概率P隨機剔除一些神經元,只有沒有被剔除也就是被保留下來的神經元的參數被更新。每一批次數據,由于隨機性剔除神經元,使得網絡具有一定的稀疏性,從而能減輕了不同特征之間的協同效應。而且由于每次被剔除的神經元不同,所以整個網絡神經元的參數也只是部分被更新,消除減弱了神經元間的聯合適應性,增強了神經網絡的泛化能力和魯棒性。Dropout只在訓練時使用,作為一個超參數,然而在測試集時,并不能使用。

當前Dropout被廣泛應用于全連接網絡,而在卷積層,因為卷積層本身的稀疏性和ReLU激活函數的使用,Dropout在卷積隱藏層中使用較少。

2.4 ?多任務學習

深度學習中兩種多任務學習模式:隱層參數的硬共享和軟共享

  • 硬共享機制是指在所有任務中共享隱藏層,同時保留幾個特定任務的輸出層來實現。硬共享機制降低了過擬合的風險。多個任務同時學習,模型就越能捕捉到多個任務的同一表示,從而導致模型在原始任務上的過擬合風險越小。
  • 軟共享機制是指每個任務有自己的模型,自己的參數。模型參數之間的距離是正則化的,以便保障參數相似性。

總結

以上是生活随笔為你收集整理的如何防止过拟合(overfitting)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。