1. 程式人生 > >正則化與資料先驗分佈的關係

正則化與資料先驗分佈的關係

一. Linear Regression

我們先看下最原始的Linear Regression:

<img src="https://pic2.zhimg.com/c24e0befa5ee8a84de2afccef6056a29_b.png" data-rawwidth="952" data-rawheight="612" class="origin_image zh-lightbox-thumb" width="952" data-original="https://pic2.zhimg.com/c24e0befa5ee8a84de2afccef6056a29_r.png">
\begin{align*} & p(\epsilon^{(i)})  = \frac{1}{\sqrt{2\pi}\delta}exp\left(  -\frac{(\epsilon^{(i)})^2}{2\delta^2} \right)\\ \Rightarrow & p(y^{(i)}|x^{(i)};\theta) = \frac{1}{\sqrt{2\pi}\delta}exp\left( -\frac{(y^{(i)} - w^Tx^{(i)})^2}{2\delta^2}  \right)\end{align*}

由最大似然估計(MLE):


\begin{align*}L(w) & = p(\vec{y}|X;w)\\& = \prod_{i=1}^{m} p(y^{(i)}|x^{(i)};\theta)\\& = \prod_{i=1}^{m} \frac{1}{\sqrt{2\pi}\delta}exp\left( -\frac{(y^{(i)} - w^Tx^{(i)})^2}{2\delta^2}  \right)\end{align*}

取對數:


\begin{align*}l(w) & = \log L(w)\\& =\log \prod_{i=1}^{m} \frac{1}{\sqrt{2\pi}\delta}exp\left( -\frac{(y^{(i)} - w^Tx^{(i)})}{2\delta^2}  \right)\\& = \sum_{i=1}^{m} \log \frac{1}{\sqrt{2\pi}\delta}exp\left( -\frac{(y^{(i)} - w^Tx^{(i)})^2}{2\delta^2}  \right)\\& = m \log \frac{1}{\sqrt{2\pi}\delta} - \frac{1}{\delta^2}\cdot \frac{1}{2} \sum_{i=1}^{m} (y^{(i)} - w^Tx^{(i)})^2\end{align*}

即:

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

這就匯出了我們原始的 least-squares 損失函式,但這是在我們對引數 w 沒有加入任何先驗分佈的情況下。在資料維度很高的情況下,我們的模型引數很多,模型複雜度高,容易發生過擬合。

比如我們常說的 “small n, large p problem”。(我們一般用 n 表示資料點的個數,用 p 表示變數的個數 ,即資料維度。當 p\gg n 的時候,不做任何其他假設或者限制的話,學習問題基本上是沒法進行的。因為如果用上所有變數的話, p 越大,通常會導致模型越複雜,但是反過來 n 又很小,於是就會出現很嚴重的 overfitting 問題。
<img src="https://pic4.zhimg.com/52de406727100593dafe9d3f696a71e7_b.png" data-rawwidth="1019" data-rawheight="240" class="origin_image zh-lightbox-thumb" width="1019" data-original="https://pic4.zhimg.com/52de406727100593dafe9d3f696a71e7_r.png">這個時候,我們可以對引數 w 引入
這個時候,我們可以對引數 w 引入先驗分佈,降低模型複雜度。

二. Ridge Regression
我們對引數 w 引入協方差為 \alpha 的零均值高斯先驗。
\begin{align*}L(w) & = p(\vec{y}|X;w)p(w)\\& = \prod_{i=1}^{m} p(y^{(i)}|x^{(i)};\theta)p(w)\\& = \prod_{i=1}^{m} \frac{1}{\sqrt{2\pi}\delta}exp\left( -\frac{(y^{(i)} - w^Tx^{(i)})^2}{2\delta^2}  \right)\prod_{j=1}^{n}\frac{1}{\sqrt{2\pi\alpha}}exp\left( -\frac{(w^{(j)})^2}{2\alpha}  \right)\\& = \prod_{i=1}^{m} \frac{1}{\sqrt{2\pi}\delta}exp\left( -\frac{(y^{(i)} - w^Tx^{(i)})^2}{2\delta^2}  \right)\frac{1}{\sqrt{2\pi\alpha}}exp\left( -\frac{w^Tw}{2\alpha}  \right)\end{align*}

取對數:

\begin{align*}l(w) & = \log L(w)\\& = m \log \frac{1}{\sqrt{2\pi}\delta}+ n \log \frac{1}{\sqrt{2\pi\alpha}} - \frac{1}{\delta^2}\cdot \frac{1}{2} \sum_{i=1}^{m} (y^{(i)} - w^Tx^{(i)})^2 - \frac{1}{\alpha}\cdot \frac{1}{2} w^Tw\\ \Rightarrow & w_{MAP_{Guassian}} = \arg \underset{w}{\min} \left( \frac{1}{\delta^2}\cdot \frac{1}{2} \sum_{i=1}^{m} (y^{(i)} - w^Tx^{(i)})^2 + \frac{1}{\alpha}\cdot \frac{1}{2} w^Tw \right) \end{align*}

等價於:

J_R(w) = \frac{1}{n}\lVert y- w^TX \rVert_2 + \lambda \lVert w \rVert_2

這不就是 Ridge Regression 嗎?
<img src="https://pic2.zhimg.com/c2ca1a4ca98ec92ef60d4f9234d9d6fd_b.png" data-rawwidth="300" data-rawheight="282" class="content_image" width="300">

看我們得到的引數,在零附近是不是很密集,老實說 ridge regression 並不具有產生稀疏解的能力,也就是說引數並不會真出現很多零。假設我們的預測結果與兩個特徵相關,L2正則傾向於綜合兩者的影響,給影響大的特徵賦予高的權重;而L1正則傾向於選擇影響較大的引數,而捨棄掉影響較小的那個。實際應用中 L2正則表現往往會優於 L1正則,但 L1正則會大大降低我們的計算量

Typically ridge or ℓ2 penalties are **much better** for minimizing prediction error rather than ℓ1 penalties. The reason for this is that when two predictors are highly correlated, ℓ1 regularizer will simply pick one of the two predictors. In contrast, the ℓ2 regularizer will keep both of them and jointly shrink the corresponding coefficients a little bit. Thus, while the ℓ1 penalty can certainly reduce overfitting, you may also experience a loss in predictive power.
那現在我們知道了,對引數引入 高斯先驗 等價於L2正則化。

三. LASSO
上面我們對 w 引入了高斯分佈,那麼拉普拉斯分佈(Laplace distribution)呢?

注:LASSO - least absolute shrinkage and selection operator.
<img src="https://pic4.zhimg.com/adc33c20d5770517e2a7fd4f2af74f73_b.png" data-rawwidth="1150" data-rawheight="198" class="origin_image zh-lightbox-thumb" width="1150" data-original="https://pic4.zhimg.com/adc33c20d5770517e2a7fd4f2af74f73_r.png">
我們看下拉普拉斯分佈長啥樣:

f(x\mid\mu,b) = \frac{1}{2b} \exp \left( -\frac{|x-\mu|}{b} \right)

<img src="https://pic3.zhimg.com/01ba9d9e6a605b4c4ea1f0cebe629dae_b.png" data-rawwidth="350" data-rawheight="263" class="content_image" width="350">關於拉普拉斯和正態分佈的淵源,大家可以參見 正態分佈的前世今生。關於拉普拉斯和正態分佈的淵源,大家可以參見 正態分佈的前世今生。
重複之前的推導過程我們很容易得到:

w_{MAP_{Laplace}} = \arg \underset{w}{\min} \left( \frac{1}{\delta^2}\cdot \frac{1}{2} \sum_{i=1}^{m} (y^{(i)} - w^Tx^{(i)})^2 + \frac{1}{b^2}\cdot \frac{1}{2} \lVert w \rVert_1 \right)

該問題通常被稱為 LASSO (least absolute shrinkage and selection operator) 。LASSO 仍然是一個 convex optimization 問題,不具有解析解。它的優良性質是能產生稀疏性,導致 w 中許多項變成零。
再次總結下,對引數引入 拉普拉斯先驗 等價於 L1正則化。

四. Elastic Net
可能有同學會想,既然 L1和 L2正則各自都有自己的優勢,那我們能不能將他們 combine 起來?

可以,事實上,大牛早就這麼玩過了。
<img src="https://pic4.zhimg.com/06eb8dbcb11029c1c0fa662c8b8dd8cf_b.png" data-rawwidth="1143" data-rawheight="240" class="origin_image zh-lightbox-thumb" width="1143" data-original="https://pic4.zhimg.com/06eb8dbcb11029c1c0fa662c8b8dd8cf_r.png">
因為lasso在解決之前提到的“small n, large p problem”存在一定缺陷。
<img src="https://pic1.zhimg.com/27d9e05cc744ee775a4f308d793edc28_b.png" data-rawwidth="1239" data-rawheight="432" class="origin_image zh-lightbox-thumb" width="1239" data-original="https://pic1.zhimg.com/27d9e05cc744ee775a4f308d793edc28_r.png">
這個我們就直接給結果了,不推導了哈。(好麻煩的樣子。。。逃)

\hat{\beta} = \arg \underset{\beta}{\min} \lVert y - X\beta \rVert_2 + \lambda_2 \lVert \beta \rVert_2 + \lambda_1 \lVert \beta \rVert_1
<img src="https://pic4.zhimg.com/9cec1b91eac7877800e854bd9adfe6eb_b.png" data-rawwidth="1071" data-rawheight="318" class="origin_image zh-lightbox-thumb" width="1071" data-original="https://pic4.zhimg.com/9cec1b91eac7877800e854bd9adfe6eb_r.png">
<img src="https://pic3.zhimg.com/bc6674ab71a7dfe5a403d5c58071d856_b.png" data-rawwidth="350" data-rawheight="314" class="content_image" width="350">
五. 總結
正則化引數等價於對引數引入 先驗分佈,使得 模型複雜度 變小(縮小解空間),對於噪聲以及 outliers 的魯棒性增強(泛化能力)。整個最優化問題從貝葉斯觀點來看是一種貝葉斯最大後驗估計,其中 正則化項 對應後驗估計中的 先驗資訊,損失函式對應後驗估計中的似然函式,兩者的乘積即對應貝葉斯最大後驗估計的形式。
歡迎訪問我部落格:Regularized Regression: A Bayesian point of view

吐槽:(部落格太冷清)知乎不支援Markdown,把博文弄過來真費勁。。。。

ps: 本文寫作過程中參考了知乎和網上的很多文章,同時也加入了自己的一些理解,熱烈歡迎廣大機器學習愛好者一起討論問題,互通有無!

[1]: Bias 和 Variance
[2]: 《A Few useful things to Know About machine Learning》讀後感
[3]: What is the difference between L1 and L2 regularization?
[4]: Bayesian Linear Regression
[5]: Bayesian statistics and regularization
[6]: 最大似然估計和最小二乘法怎麼理解? - 計算機
[7]: Sparsity and Some Basics of L1 Regularization