理解機器學習中的 L2 正則化
在機器學習建模過程中,正則化是控制模型複雜度,對抗過擬合,追求更優預測效果的重要手段。本文從多個角度對 L2 正則化進行講解,內容涵蓋線性回歸、嶺回歸、貝葉斯、主成分分析、奇異值分解、模型自由度、偏置-方差平衡等。
本文提綱為:
- 介紹線性回歸(Linear Regression)和嶺回歸(Ridge Regression),從嶺回歸引入 L2 正則化(L2 Regularization);
- 在貝葉斯視角下,從最大化似然概率(Likelihood Probability)和後驗概率(Posterior Probability)的角度理解最小二乘和 L2 正則化;
- 從主成分分析(principle component analysis)的角度理解 L2 正則化,闡述 L2 正則化如何對方差小的主成分方向進行懲罰;
- 從偏置(bias)-方差(variance)平衡和模型自由度的角度理解 L2 正則化如何對抗過擬合。
本文先導知識包括:線性代數(矩陣乘法、向量內積、轉置、線性獨立、向量正交、線性空間及其基、逆矩陣、矩陣的秩和跡、矩陣特徵值和特徵向量),概率(期望、方差、協方差、多元正態分布、貝葉斯公式)。
一、線性回歸、嶺回歸與 L2 正則化
為 維向量 , 為標量。令 與 之間滿足:
是服從 正態分布的隨機誤差,且對於每一個 是獨立同分布的。如果把 增加一維成為 ,其中 ,再令向量 為 ,則 [1.1] 可以寫成向量形式:
下文默認向量 包含 且共有 維。訓練集由 個向量 和標量 構成: 。線性回歸的任務就是從訓練集中學習最優的參數 。何謂最優?一種方法是定義損失函數 如下:
對每一個樣本 計算模型預測的平方誤差(squared error),在 個樣本上取平均就得到均方誤差 mse(mean squared error)。mse 衡量了 個預測值 與對應真實值 之間的總差異。
把每一個訓練樣本的轉置 作為一行構造一個 矩陣 。模型對 個樣本的預測是 維向量 :
將 個真實輸出也列成 維向量 。 mse 損失函數可以寫成:
能夠使 達到最小的 就是線性回歸問題的最小二乘解(least square)。 是一個二次函數,具有唯一的最小值。 滿足必要條件:
解此方程得到:
於是模型對訓練集的預測就是:
稱 為變換矩陣。它的跡(trace,對角線元素之和)是:
其中 為 單位矩陣。上式利用了 的跡等於 的跡這個事實。可以看到 的跡就是模型參數的數量 。將變換矩陣的跡定義為模型的自由度,則最小二乘線性回歸模型的自由度就是模型參數的數量。
最小化 就是尋找 使 達到最小。由 的列線性組合而成的向量集合是一個線性空間—— 的列空間。最小化 就是在 的列空間中尋找一個與 距離最小的向量,即 在 列空間上的投影。 就是這個投影。
式 [1.7] 存在一個問題。假如 的列線性相關,即訓練樣本的各特徵線性相關,則 的秩小於 。那麼 矩陣 不滿秩,為奇異矩陣不可逆。於是 [1.7] 不再成立。為了避免這個問題,可人為將 的對角線元素增大一個量 ,變成 。其中 為單位矩陣。在矩陣 的對角線上加上一個值增高了它的「山嶺」。山嶺增高後的矩陣變成可逆的。把它代入 [1.7] 得到:
這就是嶺回歸(Ridge Regression)的解公式。嶺回歸的預測值是:
按照上面對自由度的定義,嶺回歸的自由度應該是變換矩陣 的跡。它比最小二乘的自由度是大是小呢?這裡先賣個關子,留待後文揭曉。
最小二乘解是使均方誤差 mse 最小的解。那麼嶺回歸的解是否最小化了什麼東西呢?請看下面的損失函數:
滿足極小值必要條件:
解該式得到:
可看到 最優化 。 是 mse 加上 的 倍。 就是 L2 正則化項。它其實是 的模(長度)的平方。它度量的是各個係數的絕對值大小。將它作為懲罰項加入損失函數,迫使最優解的各係數接近 0 。 是一個超參數,它控制著 的重要程度。若 則沒有正則化;若 則各參數只能是 0 。 相對於樣本個數 越大則正則化越強。下節將從貝葉斯觀點出發,為理解 L2 正則提供另一視角。
二、貝葉斯觀點下的最小二乘和 L2 正則
所謂訓練,是指觀察到一組訓練樣本和目標值 (即 ),找到使後驗概率 達到最大的 。根據貝葉斯公式:
等號右側分子的第一項是似然概率,第二項是先驗概率。第一節提到線性回歸問題預設:
其中 服從 。且每一個 的 獨立。那麼向量 就服從多元正態分布 。似然概率的密度函數是:
對 施加 ,並將一些與 無關的常數項整理到一起,得到:
注意右邊的第二項。撇開與 無關的係數它就是負的均方誤差 mse 。也就是說最小化 mse 等價於最大化似然概率。
但是我們的終極目標是最大化後驗概率。最小二乘解最大化的是似然概率,相當於預設 的先驗概率與 取值無關。如果預設 服從多元正態分布 ,則後驗概率可以寫為:
對 施加 並將無關的常數項整理到一起,得到:
忽略與 無關的常數項和係數項,最大化後驗概率等價於最小化帶 L2 正則項的 mse 損失函數。正則係數 反比於 的先驗方差 。 越大相當於先驗方差 越小, 的取值越集中。這就是控制了模型的自由度。第一節說過將模型自由度定義為變換矩陣的跡。那麼變換矩陣的跡與此處的自由度有關么?下一節將從主成分角度出發為理解 L2 正則提供又一個洞見。同時 L2 正則化對模型自由度的影響也將清晰起來。
三、主成分與 L2 正則
本節假設訓練集 中的樣本 經過中心化,也就是 每一個分量的平均值都為 0 。那麼訓練樣本的協方差矩陣就是:
是對稱矩陣,它的特徵值都是非負實數(可以多重)。這些特徵值對應的特徵向量線性獨立且兩兩正交(此事實本文不證明,可參考 [1])。令 為對角矩陣,其對角線上的元素為從大到小排列的 特徵值 。令 為以這些特徵值對應的標準特徵向量 做列組成的 矩陣。這些標準特徵向量兩兩正交且模都為 1 。於是有 。由特徵值和特徵向量的定義,有:
也就是:
一個對稱矩陣(這裡是 )可分解成一個正交矩陣 和一個對角矩陣 的乘積形式 [3.3] 。這稱為對稱矩陣的譜分解。 的 個列向量構成 維空間的一組標準正交基,也就是一個標準正交坐標系。令:
的第一列為 個樣本在坐標系 第一個坐標軸上的投影, 第二列是在第二個坐標軸上的投影,依此類推 。 的 個行向量構成一組新的 維特徵向量。它們的協方差矩陣為:
其非對角線元素為 0 ,即 個特徵兩兩不相關。 的第一個分量的方差 最大, 為 的第一大特徵值。 的第二個分量的方差 次大, 為 的第二大特徵值,依此類推。 的列分別為 的第一主成分、第二主成分,依此類推。若 只有 個非零特徵值,則 只有 個方差不為 0 的特徵。由於 只是原數據在新坐標系 的投影,這說明原數據的真實維度只有 維。也可以把 排在後面的小特徵值忽略,因為在這些小特徵值對應的特徵方向上原數據方差很小,可以認為是雜訊。主成分分析是一種降維手段,將原始數據降到真實維度或更低的維度。降維後的數據保留了原始數據的絕大部分信息。新數據各維之間擺脫了共線性,有利於減少模型的方差。
要談主成分與 L2 正則的關係,就需要先介紹奇異值分解。若 有 個非 0 特徵值 ,則它們的平方根 就是矩陣 的奇異值。用這 個奇異值做對角線元素組成一個 的對角矩陣 。用 對應的標準特徵向量 做列組成一個 的矩陣 。再用 這 個 維向量做列組成一個 的矩陣 。則有:
因為 的列為對稱矩陣 的標準特徵向量,它們模為 1 且兩兩正交。於是 。如此:
這就是矩陣 的奇異值分解。另外, 的列可以張成 的列空間,因為對於任意一個 列空間中的向量:
上式第四個等號成立是因為 只有前 個特徵值非 0 ,對於 0 特徵值對應的特徵向量 有:
所以有 。 另外 的列兩兩正交:
最後, 的列向量是標準的(模為 1):
有 個非 0 特徵值,說明 的秩為 。它的列空間為 維空間。則 的列構成 列空間的一組標準正交基。且 的 個列是經過標準化的 的前 個主成分。看一下線性回歸最小二乘解的公式(推導過程中記住 , 以及 ):
以 的列作為 列空間的基,上式最後一個等號告訴我們 是 在 列空間上的投影(與之前的結論一致)。 是 的主成分的線性組合,係數為 在各個主成分方向上的投影 長度。
L2 正則化終於要登場了:
在帶 L2 正則化的嶺回歸問題中, 仍是 的列 的線性組合,但組合係數是 在 的各個主成分方向上的投影 長度再各自乘上一個係數 。該係數大於 0 而小於 1。 越大則係數越接近 0 ,越小則越接近 1 。同時大特徵值對應的係數比小特徵值對應的係數更接近 1 。若 為 0 則所有係數都為 1, 退化成為 。
於是可以看到,相比於最小二乘, 嶺回歸在預測 的時候對每個主成分方向都施加了一個懲罰(乘上小於 1 的係數)。正則係數 越大則懲罰越強。 為 0 則無懲罰。相對於方差較大的主成分方向懲罰較輕;相對於方差較小的主成分方向,懲罰較重。如果認為方差較小的方向來自雜訊,則 L2 正則壓縮了雜訊的影響,降低了 的方差。主成分分析原樣保留大方差方向,去掉小方差方向,相當於一個硬選擇。而 L2 正則根據方差的大小施加不同程度的懲罰,相當於軟選擇。接下來再看自由度。式 [3.13] 表明嶺回歸的變換矩陣為:
它的跡為:
可見,加入 L2 正則化之後模型的自由度小於參數個數 。
四、偏置-方差權衡與 L2 正則化的作用
對於一個新樣本點 ,其真實輸出為 ,模型預測值為 。將平方誤差 取期望得到期望誤差。這裡取期望的隨機因素包括真實值 的隨機性以及訓練集的隨機性(這導致了 的隨機性):
第一步根據平方的期望等於期望的平方加上方差。第二步利用事實:訓練集外再觀察一次得到的 和預測值 之間的是獨立的。該式表明模型的期望誤差等於數據本身的方差,模型預測值的方差,模型預測偏置的平方三部分加和。偏置與方差是一對矛盾。模型複雜度高則偏差小方差大,產生過擬合。模型複雜度低則偏差大方差小,產生欠擬合。模型調參就是通過超參數控制模型複雜度,在偏置與方差權衡中找到一個平衡點使得期望誤差最小。
上節說過 L2 正則壓抑小方差主成分方向的影響從而降低預測的方差。這是有代價的。它使模型的預測變得有偏。考察一下最小二乘解和嶺回歸解在訓練樣本集 上預測值 和 (式 [1.8] 和 式 [1.11])的均值和方差:
由此看出,最小二乘解的預測是無偏的。 的協方差矩陣為:
預測值第 個分量 的方差為 , 是變換矩陣 的第 個對角線元素。全體 個預測值的方差之和為:
而嶺回歸的預測值 的期望為:
估計不再無偏。但是 的協方差矩陣是:
預測值第 個分量 的方差為 , 是矩陣 的第 個對角線元素。全體 個預測值的方差之和為:
可見 L2 正則化犧牲了偏置,但減小了預測值的方差。
模型自由度即模型複雜性。根據線性模型自由度的定義 ,嶺回歸的自由度低於最小二乘的自由度。L2 正則化降低模型複雜度,使方差更低而偏差更高。在上圖中就是向著左側靠攏。通過調節正則化係數 可以控制模型自由度,在 bias-variance trade-off 中尋找最佳平衡點,追求最優的泛化效果。
五、參考數目
[1] 《線性代數及其應用》【美】David C. Lay[2] 《統計學習基礎(第2版)(英文)》【美】Trevor Hastie / Robert Tibsiranl / Jerome Friedman推薦閱讀:
※人工智慧演算法會不會是最了解你的?可以完全信任演算法的推薦嗎?
※滴滴演算法大賽賽題「供需預測」最終要解決什麼樣的實際問題?
※那些深度學習《面試》你可能需要知道的
※大數據背後的神秘公式—貝葉斯公式
※能否訓練一個AI,能夠自動製作OSU!的鋪面?