1. 程式人生 > >機器學習概念篇:監督學習、過擬合,正則化,泛化能力等概念以及防止過擬合方法總結

機器學習概念篇:監督學習、過擬合,正則化,泛化能力等概念以及防止過擬合方法總結


上個系列【數字影象處理】還將繼續更新,最近由於用到機器學習演算法,因此將之前學習到的機器學習知識進行總結,打算接下來陸續出一個【機器學習系列】,供查閱使用!本篇便從機器學習基礎概念說起!



一、解釋監督學習,非監督學習,半監督學習的區別


監督學習、非監督學習和半監督學習區別就是訓練資料是否擁有標籤資訊

1、監督學習:給出了資料及資料的標準答案來訓練模型,Regression迴歸問題、classification分類問題都是典型的監督學習

(1) 監督學習之Regression迴歸問題舉例:房屋價格預測
在這裡插入圖片描述

給出了以往房屋面積和價格之間正確實際資料,預測房屋面積和價格之間的關係

(2) 監督學習之classification分類問題
在這裡插入圖片描述

乳腺腫瘤大小和年齡特徵判斷該腫瘤良性還是惡性,X代表惡性、O代表良性


2、非監督學習:給了一組資料,但沒有給出資料的標籤(答案)資訊,需要我們從資料中去發現數據間隱藏的結構資訊,聚類問題是典型的非監督學習。(左:監督,右:非監督學習)
在這裡插入圖片描述


3、半監督學習:給出了大量沒有標籤的資料和少量擁有標籤的資料訓練模型



二、解釋模型過擬合,欠擬合,正則化,泛化能力


1、欠擬合:模型沒有很好的捕捉到資料特徵,不能夠很好的擬合數據
在這裡插入圖片描述

上左圖:沒有很好的擬合數據,出現欠擬合;上右圖:很好的擬合了資料


2、過擬合:模型把訓練資料學的“太好了”,導致把資料中的潛在的噪聲資料也學到了,測試時不能很好的識別資料,模型的泛化能力下降,如下圖:
在這裡插入圖片描述


3、正則化:正則化可防止模型過擬合,在訓練中資料往往會存在噪聲,當我們用模型去擬合帶有噪聲的資料時,通過假如正則化平衡模型複雜度和損失函式之間的關係,防止模型過擬合,可定義如下公式:


4、範化能力:訓練的模型適用於新樣本的能力,稱為“泛化”能力,具有強範化能力的模型能很好的適用於整個樣本空間



三、防止過擬合的處理方法


1、Early Stopping提前終止

Early Stopping既是在訓練集迭代收斂之前停止迭代以防止過擬合,看下圖:
在這裡插入圖片描述

開始隨著訓練集迭代驗證集上的誤差隨著訓練集的誤差一起下降,但當迭代超過一定步數之後,訓練集的誤差還在降低,但是驗證集的誤差已經不在下降並且誤差有所上升,因此當驗證集的誤差不再變化時,我們便可以提前終止訓練

具體做法是:每迭代一定步數之後,我們便計算一些驗證集上的存在的誤差,當驗證集的誤差不再降低時,便停止訓練。


2、資料集擴增

可以說資料集擴增是防止過擬合最好最根源的方式,有時候擁有更多的資料勝過一個好的模型,過擬合既是在模型訓練時對訓練資料學習的太好了,舉個例子如果我們訓練一個東西是不是葉子,如果資料集的葉子都是鋸齒狀,當模型過擬合時便會認為所有的葉子都是鋸齒狀的,此時模型再好也不如往資料集中增強新的非鋸齒狀的葉子,便會防止出現過擬合。
如何獲取更多的資料:
(1) 從資料來源頭獲取更多的資料
(2) 根據當前資料集估計資料分佈引數,使用該分部產生更多的資料
(3) 資料增強,通過一定規則在現有資料集的基礎上擴充資料


3、正則化

正則化思想:由於模型過擬合很大可能是因為訓練模型過於複雜,因此在訓練時,在對損失函式進行最小化的同時,我們要限定模型引數的數量,即加入正則項,即不是以為的去減小損失函式,同時還考慮模型的複雜程度

未加入正則項的模型損失函式:

加入正則項L後損失函式:

其中λ是正則項係數,是用來權衡正則項和損失函式之間權重,正則化有以下兩種:

(1) L1正則化(L1範數):權重向量w的絕對值之和

(2) L2正則化(L2範數):權重向量w的平方和再求平方根,歐幾里得範數,其中w代表模型的引數,k則代表了模型引數的個數

(3) L1正則化和L2正則化的區別

L1正則化和L2正則化都會使得權重矩陣變小,即權重w變小,因此都具有防止過擬合的能力,但不同是L1正則化更易產生係數的權重矩陣,即權重w變小為0;L2正則化只會是w變小但不會出現大量為0現象



這裡請注意,以下給出三個重要解釋

解釋1:為什麼權重w變小能防止過擬合? 先看下圖:
在這裡插入圖片描述

過擬合時,擬合函式的係數往往比較大,正如上圖,紅色過擬合函式曲線需要估計到訓練集中的每一個點,最終形成了波動很大的擬合函式。所以在過擬合函式的某些區間裡,函式值的波動很大, 這便會使得函式在該區間的導數值的絕對值很大,由於自變數有大有小,所有隻有係數w足夠大才能保證導數值足夠大。因此控制引數w的範數不要太大,曲線波動便會小,能更好的擬合數據。


解釋2:為何L1正則化更易產生係數權重矩陣,而L2不會出現大量w值為0?

先看L1正則化損失函式:

其中J0是原始損失函式,如下圖是在二維空間中,只有兩個權重即w1和w2,此時求解J0可以畫出等值線,同時L=∑w|w| 可以畫出方形,當兩個圖形相交時便得出最優解:
在這裡插入圖片描述

如圖所示,當前最優解是:

可以看出L1正則化是權重的絕對值之和,圖形有很多突出的角,二維情況下有四個,多維情況下將會更多,J0與這些角的接觸機率遠大於與L1其他部分接觸的機率,因此最優解中將會有大量是與這些角接觸得到的,所以有w = 0,因此L1正則化便會產生稀疏的權重矩陣


我們再來看看L2損失函式:

如下圖所示,與L1正則化不同的是L2正則化中L2= α∑ww2 圖形是一個圓,這樣最優解w出現為0的機率便會小很多,所以不具有產生稀疏權重矩陣的性質
在這裡插入圖片描述



解釋三:為什麼假如L2正則化和L1正則化會出現權重衰減?

對L2正則化損失函式 J=J0+ α∑ww2 求導得:

可以得出w更新公式為:

在不使用L2正則化時,求導結果中w前的係數為1,先上式w前係數是(1-2ηα),其中η、α都是整數,因此(1-2ηα)小於1,便會使得w權重衰減:


同理對L1正則化損失函式 J= J0 + α∑w|w| 求導可得:

上式sgn表示權重w的符號,因為原式中是絕對值|w|,求導後便有符號,w的更新規則為:

比未加入L1正則化多出了- ηα*sgn(w),可以分析無論w為正還是為負,在上式中w的絕對值均會變小,出現權重衰減。


4、dropout

dropout是深度學習中降低過擬合風險的方法,神經網路產生過擬合主要是因為神經元之間的協同作用產生的,dropout便是在神經網路訓練過程中讓部分神經元失活,阻斷部分神經元之間的協同作用,減少神經元之間的聯合適應性。看下圖:
在這裡插入圖片描述
對上圖神經網路使用dropout方法後:
在這裡插入圖片描述

歡迎指正討論!