1. 程式人生 > >吳恩達機器學習(五)正則化(解決過擬合問題)

吳恩達機器學習(五)正則化(解決過擬合問題)

目錄

0. 前言

學習完吳恩達老師機器學習課程的正則化,簡單的做個筆記。文中部分描述屬於個人消化後的理解,僅供參考。

0. 前言

在分類或者回歸時,通常存在兩個問題,“過擬合”(overfitting)和“欠擬合”(underfitting).

  • 過擬合:曲線為了減少代價函式,一味地擬合數據,使得樣本中幾乎每一個數據都能正確被分類(迴歸),導致過度擬合,不能泛化新的樣本,通常具有高方差(high variance)
  • 欠擬合:曲線的擬合度不夠,太多的資料並沒有被擬合到,通常具有高偏差(high bias)

通常,在過擬合的情況中,存在過量的特徵,有以下兩種解決辦法:

  • 減少特徵量
  • 採用正則化

1. 正則化(Regularization)

由於造成過擬合的原因可能是太多的特徵量,所以可採用減少特徵量的方法。但是不妨換種思路,減少特徵量的權值(這個特徵乘以的 \theta 很小),來達到目的。

例如,對於 h_{\theta}(x)=\theta_{0}+\theta_{1}x_{1}+\theta_{2}x_{2}+\theta_{3}x_{3}+\theta_{4}x_{4},已知 x_{3}\ x_{4} 的關聯度不大,我們需要減少它的權值(\theta_{3}\ \theta_{4}),可將代價函式修改為 J(\theta)=\frac{1}{2m}\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})^2+1000\theta_{3}^{2}+1000\theta_{4}^{2},這樣為了降低 J(\theta),就會使得 \theta_{3}\ \theta_{4} \rightarrow 0,達到了減小特徵的目的。

但是通常,我們不知道哪些特徵量是無關的,所以給出修改後的代價函式定義:

 \large J(\theta)=\frac{1}{2m}[\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})^2+\lambda\sum_{i=1}^{n}\theta_{j}^{2}]

其中,\lambda 稱為正則化引數,\lambda\sum_{i=1}^{n}\theta_{j}^{2} 稱為正則項,目的是使得 \theta_{j} 減小。正則化使得假設函式更加簡單,減小發生過擬合概率。

注:如果 \lambda 過大,會造成 \theta_{j}\rightarrow 0 \ (j=1,2,...,n),使得 h_{\theta}(x)=\theta_{0},造成欠擬合。

2. 線性迴歸中的正則化

線上性迴歸中運用正則化,我們已知代價函式和梯度下降法如下定義:

\large \begin{align*} J(\theta)&=\frac{1}{2m}[\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})^2+\lambda\sum_{i=1}^{n}\theta_{j}^{2}]\\ \theta_{j} & :=\theta_{j}-\alpha \frac{\partial }{\partial \theta_{j} }J(\theta) \end{align*}

代入可得:

\large \begin{align*} \theta_{0} & := \theta_{0}-\alpha \frac{1}{m}\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})x_{0}^{(i)}\\ \theta_{j} & := \theta_{j}-\alpha[ \frac{1}{m}\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})x_{j}^{(i)}+\frac{\lambda}{m}\theta_{j}]\ (j=1,2,...,n)\\ \Rightarrow \theta_{j}&:=\theta_{j}(1-\alpha\frac{\lambda}{m})-\alpha\frac{1}{m}\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})x_{j}^{(i)}\ (j=1,2,...,n) \end{align*}

其中,1-\alpha\frac{\lambda}{m}< 1,所以相當於 \theta_{j} 乘以一定的權值,然後再減去梯度下降的變化量。

同樣,在正規方程中,也可以使用正則化:

\large \theta=(X^{T}X+\begin{bmatrix} 0 & & & & \\ & 1 & &0 & \\ & & 1 & & \\ & 0 & &... & \\ & & & &1 \end{bmatrix})^{-1}X^{T}y

此時,可以保證,中間項一定不是奇異矩陣,一定存在逆矩陣。

3. 邏輯迴歸中的正則化

與上述類似,代價函式可表示為:

\large \begin{align*} J(\theta)&= -[\frac{1}{m}\sum_{i=1}^{m}y^{(i)}log(h_{\theta}(x^{(i)}))+(1-y^{(i)})log(1-h_{\theta}(x^{(i)}))\\ &+ \frac{\lambda}{2m}\sum_{j=1}^{n}\theta_{j}^{2}] \end{align*}

梯度下降法可表示為:

\large \begin{align*} \theta_{0} & := \theta_{0}-\alpha \frac{1}{m}\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})x_{0}^{(i)}\\ \theta_{j} & := \theta_{j}-\alpha[ \frac{1}{m}\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})x_{j}^{(i)}+\frac{\lambda}{m}\theta_{j}]\ (j=1,2,...,n)\end{align*}

邏輯迴歸中的 h_{\theta}(x) 是在 \theta^{T}x 外包裹了一層 sigmoid 函式的,與線性迴歸不同,所以梯度下降法看似相同卻不同。