Sparsity 是當今機器學習領域中的一個重要話題。John Lafferty 和 Larry Wasserman 在 2006 年的一篇評論中提到:
Some current challenges … are high dimensional data, sparsity, semi-supervised learning, the relation between computation and risk, and structured prediction.John Lafferty and Larry Wasserman. Challenges in statistical machine learning. Statistica Sinica. Volume 16, Number 2, pp. 307-323, 2006.
Sparsity 的最重要的客戶
大概要屬 high dimensional data 了吧。現在的機器學習問題中,具有非常高維度的數據隨處可見。例如,在文檔或圖片分類中常用的 bag of words 模型裏,如果詞典的大小是一百萬,那麼每個文檔將由一百萬維的向量來表示。高維度帶來的的一個問題就是計算量:在一百萬維的空間中,即使計算向量的內積這樣的基本操作也會是非常費力的。不過,如果向量是稀疏的的話(事實上在
bag of words 模型中文檔向量通常都是非常稀疏的),例如兩個向量分別只有
當然高維度帶來的問題不止是在計算量上。例如在許多生物相關的問題中,數據的維度非常高,但是由於收集數據需要昂貴的實驗,因此可用的訓練數據卻相當少,這樣的問題通常稱爲small
——我們一般用
使用 square loss 來進行學習的話,就變成最小化如下的問題
這裏
然而,如果
解決 overfitting 最常用的辦法就是 regularization ,例如著名的 ridge regression 就是添加一個
直觀地來看,添加這個 regularizer 會使得模型的解偏向於 norm 較小的
其中
不過,特別是在像生物或者醫學等通常需要和人交互的領域,稀疏的解除了計算量上的好處之外,更重要的是更具有可解釋性
。比如說,一個病如果依賴於 5 個變量的話,將會更易於醫生理解、描述和總結規律,但是如果依賴於 5000 個變量的話,基本上就超出人肉可處理的範圍了。
在這裏引入稀疏性的方法是用
該問題通常被稱爲 LASSO (least absolute shrinkage and selection operator) 。LASSO 仍然是一個 convex optimization 問題,不過不再具有解解析解。它的優良性質是能產生稀疏性,導致
可是,爲什麼它能產生稀疏性呢?這也是一直讓我挺感興趣的一個問題,事實上在之前申請學校的時候一次電話面試中我也被問到了這個問題。我當時的回答是背後的理論我並不是很清楚,但是我知道一個直觀上的理解。下面我們就先來看一下這個直觀上的理解。
首先,很 ridge regression 類似,上面形式的 LASSO 問題也等價於如下形式:
也就是說,我們將模型空間限制在
可以看到,角
出現,而目標函數的測地線除非位置擺得非常好,大部分時候都會在角的地方相交。注意到在角的位置爲產生稀疏性,例如圖中的相交點就有
相比之下,
不過,如果只限於 intuitive 的解釋的話,就不那麼好玩了,但是背後完整的理論又不是那麼容易能夠搞清楚的,既然這次的標題是 Basics ,我們就先來看一個簡單的特殊情況好了。
接下來我們考慮 orthonormal design 的情況:
注意到 LASSO 的目標函數 (eq:
2) 是 convex 的,根據 KKT 條件,在最優解的地方要求 gradient
定義 subgradient; subdifferential
對於在
由在點
注意 subgradient 和 subdifferential 只是對凸函數定義的。例如一維的情況,
證明很簡單,將
然後我們再來看 LASSO ,假設
gradient 存在,此時 wˉj≠0
由於 gradient 在最小值點必須要等於零,我們有
亦即
根據 orthonormal design 性質以及 least square 問題在 orthonormal design 時的解 (eq: 3) 化簡得到
從這個式子也可以明顯看出
再用一次
於是剛纔的式子可以進一步寫爲
這裏
gradient 不存在,此時 wˉj=0
根據 subgradient 在最小值點處的性質的性質,此時比有
亦即存在
於是
又因爲
圖上畫了原始的 least square 解,LASSO 的解以及 ridge regression 的解,用上面同樣的方法(不過由於 ridge regularizer 是 smooth 的,所以過程卻簡單得多)可以得知 ridge regression 的解是如下形式
可以 ridge regression 只是做了一個全局縮放,而 LASSO 則是做了一個 soft thresholding :將絕對值小於
上面的文字,前半段看懂了,後半段功力不夠,還沒有看懂
下面就講下個人的直觀理解:
l2正則可以防止參數估計的過擬合,但是選擇合適lambda比較困難,需要交叉驗證。如果有個特徵與輸出結果不相關,則L2會給一個特別小的值,但是不會爲0.
l1正則會產生稀疏解,即不相關的的特徵對應的權重爲0,就相當於降低了維度。但是l1的求解複雜度要高於l2,並且l1更爲流行