天天看點

Laplace(拉普拉斯)先驗與L1正則化

在之前的一篇部落格中[L1正則化及其推導](http://www.cnblogs.com/heguanyou/p/7582578.html)推導證明了L1正則化是如何使參數稀疏化人,并且提到過L1正則化如果從貝葉斯的觀點看來是Laplace先驗,事實上如果從貝葉斯的觀點,所有的正則化都是來自于對參數分布的先驗。現在來看一下為什麼Laplace先驗會導出L1正則化,也順便證明Gauss(高斯)先驗會導出L2正則化。

Laplace(拉普拉斯)先驗與L1正則化

在之前的一篇部落格中L1正則化及其推導推導證明了L1正則化是如何使參數稀疏化人,并且提到過L1正則化如果從貝葉斯的觀點看來是Laplace先驗,事實上如果從貝葉斯的觀點,所有的正則化都是來自于對參數分布的先驗。現在來看一下為什麼Laplace先驗會導出L1正則化,也順便證明Gauss(高斯)先驗會導出L2正則化。

最大似然估計

很多人對最大似然估計不明白,用最簡單的線性回歸的例子來說:如果有資料集\((X, Y)\),并且\(Y\)是有白噪聲(就是與測量得到的\(Y\)與真實的\(Y_{real}\)有均值為零的高斯分布誤差),目的是用新産生的\(X\)來得到\(Y\)。如果用線性模型來測量,那麼有:

\[f(X) = \sum_i(x_i\theta_i) + \epsilon = X\theta^T + \epsilon \tag{1.1}

\]

其中\(X=(x_1, x_2...x_n)\),\(\epsilon\)是白噪聲,即\(\epsilon \sim N(0, \delta^2)\)。那麼于一對資料集\((X_i, Y_i)\)來用,在這個模型中用\(X_i\)得到\(Y_i\)的機率是\(Y_i \sim N(f(X_i), \delta^2)\):

\[P(Y_i|X_i, \theta) = \frac{1}{\delta\sqrt{2\pi}} \exp(-\frac{\|f(X_i) - Y_i\|^2}{2\delta^2}) \tag{1.2}

假設資料集中每一對資料都是獨立的,那麼對于資料集來說由\(X\)得到\(Y\)的機率是:

\[P(Y|X,\theta)= \prod_i\frac{1}{\delta\sqrt{2\pi}} \exp(-\frac{\|f(X_i) - Y_i\|^2}{2\delta^2}) \tag{1.3}

根據決策論,就可以知道可以使機率\(P(Y|X,\theta)\)最大的參數\(\theta^*\)就是最好的參數。那麼我們可以直接得到最大似然估計的最直覺了解:對于一個模型,調整參數\(\theta\),使得用X得到Y的機率最大。那麼參數\(\theta\)就可以由下式得到:

\[\begin {split}

\theta^* &= argmax_{\theta} \left(\prod_i\frac{1}{\epsilon\sqrt{2\pi}} \exp(-\frac{\|f(X_i) - Y_i\|^2}{2\delta^2})\right) \cr

&=argmax_{\theta} \left( -\frac{1}{2\delta^2} \sum_i \|f(X_i) - Y_i\|^2 + \sum_i ln(\delta\sqrt{2\pi}) \right) \cr

&=argmin_{\theta} \left(\sum_i \|f(X_i) - Y_i\|^2 \right)

\end {split} \tag{1.4}

這個就是最小二乘計算公式。

Laplace分布

Laplace機率密度函數分布為:

\[f(x|\mu, b) = \frac{1}{2b} \exp(-\frac{|x-\mu|}{b}) \tag{2.1}

分布的圖像如下所示:

Laplace(拉普拉斯)先驗與L1正則化

圖1 Laplace分布

可以看到Laplace分布集中在\(\mu\)附近,而且\(b\)越小,資料的分布就越集中。

Laplace先驗導出L1正則化

先驗的意思是對一種未知的東西的假設,比如說我們看到一個正方體的骰子,那麼我們會假設他的各個面朝上的機率都是\(1/6\),這個就是先驗。但事實上骰子的材質可能是密度不均的,是以還要從資料集中學習到更接近現實情況的機率。同樣,在機器學習中,我們會根據一些已知的知識對參數的分布進行一定的假設,這個就是先驗。有先驗的好處就是可以在較小的資料集中有良好的泛化性能,當然這是在先驗分布是接近真實分布的情況下得到的了,從資訊論的角度看,向系統加入了正确先驗這個資訊,肯定會提高系統的性能。我們假設參數\(\theta\)是如下的Laplace分布的,這就是Laplace先驗:

\[P(\theta_i) = \frac{\lambda}{2} \exp(-\lambda|\theta_i|) \tag{3.1}

其中\(\lambda\)是控制參數\(\theta\)集中情況的超參數,\(\lambda\)越大那麼參數的分布就越集中在0附近。

在前面所說的最大似然估計事實上是假設了\(\theta\)是均勻分布的,也就是\(P(\theta)=Constant\),我們最大化的要後驗估計,即是:

\theta^* &= argmax_{\theta} \left(\prod_i P(Y_i|X_i, \theta) \prod_i P(\theta_i)\right) \cr

&=argmin_{\theta} \left(\sum_i \|f(X_i) - Y_i\|^2 + \sum_i \ln(P(\theta_i))\right)

\end {split} \tag{3.2}

如果是Laplace先驗,将式\((3.1)\)代入到式\((3.2)\)中可得:

\[\theta^* =argmin_{\theta} \left(\sum_i \|f(X_i) - Y_i\|^2 + \lambda \sum_i |\theta_i|)\right) \tag{3.3}

這就是由Laplace導出L1正則化,我在之前的一篇部落格中L1正則化及其推導分析過\(\lambda\)越大,那麼參數的分布就越集中在0附近,這個與Laplace先驗的分析是一緻的。

Gauss先驗導出L2正則化

到這裡,我們可以很輕易地導出L2正則化,假設參數\(\theta\)的分布是符合以下的高斯分布:

\[P(\theta_i) = \frac{\lambda}{\sqrt{\pi}} \exp(-\lambda\|\theta_i\|^2) \tag{3.4}

代入式\((3.2)\)可以直接得到L2正則化:

\[\theta^* =argmin_{\theta} \left(\sum_i \|f(X_i) - Y_i\|^2 + \lambda \sum_i \|\theta_i\|^2)\right) \tag{3.5}

【防止爬蟲轉載而導緻的格式問題——連結】:

http://www.cnblogs.com/heguanyou/p/7688344.html

繼續閱讀