正則化(regularization): 期望風險、經驗風險、結構風險、L0範數、L1範數、L2範數

正則化(regularization):

期望風險、經驗風險、結構風險、L0範數、L1範數、L2範數

  • 主要內容
    • 期望風險、經驗風險、結構風險
    • 正則項:L0範數、L1範數、L2範數
    • 關於L1正則化與L2正則化的問題整理

一、期望風險(expected risk)、經驗風險(empirical risk)、結構風險(structural risk)
  1、期望風險(expected risk)
  期望風險(expected risk):描述模型與訓練樣本以及測試樣本(或者稱之爲“未知樣本”)的擬合程度。表示如下:

這裏寫圖片描述

L(Y,f(X)) 表示損失函數,損失函數值越小,說明模型對樣本(訓練樣本以及測試樣本)的擬合程度越好。P(X,Y) 表示XY 的聯合概率分佈。對於訓練樣本,我們知道XY 的聯合概率分佈;但是,對於測試樣本(未知樣本),我們並不知道XY 的聯合概率分佈。因爲,如果我們知道測試樣本(未知樣本)XY 的聯合概率分佈,我們就可以得到XY 的條件概率分佈P(Y|X) ,那麼我們就不用學習模型啦,直接針對測試樣本(未知樣本)求解P(Y|X) 就行啦。顯然,工程實踐中,沒這麼簡單的事情。
  因此,針對期望風險,我們並不能夠直接求解得到。
  但是,機器學習中,針對模型的選擇,我們需要選擇期望風險最小的模型,如果無法得到期望風險,我們是否就無法進行模型的選擇了呢?答案是否定的。

  2、經驗風險(empirical risk)
  經驗風險(empirical risk):描述模型與訓練樣本的擬合程度。表示如下:

這裏寫圖片描述

其中,L(Y,f(X)) 表示損失函數,N 表示訓練樣本的個數。
  因此,針對經驗風險,我們是能夠直接求解得到的。經驗風險越小,說明模型對訓練樣本的擬合程度越高;經驗風險越大,說明模型對訓練樣本的擬合程度越低。
  針對訓練樣本時,我們希望經驗風險最小,說明模型能夠很好的擬合訓練樣本;但是,此時模型針對測試樣本,可能並不能產生很好的擬合效果;這說明,此時,我們的模型有可能過擬合了。
  經驗風險越小,說明我們的模型需要更多的參數來擬合訓練樣本,導致模型的複雜程度變高,導致模型的泛化能力變弱,從而導致過擬合。爲了解決這一問題,我們需要限制模型的複雜程度,從而使得我們的模型不僅能夠比較優秀的擬合訓練樣本,而且能夠具備比較優秀的泛化能力,以此達到期望風險的效果,進行模型的選擇。

  3、結構風險(structural risk)
  結構風險(structural risk):描述模型與訓練樣本的擬合程度,以及模型的複雜程度。表示如下:

這裏寫圖片描述

其中,L(Y,f(X)) 表示損失函數,N 表示訓練樣本的個數;Ω(f) 稱爲正則項(或者懲罰項),表示模型的複雜程度;λ 是係數,用於權衡經驗風險與模型複雜程度。λ 的取值,正是機器學習中,我們需要調節的參數。
  結構風險最小化(structural risk minimization):模型不僅能夠比較優秀的擬合訓練樣本,而且能夠具備比較優秀的泛化能力。表示如下:
這裏寫圖片描述

  李航《統計學習方法》中指出:結構風險最小化等價於正則化

二、正則項:L0範數、L1範數、L2範數
  結構風險最小化(正則化)中,Ω(f) 稱爲正則項(regularizer),或者懲罰項(penalty term),表示模型的複雜程度。正則項一般是模型複雜程度的單調遞增函數,模型越複雜,正則項的值越大。Lp 範數是常用的正則項,也就是說,正則項通常是模型參數向量的範數。接下來我們詳細介紹L0 範數、L1 範數、L2 範數。
  1、L0範數
  L0範數:描述向量中非0元素的個數。
  L0範數可以實現模型參數向量的稀疏。但是,L0範數的優化求解是NP-hard問題,因此難以應用。
  補充知識點:實現模型參數向量的稀疏有什麼好處呢?主要有以下兩點:進行特徵選擇、提高模型可解釋性。

  2、L1範數
  L1範數:描述向量中各個元素的絕對值之和。
  L1範數可以實現模型參數向量的稀疏。L1範數是L0範數的最優凸近似。不同於L0範數的優化求解是NP-hard問題,L1範數的優化求解相對容易。
  補充知識點:L1範數爲什麼能夠實現模型參數向量的稀疏呢?
  例如,最簡單的線性迴歸模型:

這裏寫圖片描述

  這裏假設,我們採用的損失函數爲平方損失(square loss)。則前文中提到的結構風險最小化(公式1-4),可以表示爲:
這裏寫圖片描述

  從凸優化的角度來講,上式(2-2)等價於
這裏寫圖片描述

其中C 是與λ 對應的常數。
  現在,爲了方便可視化,我們假設(2-1)中D=2 ,也就是數據對象只含有兩個屬性。那麼在(w1,w2) 平面上,可以畫出目標函數的等高線,如下圖1中彩色圈圈;而約束條件則變成該平面上,半徑爲C 的一個norm ball,我們稱其爲L1 -ball,如下圖1黑線菱形中的區域。等高線與L1 -ball首次相交的地方就是最優解
  注意:在二維空間上,最優解的地方,就有w1=0 ;如果更高維的空間上,可以想象最優解的地方,將會產生更多的稀疏。
這裏寫圖片描述
圖1

  關於L1範數爲什麼能夠實現模型參數向量的稀疏,更多的知識以及證明,可以參考文章《Sparsity and Some Basics of L1 Regularization》

  3、L2範數
  L2範數:描述向量中各元素的平方之和,然後求平方根。
  補充知識點:L2範數不能實現模型參數向量的稀疏。
  例如,最簡單的線性迴歸模型:

這裏寫圖片描述

  這裏假設,我們採用的損失函數爲平方損失(square loss)。則前文中提到的結構風險最小化(公式1-4),可以表示爲:
這裏寫圖片描述

  從凸優化的角度來講,上式(2-5)等價於
這裏寫圖片描述

其中C 是與λ 對應的常數。
  現在,爲了方便可視化,我們假設(2-4)中D=2 ,也就是數據對象只含有兩個屬性。那麼在(w1,w2) 平面上,可以畫出目標函數的等高線,如下圖2中彩色圈圈;而約束條件則變成該平面上,半徑爲C 的一個norm ball,我們稱其爲L2 -ball,如下圖2黑線圈圈中的區域。等高線與L2 -ball首次相交的地方就是最優解
  注意:與L1範數(圖1中)不同的是,在二維空間上,最優解的地方,w1 趨近於0,而不是等於0;如果更高維的空間上,可以想象最優解的地方,將會有更多的參數w1 趨近於0,而不是等於0。因此,L2範數不能實現模型參數向量的稀疏。
  由於L2範數不能實現模型參數向量的稀疏,因此得到的參數w 仍然需要數據對象的所有屬性才能計算預測結果,因此從計算量上來說並沒有得到改觀。
這裏寫圖片描述
圖2

  補充知識點:L2範數有助於處理條件數(condition number)不好的情況下矩陣求逆很困難的問題。
  關於這個知識點,感興趣的童鞋可以閱讀文章《機器學習中的範數規則化之(一)L0、L1與L2範數》

三、關於L1正則化與L2正則化的問題整理
  1、從貝葉斯的角度來看,正則化等價於對模型參數引入先驗分佈:對參數引入高斯先驗分佈等價於L2正則化,對參數引入拉普拉斯分佈等價於L1正則化。詳細內容,可以參考文章《Regularized Regression: A Bayesian point of view》
  2、L1正則化問題的求解,可以使用近端梯度下降(Proximal Gradient Descent,簡稱PGD)、座標軸下降、最小角迴歸法;L2正則化問題的求解,可以使用梯度下降(隨機梯度下降、批量梯度下降)、牛頓法、擬牛頓法等等。
  3、關於L1範數與L2範數的求導,可以參考《常用範數求導》
  4、L1範數會選擇少量的特徵,其他的特徵都是0;L2範數會選擇更多的特徵,這些特徵都會趨近於0。Lasso在特徵選擇的時候非常有用,而Ridge就只是一種規則化而已。如果在所有特徵中,只有少數特徵起主要作用的情況下,那麼選擇Lasso比較合適,因爲它能自動選擇特徵;如果在所有特徵中,大部分特徵都能起作用,而且起的作用很平均,那麼使用Ridge也許更合適。如果模型的特徵非常多,我們希望一些不重要特徵的係數歸零,從而讓模型的係數稀疏化,那麼選擇L1正則化。如果我們需要相對精確的多元邏輯迴歸模型,那麼L1正則化可能就不合適了。在調參時,如果我們目的僅僅是爲了解決過擬合問題,一般選擇L2正則化就可以;但是,如果選擇L2正則化之後,發現還是存在過擬合的問題,就可以考慮L1正則化。

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