从LASSO回归到结构性稀疏:线性回归的正则项都带来了什么?
?作者 | 黃秋實
單位 | 香港中文大學(深圳)
研究方向 | 智能電網
本文我們主要關注于以下問題:?
1. LASSO Regression 是什么??
2. 稀疏性的意義是什么?(從數學上證明)
3. 為什么 LASSO Regression 可以帶來稀疏性??
4. 如何求解 LASSO Regression(附代碼)?
5. 線性回歸中不同的正則項都帶來了什么?
6. 為什么需要結構性稀疏?
7. 如何得到結構性的稀疏?
8. 稀疏性的拓展一些常用的工具箱
LASSO是什么?
LASSO Regression 是一種特殊的線性回歸模型。與常見的最小二乘(Least Square Regression)回歸相比,LASSO 回歸僅僅在損失函數上增加了一個對變量 的 -norm(L1-范數)的懲罰:
其中 是輸入的樣本, 是一個給定的矩陣(一組給定的基), 是我們需要求解的變量, 是這個模型的懲罰系數。與最小二乘回歸相比,LASSO 回歸不僅可以幫助我們得到一個預測模型,同時也會對特征進行一定的選擇。對特征的選擇反應在變量 上時就會呈現出向量 具有稀疏性。這聽起來很晦澀,所以我們在下面舉一個例子來說明。
稀疏性的意義是什么?
我們來考慮一個商業分析場景。假設有一系列銷售火爆的同類產品,因為我們也想做一個這樣的產品來賣,所以我們很關注它們的銷量。當前,主要有 A,B,C,... , Z 這 26 家公司在賣這個產品。我們令公司 A 的產品銷量為 ,其余各家的產品銷量以此類推,我們就可以得到一個產品銷量的向量 。
我們都知道要做一個好的產品,并讓它有很好的銷量,需要有很多方面的投入。例如:外觀設計,功能研發,廣告宣傳等很多方面都需要進行投入。這樣便引出了一個很自然的分析問題:在那些方面進行投入,我們可以獲得更好的產品銷量呢?這些公司已有的做法可能會給我們帶來一定的啟示。
我們假設得到了之前這 26 家公司在做產品時每個方面的投入大小,并且每個方面的投入與產品的銷量之間呈線性關系,因此我們就可以用 LASSO 回歸等線性模型來進行分析。從數學上來說,對于每一個公司的產品銷量,由于線性關系的存在,我們可以使用如下線性模型來近似(假設有 100 個可投入方面):
其中 代表在第 i 方面收益/投入比, 代表公司 A 在第 i 方面的投入大小。從上面的線性模型中,我們可以發現,我們想要分析的問題其實就是去求解每個可投入方面的收益/投入比 。從這些我們知道的產品銷量以及每個公司的投入細節中求解收益投入比的方法就是線性回歸。
如果我們使用 LASSO 回歸來求解上面的這個回歸問題,那么我們其實是想要得到:
其中 是記錄 26 個公司產品銷量的向量, 是記錄 26 個公司在 100 個方面投入大小的數據矩陣(矩陣 的任意一行代表對應公司對給個方面的投入大小,矩陣 X 的每一列代表各個公司對對應方面的投入大小), 是我們想要了解的每個可投入方面的收益/投入比向量。此時,我們可以看到如果我們最后得到的收益/投入比向量 是稀疏的,那么相當于 LASSO 回歸模型幫助我們對這 100 個可投入方面進行了選擇,僅留下了一些值得投入,對產品銷量有較大影響的方面。這便是稀疏性的意義:對特征進行選擇,僅留下對分析目標相關性更強的特征。
為什么LASSO Regression可以帶來稀疏性?
相比于其他的相對定性的詮釋,在這里我們給出一個更加嚴謹的解釋。為了從數學上證明 LASSO Regression 確實可以使優化的目標稀疏,我們首先要回顧一些數學知識。
3.1 次梯度(Subgradient)
對于一個凸函數 ,存在一個向量 是 在 處的次梯度,那么它需要滿足:
我們從函數圖像的角度來解釋次梯度的意義。我們知道 是一條經過 點的直線,其中 這個向量就是這條直線的斜率(梯度)。所以對于一個次梯度 來說,它需要滿足它所形成的這條直線要一直處于原函數 的下方,即 。同時,與梯度不同的,對于函數 上的一個點 ,可能會有很多滿足以上條件的向量 。如下圖所示,在標出的點,可以有很多滿足條件的直線,因此這個點的次梯度就會是一個集合。
▲ 一個次梯度的例子
我們知道對于可導的凸函數,有凸函數的一階性質存在即:
由于凸函數的一階性質保證了在 w 處能夠滿足如上性質的向量,只能是對應點的梯度即 。因此對于凸函數中的可導部分,它的梯度就等于它的次梯度。而對于函數的不可導部分,函數的次梯度就會是一個集合。舉一個最簡單的例子,對于函數 而言,它的次梯度就是:
對于任意凸函數 ,由于凸函數的性質,我們可以知道以下關于 次梯度的性質:
1. 對于 上每一點 w 都有次梯度 存在;
2. 在 可導的點上,它的次梯度就等于它的梯度;
3. 對于 中不可導的點,它的次梯度就會是一個凸集;
4.當且僅當 時, 就是整個函數 的全局最小點(global minimum)。
有了以上的數學知識,我們就可以來解釋為什么 LASSO 回歸可以帶來稀疏性,亦即為什么 -norm 的正則項可以帶來稀疏性。
3.2 LASSO回歸與稀疏性
我們知道 LASSO 回歸的損失函數是:。由于 并不是全局可導,所以我們只能使用次梯度來對它進行分析。對于是否變量 是否稀疏,我們一一分析變量 的每一個分量 會在什么情況下為 0 。對于損失函數 ,任意一個分量 上在 處有次梯度:
其中 是矩陣 的第 j 列。我們知道當 時, 為全局最小點。此時對于 的每一個分量都有 。基于這一點,我們知道 當且僅當 。由于 是線性擬合時的殘差(residual),我們令 ,于是 。因此我們可以看到:
從之前的案例分析中,我們可以知道矩陣 ,其中 m 是數據(sample)的數量,而 n 是特征(feature)的數量。因此矩陣 的第 j 列就是第 j 個特征的數據向量。結合上式我們便可分析得到,當數據特征向量 與最終的殘差 更加正交的話,那么與它對應的變量 就更容易等于 0。并且我們還可以看到,隨著懲罰參數 的增加,變量 會愈加稀疏,因此它的每一個分量等于 0 的可能性都越大。
如何求解LASSO Regression?
基于之前對 LASSO 回歸稀疏性的分析,最自然地求解 LASSO 回歸的方法就是次梯度下降(subgradient descent)。但是次梯度下降的收斂速率很慢,并且需要計算次梯度,計算過程較為復雜。因此常用坐標軸下降法(coordinate descent)來解決 LASSO 回歸。由于完整地講述坐標軸下降法需要的篇幅過長,我們僅給出其對于 LASSO 回歸問題的解法。
其中 是軟門限操作符(soft-thresholding),它的具體表示如下:
因此對于 LASSO 回歸我們可以用以下代碼來求解:
import?numpy?as?npdef?Lasso(X,?y,?Lambda):n?=?X.shape[1]w?=?np.random.randn(n)??#?隨機初始化?wfor?i?in?range(10):??#迭代10次for?k?in?range(n):y_res?=?y?-?np.dot(X,?w)?+?X[:,k]?*?w[k]inner?=?np.dot(X[:,k],?y_res)if?inner?>?Lambda:w[k]?=?(inner?-?Lambda)/(np.linalg.norm(X[:,k])**2)elif?inner?<?-Lambda:w[k]?=?(inner?+?Lambda)/(np.linalg.norm(X[:,k])**2)else:w[k]?=?0print('第'+str(i+1)+'步損失函數的值:'?+?str(np.linalg.norm(y-np.dot(X,w))**2+Lambda*np.linalg.norm(w,ord=1)))?#?輸出損失函數大小return?wX?=?np.random.randn(10,20) y?=?np.random.randn(10) Lasso(X,y,0.2)正則項與回歸系數軌跡
嶺回歸,LASSO 回歸都是在最小二乘回歸的基礎上對損失函數添加正則項得到的回歸方法。其中嶺回歸在最初的最小二乘回歸的損失函數上增加了一項對回歸系數 的 懲罰,得到:
我們可以看到增加的懲罰項后,損失函數的 Hessian 矩陣從之前的 一個半正定矩陣變為了 這樣一個正定矩陣,這讓損失函數具有了強凸的性質(strongly convex)。因為 一定可逆而 不一定可逆,這很好地簡化了問題的求解復雜度。同時,因為強凸性質的存在,嶺回歸有且僅有一個全局最優解,而與之對比的最小二乘回歸,在很多情況下它可能會存在很多的全局最優解。
嶺回歸的這一系列優勢都是由正則項的增加所帶而來。同時我們之前分析過的 LASSO 回歸,也是因為增加了一項針對回歸系數 的 懲罰才具有變量稀疏與特征選擇的功能。所以我們想知道,這些正則項(不僅限于這兩種)都做了什么,帶來了什么?
我們分別繪制與觀察添加不同正則項時,回歸系數結果( 的每一個分量 的大小)與正則項大小()的關系圖。通過觀察不同的回歸系數的軌跡圖,我們可以看到不同正則項所帶來的影響。我們分別展示正則項為 ,,, 時,回歸系數 的軌跡圖,這基本包括了所有常用的正則項。
我們可以看到,當添加 范數的平方進行正則化的時候,隨著 增大,回歸系數 整體逐漸減小,并逐漸趨于 0,但是始終不會等于 0。我們從嶺回歸的解析解中也可以驗證這一點,嶺回歸的解析解為:。當 時, 的大小完全決定了解析解的大小,因此會產生如上的系數回歸軌跡。
而使用與之極為相似的不平方的 范數進行正則化時,所得的結果卻完全不同:
我們可以看到此時,當正則項系數 增大到一定程度時,回歸系數 會變為 。 范數正則化與嶺回歸結果不同是因為當 時,。因此我們如下分析當添加 范數項做正則化時,在 滿足什么條件時會導致回歸系數 。我們假設當前 為當前最優的選擇,則 :
由于我們只需要考慮??這一部分?,對于其他的?,其必然滿足以上條件。因此?,進而我們可以得到當??時,?為當前最優的選擇。
對于添加 范數做正則化的 LASSO 回歸,它的回歸系數軌跡圖如下:
與我們預想中的一樣,LASSO 回歸會讓系數一一分別趨于 0,進而得到一個系數的回歸系數向量 。我們可以運用次梯度在理論層面證明得到同樣的結論,具體細節可以參見上一節。
而對于使用 范數進行正則化時,為了凸顯它與 范數正則化的不同,我們設計讓回歸系數向量 內的每兩項受到正則化,即分別為如下優化問題:
在實驗中,我們可以分別得到如下結果:
我們可以看到:使用 范數進行正則化會讓被正則化的系數先同時趨向于一個非零值,再一起趨向于 0(期間一直保持相等);而使用 范數進行正則化會讓正則化的系數在同一 時,一起變為 0。我們可以看到由于 因此只有縮減正則項中最大的參量才會使得正則項大小減小。于是隨著 的增大, 中較大的會被首先縮減,直到 中所有參量相等。
為什么要從LASSO到結構性稀疏?
我們已經看到 LASSO 回歸可以帶來稀疏性,并對特征進行選擇。但是,我們對 LASSO 回歸所帶來的稀疏性進行觀察時,我們可以看到 LASSO 回歸所帶來的稀疏是全局稀疏,也就是說:在沒有其他先驗知識的情況下,所有變量的被置為 0 的概率相同。
如果我們僅有變量全局稀疏的先驗知識,那么 LASSO 回歸確實會很好地滿足我們的需求。但是,如果我們有了比全局稀疏更多的先驗知識,LASSO 回歸卻會出現一定的問題。例如,LASSO 回歸并不會考慮變量之間的相關性(捆綁關系,即有幾個變量要么同時為 0,要么同時不為 0);同時,LASSO 回歸也無法準確地進行多標簽回歸時的變量選擇。這些都在一定程度上限制了 LASSO 回歸被更為廣泛與更為精準的應用。
▲ 結構性稀疏形成的一個凸的非零區域
如何得到結構性的稀疏?
結構性稀疏主要可以分為兩種:一種是正則化范數不相互重合的小組稀疏(group sparsity);一種是正則化范數相互重合的結構稀疏(structural sparsity)[1]。
帶有小組稀疏的線性回歸問題可以被表示成如下:
其中 可以根據先驗知識的不同分別選取 等。我們可以看到小組稀疏雖然可以容納能多的先驗知識,但是對于回歸變量 w 中的每一個分量,都只能允許單一先驗知識的存在(正則化范數不互相重合)。而對于一些結構性的知識,小組稀疏就不能完美地滿足相應的需求了。因此,我們需要允許正則化范數相互重合,進而得到了結構稀疏(structural sparsity)。結構性稀疏可以很好的使用一族并封閉的支集來表示(union-closed families of supports)即:
給定一個小組集 ,有:
則帶有結構性稀疏的線性回歸問題等價于求解如下優化問題:
通常,帶有結構性稀疏的線性回歸問題是一個凸優化問題,可以使用次梯度下降的方法進行求解。我們也可以使用 CVX,CVXPY 等凸優化問題的求解工具來對設計好的優化問題進行求解。
7.1 一個結構性稀疏的例子
我們簡單比較一個帶有結構性稀疏的線性回歸和一個 LASSO 回歸在先驗知識上的區別。對于如下優化問題:
它優化得到結果只有 ;; 這三種情況。與傳統的 LASSO 回歸相比,它相當于增加了一個先驗知識即 且 的情況不存在。
稀疏性的擴展
其實稀疏性并不僅僅局限于參數選擇這一個場景中,很多現實中的場景中都存在稀疏性或者稀疏性的變種(可以被轉化為稀疏特征)。例如很多慣性比較大的系統(如:電網等)中的系統特征(如:城市區域的用電量)大多具有波動較小(相對穩定)的屬性。這些在時間上波動較小,且相對穩定的屬性,我們也可以將其轉化為稀疏特征來處理。其中常見的一種是 Fused Lasso Signal Approximator:
其中:
這種方法可以將數據在時間上的相關特征作為先驗知識加入到模型中去,因此 Fused Lasso的方法常被用來進行時間序列等序列信息的降噪處理。
同時,壓縮感知(compressed sensing)中的矩陣補全,矩陣分解里常用的核范數(nuclear norm)的正則化方法也是一個變形的稀疏正則項。例如 Robust Principal Component Analysis [2]:
其中 為核范數,它等于對應矩陣奇異值的絕對值的和。我們知道矩陣的非零奇異值個數是矩陣的秩。因此矩陣的低秩性可以使用核范數來正則化。
一些常用的工具包
一般而言,帶有稀疏特性(包括小組稀疏,結構性稀疏)的線性回歸會是一個凸優化問題,因此我們可以使用 CVX [3],CVXPY [4] 等凸優化求解工具包來求解。同時一些使用較多的方法如:Fused Lasso Signal Approximator,Isotonic Signal Approximator 等方法可以使用 RegReg 工具包 [5] 來求解。
參考文獻
[1]?Structural Sparsity https://arxiv.org/pdf/1109.2397v2.pdf?
[2] Robust PCA https://arxiv.org/abs/0912.3599?
[3]?CVX http://cvxr.com/cvx/?
[4]?CVXPY https://www.cvxpy.org/?
[5]?RegReg https://statweb.stanford.edu/~bjk/regreg/documentation.html
特別鳴謝
感謝 TCCI 天橋腦科學研究院對于 PaperWeekly 的支持。TCCI 關注大腦探知、大腦功能和大腦健康。
更多閱讀
#投 稿?通 道#
?讓你的文字被更多人看到?
如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。?
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學術熱點剖析、科研心得或競賽經驗講解等。我們的目的只有一個,讓知識真正流動起來。
📝?稿件基本要求:
? 文章確系個人原創作品,未曾在公開渠道發表,如為其他平臺已發表或待發表的文章,請明確標注?
? 稿件建議以?markdown?格式撰寫,文中配圖以附件形式發送,要求圖片清晰,無版權問題
? PaperWeekly 尊重原作者署名權,并將為每篇被采納的原創首發稿件,提供業內具有競爭力稿酬,具體依據文章閱讀量和文章質量階梯制結算
📬?投稿通道:
? 投稿郵箱:hr@paperweekly.site?
? 來稿請備注即時聯系方式(微信),以便我們在稿件選用的第一時間聯系作者
? 您也可以直接添加小編微信(pwbot02)快速投稿,備注:姓名-投稿
△長按添加PaperWeekly小編
🔍
現在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
·
總結
以上是生活随笔為你收集整理的从LASSO回归到结构性稀疏:线性回归的正则项都带来了什么?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为何有的美食一吃就会让人记一辈子?
- 下一篇: 清洁厨房顽固油污有哪些方法和技巧呢?