Sparsity and Some Basics of L1 Regularization
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 , large problem”——我們一般用 表示數據點的個數,用 表示變量的個數,即數據維度。當 的時候,不做任何其他假設或者限制的話,學習問題基本上是沒法進行的。因爲如果用上所有變量的話, 越大,通常會導致模型越複雜,但是反過來 有很小,於是就會出現很嚴重的 overfitting 問題。例如,最簡單的線性迴歸模型:
使用 square loss 來進行學習的話,就變成最小化如下的問題
這裏 是數據矩陣,而 是由標籤組成的列向量。該問題具有解析解
然而,如果 的話,矩陣 將會不是滿秩的,而這個解也沒法算出來。或者更確切地說,將會有無窮多個解。也就是說,我們的數據不足以確定一個解,如果我們從所有可行解裏隨機選一個的話,很可能並不是真正好的解,總而言之,我們 overfitting 了。
解決 overfitting 最常用的辦法就是 regularization ,例如著名的 ridge regression 就是添加一個 regularizer :
直觀地來看,添加這個 regularizer 會使得模型的解偏向於 norm 較小的 。從凸優化的角度來說,最小化上面這個 等價於如下問題:
其中 是和 一一對應的是個常數。也就是說,我們通過限制 的 norm 的大小實現了對模型空間的限制,從而在一定程度上(取決於 的大小)避免了 overfitting 。不過 ridge regression 並不具有產生稀疏解的能力,得到的係數 仍然需要數據中的所有特徵才能計算預測結果,從計算量上來說並沒有得到改觀。
不過,特別是在像生物或者醫學等通常需要和人交互的領域,稀疏的解除了計算量上的好處之外,更重要的是更具有“可解釋性”。比如說,一個病如果依賴於 5 個變量的話,將會更易於醫生理解、描述和總結規律,但是如果依賴於 5000 個變量的話,基本上就超出人肉可處理的範圍了。
在這裏引入稀疏性的方法是用 regularization 代替 regularization,得到如下的目標函數
該問題通常被稱爲 LASSO (least absolute shrinkage and selection operator) 。LASSO 仍然是一個 convex optimization 問題,不過不再具有解解析解。它的優良性質是能產生稀疏性,導致 中許多項變成零。
可是,爲什麼它能產生稀疏性呢?這也是一直讓我挺感興趣的一個問題,事實上在之前申請學校的時候一次電話面試中我也被問到了這個問題。我當時的回答是背後的理論我並不是很清楚,但是我知道一個直觀上的理解。下面我們就先來看一下這個直觀上的理解。
首先,很 ridge regression 類似,上面形式的 LASSO 問題也等價於如下形式:
也就是說,我們將模型空間限制在 的一個 -ball 中。爲了便於可視化,我們考慮兩維的情況,在 平面上可以畫出目標函數的等高線,而約束條件則成爲平面上半徑爲 的一個 norm ball 。等高線與 norm ball 首次相交的地方就是最優解。如圖 (fig: 1) 所示:
可以看到,-ball 與 -ball 的不同就在於他在和每個座標軸相交的地方都有“角”出現,而目標函數的測地線除非位置擺得非常好,大部分時候都會在角的地方相交。注意到在角的位置爲產生稀疏性,例如圖中的相交點就有 ,而更高維的時候(想象一下三維的 -ball 是什麼樣的?)除了角點以外,還有很多邊的輪廓也是既有很大的概率成爲第一次相交的地方,又會產生稀疏性。
相比之下,-ball 就沒有這樣的性質,因爲沒有角,所以第一次相交的地方出現在具有稀疏性的位置的概率就變得非常小了。這就從直觀上來解釋了爲什麼 regularization 能產生稀疏性,而 regularization 不行的原因了。
不過,如果只限於 intuitive 的解釋的話,就不那麼好玩了,但是背後完整的理論又不是那麼容易能夠搞清楚的,既然這次的標題是 Basics ,我們就先來看一個簡單的特殊情況好了。
接下來我們考慮 orthonormal design 的情況: 。然後看看 LASSO 的解具體是什麼樣子。注意 orthonormal design 實際上是要求特徵之間相互正交。這可以通過對數據進行 PCA 以及模長 normalize 來實現。
注意到 LASSO 的目標函數 (eq: 2) 是 convex 的,根據 KKT 條件,在最優解的地方要求 gradient 。不過這裏有一點小問題: -norm 不是光滑的,不存在 gradient ,所以我們需要用一點 subgradient 的東西。
定義 subgradient; subdifferential
對於在 維歐氏空間中的凸開子集 上定義的實值函數 ,一個向量 維向量 稱爲 在一點 處的 subgradient ,如果對於任意 ,滿足
由在點 處的所有 subgradient 所組成的集合稱爲 處的 subdifferential ,記爲 。注意 subgradient 和 subdifferential 只是對凸函數定義的。例如一維的情況, ,在 處的 subdifferential 就是 這個區間(集合)。注意在 的 gradient 存在的點,subdifferential 將是由 gradient 構成的一個單點集合。這樣就將 gradient 的概念加以推廣了。這個推廣有一個很好的性質。
性質 condition for global minimizer
點 是凸函數 的一個全局最小值點,當且僅當 。證明很簡單,將 帶入定義 (def: 1) 中的那個式子立即就可以得到。有了這個工具之後,就可以對 LASSO 的最優解進行分析了。在此之前,我們先看一下原始的 least square 問題的最優解 (eq: 1) 現在變成了什麼樣子,由於 orthonormal design ,我們有
然後我們再來看 LASSO ,假設 是 的全局最優值點。考慮第 個變量 ,有兩種情況。
gradient 存在,此時
由於 gradient 在最小值點必須要等於零,我們有
亦即
根據 orthonormal design 性質以及 least square 問題在 orthonormal design 時的解 (eq: 3) 化簡得到
從這個式子也可以明顯看出 和 是同號的,於是 等於 ,所以上面的式子變爲
再用一次 ,兩邊同時乘以 ,可以得到
於是剛纔的式子可以進一步寫爲
這裏 表示 的正部。
gradient 不存在,此時
根據 subgradient 在最小值點處的性質的性質,此時比有
亦即存在 使得
於是
又因爲 ,所以這個時候式子也可以統一爲 (eq: 4) 的形式。 如此一來,在 orthonormal design 的情況下,LASSO 的最優解就可以寫爲 (eq: 4) ,可以用圖 (fig: 2) 形象地表達出來。
圖上畫了原始的 least square 解,LASSO 的解以及 ridge regression 的解,用上面同樣的方法(不過由於 ridge regularizer 是 smooth 的,所以過程卻簡單得多)可以得知 ridge regression 的解是如下形式
可以 ridge regression 只是做了一個全局縮放,而 LASSO 則是做了一個 soft thresholding :將絕對值小於 的那些係數直接變成零了,這也就更加令人信服地解釋了 LASSO 爲何能夠產生稀疏解了。