范數及其應用


范數

范數的一般化定義:設\(p\geq 1\)的實數,p-norm定義為:

\[|| x ||_{p}\; :=\; (\sum_{i=1}^{n}{\left| x_{i} \right|^{p}})^{\frac{1}{p}} \]

L0范數

\[\left| \left| x \right| \right|_{0}\; :=\; ^{0}\sqrt{\sum_{i=0}^{n}{x_{i}^{0}}} \]

嚴格來講,L0不屬於范數,上面的公式讓人難以理解。在實際應用中,人們往往采用以下定義:

\[\left| \left| x \right| \right|_{0}\; \; =\; \#\left( i \right)\; with\; x_{i}\; \neq \; 0 \]

其表示向量中所有非零元素的個數。

L1范數

\[\left| \left| x \right| \right|_{1}\; :=\; \sum_{i=1}^{n}{\left| x_{i} \right|} \]

也稱為曼哈頓距離。

L0范數是指向量中非0的元素的個數。如果我們用L0范數來規則化一個參數矩陣W的話,就是希望W的大部分元素都是0。換句話說,讓參數W是稀疏的。看到了“稀疏”二字,大家都應該從當下風風火火的“壓縮感知”和“稀疏編碼”中醒悟過來,原來用的漫山遍野的“稀疏”就是通過這玩意來實現的。

但你又開始懷疑了,是這樣嗎?看到的papers世界中,稀疏不是都通過L1范數來實現嗎?腦海里是不是到處都是||W||1影子呀!

L1范數和L0范數可以實現稀疏,L1因具有比L0更好的優化求解特性而被廣泛應用。

L2范數

范數中最常見,也最著名的非L2范數莫屬。

\[\left| \left| x \right| \right|_{2}\; :=\; \sqrt{\sum_{i=1}^{n}{x_{i}^{2}}} \]

L2范數的優點

從學習理論的角度來說,L2范數可以防止過擬合,提升模型的泛化能力。
從優化或者數值計算的角度來說,L2范數有助於處理condition number不好的情況下矩陣求逆很困難的問題。

L1和L2的差別,為什么一個讓絕對值最小,一個讓平方最小,會有那么大的差別呢?

下降速度:
L1就是按絕對值函數的“坡”下降的,而L2是按二次函數的“坡”下降。
模型空間的限制:
對於L1和L2規則化的代價函數來說,我們寫成一下形式:

\[Lasso:\; \min_w{||y-Xw||^2},\; s.t.\ ||w||_1\leq{C}\\ Ridge:\; \min_w{||y-Xw||^2},\; s.t.\ ||w||_2\leq{C}\\ \]

考慮二維的情況,等高線與norm ball相交的地方就是最優解。L1-ball的最優點大都出現在"角點"處,這便大概率產生了稀疏性;L2-ball卻不可以,它只是一種規則化手段。

無限范數

infinity norm:

\[\left| \left| x \right| \right|_{\infty }\; :=\; ^{\infty }\sqrt{\sum_{i=1}^{n}{x_{i}^{\infty }}} \]

即:

\[\left| \left| x \right| \right|_{\infty }\; =\; ^{\infty }\sqrt{\sum_{i=1}^{n}{x_{i}^{\infty }}}\; =\; ^{\infty }\sqrt{x_{j}^{\infty }}\; \; =\; \max \left( \left| x_{j} \right|\right) \]

表示的是X向量中最大元素的長度。

機器學習中的應用

正則化

對模型復雜度進行懲罰,如果懲罰項選擇L1,則是我們所說的Lasso回歸,而L2則是Ridge回歸。

貝葉斯

正則化項從貝葉斯學習理論的角度來看,其相當於一種先驗函數分布

即當你訓練一個模型時,僅僅依靠當前的訓練集數據是不夠的,為了實現更好的預測(泛化)效果,我們還應該加上先驗項。

而L1則相當於設置一個Laplacean先驗,而L2則類似於 Gaussian先驗。

L1先驗對大值和小值的tolerate很好,而L2先驗則傾向於均勻化大值和小值。

貝葉斯回歸和圖模型

回歸模型\(y=Xw+\epsilon\),可以看做是:

\[p(y|X; w,\lambda)=N(Xw,\lambda) ,\; p(\epsilon)=N(0,\lambda) \]

貝葉斯分布:

\[p(\epsilon)=\frac{1}{\sqrt{2\pi}\delta}*\exp(-\frac{\epsilon^2}{2\delta^2}) \]

所以:

\[p(y|x;w)=\frac{1}{\sqrt{2\pi}\delta}*\exp(-\frac{(y-w^Tx)^2}{2\delta^2}) \]

對極大似然MLE取對數:

\[\begin{split} l(w)&=log(\prod_{i=1}^{m}{\frac{1}{\sqrt{2\pi}\delta}*\exp(-\frac{(y-w^Tx)^2}{2\delta^2})}) \\ &=mlog(\frac{1}{\sqrt{2\pi}\delta}) - \frac{1}{2\delta^2}{\sum_{i=1}^{m}{(y-w^Tx)^2}} \end{split}\]

即:

\[w_{MLE}=arg\; min\sum_{i=1}^{m}{(y-w^Tx)^2} \]

這就導出了平方損失函數。這是在我們對參數 w 沒有加入任何先驗分布的情況下。

在數據維度很高的情況下,我們的模型參數很多,模型復雜度高,容易發生過擬合。這個時候,我們可以對參數 w 引入先驗分布,降低模型復雜度。

Ridge Regression

假設參數w服從協方差為\(\alpha\)的標准高斯分布。

\[\begin{split} L(w)&=p(y|x;w*p(w))\\ &=\prod_{i=1}^{m}{\frac{1}{\sqrt{2\pi}\delta}*\exp(-\frac{(y-w^Tx)^2}{2\delta^2})})* \prod_{j=1}{n}{\frac{1}{\sqrt{2\pi}\alpha}*\exp(-\frac{(w)^2}{2\alpha^2})}, w是n個參數\\ &=\prod_{i=1}^{m}{\frac{1}{\sqrt{2\pi}\delta}*\exp(-\frac{(y-w^Tx)^2}{2\delta^2})})* \frac{1}{(2\pi)^{n/2}}\frac{1}{|\Sigma|^{1/2}}exp[-\frac{1}{2}{w^T\Sigma^{-1}w}] \end{split} \]

取對數,得:

\[\begin{split} l(w)&=log(L(w)) \\ &= m\log{\frac{1}{\sqrt{2\pi}}} + nlog\frac{1}{\sqrt{2\pi}} -\frac{1}{2}\log{|\Sigma|}- \frac{1}{2\delta^2}{\sum_{i=1}^{m}{(y-w^Tx)^2}}-\frac{1}{2}\frac{1}{\alpha}w^Tw \end{split} \]

和w有關的項:

\[J(w)=\frac{1}{m}{||y-w^Tx||_2} + \lambda||w||_2 \]

ridge regression 並不具有產生稀疏解的能力,也就是說參數並不會真出現很多零,只是會讓權值在0附近分布很密集。

假設我們的預測結果與兩個特征相關,L2正則傾向於綜合兩者的影響,給影響大的特征賦予高的權重;而L1正則傾向於選擇影響較大的參數,而舍棄掉影響較小的那個。實際應用中L2正則表現往往會優於 L1正則,但 L1正則會大大降低我們的計算量。

Lasso

如果對w引入Laplace分布呢?Laplace分布:

\[f(x|u,b)=\frac{1}{2b}\exp({-\frac{|x-u|}{b}}) \]


重復之前的推導過程我們很容易得到:

\[w_{MAP} = arg \min(\frac{1}{2\delta^2}{\sum_{i=1}^{m}(y-w^Tx)^2} + \frac{1}{2b^2}{||w||_1}) \]

LASSO 仍然是一個 convex optimization 問題,它的優良性質是能產生稀疏性,導致 w 中許多項變成零。等價於L1正則化。

Elastic Net

既然 L1和 L2正則各自都有自己的優勢,那我們能不能將他們 combine 起來?於是就有了混合先驗概率,公式比較復雜,參數約束如下:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM