正則化(regularization):
期望風險、經驗風險、結構風險、L0範數、L1範數、L2範數
- 主要內容
- 期望風險、經驗風險、結構風險
- 正則項:L0範數、L1範數、L2範數
- 關於L1正則化與L2正則化的問題整理
一、期望風險(expected risk)、經驗風險(empirical risk)、結構風險(structural risk)
1、期望風險(expected risk)
期望風險(expected risk):描述模型與訓練樣本以及測試樣本(或者稱之爲“未知樣本”)的擬合程度。表示如下:
因此,針對期望風險,我們並不能夠直接求解得到。
但是,機器學習中,針對模型的選擇,我們需要選擇期望風險最小的模型,如果無法得到期望風險,我們是否就無法進行模型的選擇了呢?答案是否定的。
2、經驗風險(empirical risk)
經驗風險(empirical risk):描述模型與訓練樣本的擬合程度。表示如下:
其中,
因此,針對經驗風險,我們是能夠直接求解得到的。經驗風險越小,說明模型對訓練樣本的擬合程度越高;經驗風險越大,說明模型對訓練樣本的擬合程度越低。
針對訓練樣本時,我們希望經驗風險最小,說明模型能夠很好的擬合訓練樣本;但是,此時模型針對測試樣本,可能並不能產生很好的擬合效果;這說明,此時,我們的模型有可能過擬合了。
經驗風險越小,說明我們的模型需要更多的參數來擬合訓練樣本,導致模型的複雜程度變高,導致模型的泛化能力變弱,從而導致過擬合。爲了解決這一問題,我們需要限制模型的複雜程度,從而使得我們的模型不僅能夠比較優秀的擬合訓練樣本,而且能夠具備比較優秀的泛化能力,以此達到期望風險的效果,進行模型的選擇。
3、結構風險(structural risk)
結構風險(structural risk):描述模型與訓練樣本的擬合程度,以及模型的複雜程度。表示如下:
其中,
結構風險最小化(structural risk minimization):模型不僅能夠比較優秀的擬合訓練樣本,而且能夠具備比較優秀的泛化能力。表示如下:
李航《統計學習方法》中指出:結構風險最小化等價於正則化。
二、正則項: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)等價於
其中
現在,爲了方便可視化,我們假設(2-1)中
注意:在二維空間上,最優解的地方,就有
圖1
關於L1範數爲什麼能夠實現模型參數向量的稀疏,更多的知識以及證明,可以參考文章《Sparsity and Some Basics of L1 Regularization》。
3、L2範數
L2範數:描述向量中各元素的平方之和,然後求平方根。
補充知識點:L2範數不能實現模型參數向量的稀疏。
例如,最簡單的線性迴歸模型:
這裏假設,我們採用的損失函數爲平方損失(square loss)。則前文中提到的結構風險最小化(公式1-4),可以表示爲:
從凸優化的角度來講,上式(2-5)等價於
其中
現在,爲了方便可視化,我們假設(2-4)中
注意:與L1範數(圖1中)不同的是,在二維空間上,最優解的地方,
由於L2範數不能實現模型參數向量的稀疏,因此得到的參數
圖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正則化。