機器學習02-分類、邏輯迴歸

目錄

一、分類問題 Classification

二、分類問題的估值 Hypothesis Representation

三、分類問題的決策邊界 Decision Boundary

四、分類問題的代價函數 Cost Function

五、簡化的代價函數與梯度下降Simplified Cost Function & Gradient Descent

5.1 簡化代價函數

5.2 梯度下降推導及結論

5.3 梯度下降 Advanced Optimization

六、多類別分類

七、過擬合問題

7.1 What is overfitting

7.2 Addressing overfitting

7.3 正則化後的代價函數

7.4 正則化線性迴歸 Regularized Linear Regression

7.5 正則化邏輯迴歸 Regularized Logistc Regression


複習Andrew Ng的課程Machine Learning,總結分類、邏輯迴歸筆記一篇,涵蓋課程week3。

一、分類問題 Classification

線性迴歸可以對連續的模型進行估值(比如房價和房屋面積的關係),對於離散的模型估值(是爲1,否爲0)存在諸多問題。

  • 對於分類問題,線性迴歸容易被個別訓練樣本影響
  • 線性迴歸的估值h_{\theta}(x)>1h_{\theta}(x)<0沒有明確的意義

因此,分類問題引入邏輯迴歸Logistic Regression。於是,分類的最終輸出是y=0y=1。邏輯迴歸的估值必須是一個值域0\leqslant h_{\theta}(x)\leqslant 1的函數,用做分類問題的算法

二、分類問題的估值 Hypothesis Representation

我們希望邏輯歸回的估值滿足0\leqslant h_{\theta}(x)\leqslant 1,於是引入兩個函數

h_{\theta}(x)=x^{T}\theta

g(z)=\frac{1}{1+e^{-z}}

z=h_{\theta}(x)

從而得到分類問題的估值

h_{\theta}(x)=\frac{1}{1+e^{-x^{T}\theta}}

對於這個估值的解釋是這樣的。在給定x的情況下,對y=1的概率的估計值。

h_{\theta}(x)=P(y=1|x;\theta),probability that y=1,given x,parameterized \theta

那麼,當h_{\theta}(x)\geqslant 0.5時,y=1;當h_{\theta}(x)< 0.5時,y=0

舉個栗子,x是腫瘤大小的訓練集。h_{\theta}(x)=0.7表示有70%的概率,該腫瘤是惡性的。

x=\begin{bmatrix} x_{0}\\ x_{1} \end{bmatrix}=\begin{bmatrix} 1\\ tumersize \end{bmatrix}

三、分類問題的決策邊界 Decision Boundary

根據前面討論的結果。

估值h_{\theta}(x)=\frac{1}{1+e^{-x^{T}\theta}}

如果分類邊界本身就是線性(Logistic Boundary Linear)的,即h_{\theta}(x)=\frac{1}{1+e^{-(\theta _{0}+\theta _{1}x_{1}+\theta _{2}x_{2})}},取\theta ^{T}=\begin{bmatrix} -3 &1 &1 \end{bmatrix},boundary是\theta ^{T}x=0,那麼得到決策邊界是x_{1}+x_{2}=3,是個直線方程。

如果分類邊界本身是非線性(Logistic Boundary Non-Linear)的,即h_{\theta}(x)=\frac{1}{1+e^{-(\theta _{0}+\theta _{1}x_{1}+\theta _{2}x_{2}+\theta _{3}x_{1}^{2}+\theta _{4}x_{2}^{2})}},取\theta ^{T}=\begin{bmatrix} -1&0&0&1 &1 \end{bmatrix},boundary是\theta ^{T}x=0,那麼得到決策邊界是x_{1}^{2}+x_{2}^{2}=1

四、分類問題的代價函數 Cost Function

這裏面涉及到一些數學知識。知道寫下這篇博客,我還沒有從數學層面上理解Andrew Ng說的Convex Convergence的意義。當然了,Andrew Ng也說了數學層面上該如何解決。我們先關注一下直覺上的Cost Function。

爲邏輯迴歸選擇一個Convex Convergence的代價函數,形式如下。

Cost(h_{\theta}(x),y)=\left\{\begin{matrix} -\log (h_{\theta}(x))\quad\quad\ if\ y=1\\ -\log (1-h_{\theta}(x))\quad if\ y=0 \end{matrix}\right.

爲什麼是這種形式呢?我們直覺感受一下。也就是Andrew Ng所說的Cost Function Intuition。

y=1時,h_{\theta}(x)越接近1,Cost(h_{\theta}(x),y)越接近於0。

y=0時,h_{\theta}(x)越接近0,Cost(h_{\theta}(x),y)越接近於0。

這就達到了估值越接近真值,代價函數越接近0。這張示意圖的代碼可以到這裏下載//download.csdn.net/download/qpeity/12113456

五、簡化的代價函數與梯度下降Simplified Cost Function & Gradient Descent

5.1 簡化代價函數

第四節裏面描述的內容是針對一個訓練樣本而言的。

Cost(h_{\theta}(x),y)=\left\{\begin{matrix} -\log (h_{\theta}(x))\quad\quad\ if\ y=1\\ -\log (1-h_{\theta}(x))\quad if\ y=0 \end{matrix}\right.

注意:y=0y=1對每個訓練樣本只有一個成立。上面的公式簡化爲

Cost(h_{\theta}(x),y)= -y\log (h_{\theta}(x))-(1-y)\log (1-h_{\theta}(x))

對於有m個樣本的訓練集,給出代價函數J(\theta)

J(\theta)=\frac{1}{m}\sum_{i=1}^{m}Cost(h_{\theta}(x^{(i)}),y^{(i)})

也就是

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)})))

5.2 梯度下降推導及結論

與線性迴歸問題一樣,我們求得代價函數關於參數各個維度的導數,推導過程如下:

  1. 已知式\textcircled{1}\textcircled{2}
  2. \textcircled{1}求偏導數得到\textcircled{3}
  3. 結合\textcircled{2}\textcircled{3}中求內倒數部分進一步推導得到\textcircled{4}
  4. \textcircled{4}代入\textcircled{3}得到\textcircled{5}

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)})))\cdots\cdots \textcircled{1}

h_{\theta}(x)=\frac{1}{1+e^{-x^{T}\theta}}\cdots \cdots \textcircled{2}

\frac{\partial }{\partial \theta_{j}}J(\theta)=-\frac{1}{m} \sum_{i=1}^{m}(y^{(i)}\frac{1}{h_{\theta}(x^{(i)})}\frac{\partial }{\partial \theta_{j}}h_{\theta}(x^{(i)})-(1-y^{(i)})\frac{1}{1-h_{\theta}(x^{(i)})} \frac{\partial }{\partial \theta_{j}}h_{\theta}(x^{(i)}))\cdots \cdots \textcircled{3}

\begin{aligned} \frac{\partial }{\partial \theta_{j}}h_{\theta}(x^{(i)})&=\frac{\partial }{\partial \theta_{j}}\frac{1}{1+e^{-x^{(i)T}\theta}}\\ &=\frac{e^{-x^{(i)T}\theta}}{(1+e^{-x^{(i)T}\theta})^{2}}x_{j}^{(i)}\\ &=\frac{1}{1+e^{-x^{(i)T}\theta}}(1-\frac{1}{1+e^{-x^{(i)T}\theta}})x_{j}^{(i)}\\ &=h_{\theta}(x^{(i)})(1-h_{\theta}(x^{(i)}))x_{j}^{(i)}\cdots \cdots \textcircled{4} \end{aligned}

\begin{aligned} \frac{\partial }{\partial \theta_{j}}J(\theta) &=-\frac{1}{m} \sum_{i=1}^{m}(y^{(i)}(1-h_{\theta}(x^{(i)}))x_{j}^{(i)}-(1-y^{(i)})h_{\theta}(x^{(i)})x_{j}^{(i)})\\ &=-\frac{1}{m} \sum_{i=1}^{m}(y^{(i)}(1-h_{\theta}(x^{(i)}))-(1-y^{(i)})h_{\theta}(x^{(i)}))x_{j}^{(i)}\\ &=-\frac{1}{m} \sum_{i=1}^{m}(y^{(i)}-h_{\theta}(x^{(i)}))x_{j}^{(i)}\\ &=\frac{1}{m} \sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})x_{j}^{(i)}\cdots \cdots \textcircled{5} \end{aligned}

\textcircled{5}就是步長。爲了使代價函數最小,我們要同步更新\theta,不斷迭代直到找到局部最優解,這就是最終的結論\textcircled{6}。公式\textcircled{6}和線性迴歸中同步更新\theta的公式形式上完全一樣,只是h_{\theta}(x)改變了。

\theta _{j}$:=$\theta _{j}-\alpha \frac{\partial J(\theta)}{\partial \theta _{j}}=\theta _{j}-\frac{\alpha }{m} \sum_{i=1}^{m}(h_{\theta }(x^{(i)})-y^{(i)})x_{j}^{(i)}\cdots \cdots \textcircled{6}

5.3 梯度下降 Advanced Optimization

對於求解梯度下降,可以使用Naive的Gradient Descent。但是,這樣Naive的實現方法效率並不高,計算也不夠簡單。

Andrew Ng給出了三種Advanced Optimization的方法,這些已經超出了機器學習課程的範圍,具體怎麼實現這些算法,他本人也是剛剛搞得明白(給大神跪了Orz)。這三種Advanced Optimization就是:

  1. Conjugate Gradient(共軛梯度?)
  2. BFGS
  3. L-BFGS

使用這些Advanced Optimization的優點是:

  • 不需要人工選擇學習率\alpha
  • 比Naive的Gradient Descent更快

使用這些Advanced Optimization的缺點是:

  • 算法更復雜

課程中,Andrew Ng建議,不要自己設計邏輯迴歸代價函數梯度下降的算法。這些算法異常複雜。除非你在數值計算領域特別的牛逼!!最好使用octave內置的函數庫來做這些!!怎麼來利用octave內置函數呢?我們舉個例子。

邏輯迴歸的參數\theta ^{T}=\begin{bmatrix} \theta _{1} & \theta _{2} \end{bmatrix},假設邏輯迴歸的代價函數是J(\theta )=(\theta _{1}-5)^{2}+(\theta _{2}-5)^{2},分別求偏導數

\frac{\partial J(\theta )}{\partial \theta _{1}}=2(\theta _{1}-5)

\frac{\partial J(\theta )}{\partial \theta _{2}}=2(\theta _{2}-5)

然後用octave內置函數fminunc來求解。

六、多類別分類

將多類別分類變成二分類(One-vs-Rest):

  1. n分類變成n個二分類問題
  2. 每次分兩類:i類、其餘n-1類的合併
  3. 每次都形成新的僞訓練集,求出h_{\theta}^{(i)}(x)

One-vs-Rest示意圖。

此時,估值函數的形式和意義發生了一些變化。對每個分類i我們訓練一個估值h_{\theta}^{(i)}(x),用來預測y=i的概率。當有一個新的特徵x輸入時,我們用所有的h_{\theta}^{(i)}(x)做估值,取概率最大的那個作爲分類的估值。原文描如下:

  • h_{\theta}^{(i)}(x)=P\{y=i|x;\theta \}\ (i=1,2,3,\cdots,n)
  • Train a logistic regression classifier h_{\theta}^{(i)}(x) for each class i to predict the probability that y=i.
  • On a new input x, to make a prediction, pick the class i that maximized \max_{i}h_{\theta}^{(i)}(x).

七、過擬合問題

7.1 What is overfitting

Overfitting: If we have too many features, the learned hypothesis may fit the training set very well(J(\theta)\approx 0), but fail to generalize to new example(predict on new examples).

當特徵過多時就會出現過擬合問題,這裏的特徵過多指的是:

  • 特徵的多項式維數過高\theta _{0}+\theta _{1}x+\theta _{1}x^{2}+\theta _{1}x^{3}+\cdots+\theta _{1}x^{w}

或者

  • 特徵太多,\theta _{0}+\theta _{1}x_{1}+\theta _{2}x_{2}+\cdots +\theta _{100}x_{100}

7.2 Addressing overfitting

Options:

1.Reduce number of feature:

  • Manually select which features to keep
  • Model selection algorithm(Later in course)

2.Regularization:

  • Keep all the features, but reduce magnitude / values of parameters \theta_{j}
  • Works well when we have a lot of features, each of which contributes a bit to predicting y.

翻譯一下,解決過擬合問題有兩種可選的辦法:

1.減少特徵數量:

  • 人工選擇要保留的特徵(減少特徵)
  • 模型選擇算法(後面會講到,這裏暫不討論)

2.正則化:

  • 保留所有特徵,但減小參數\theta_{j}的量級
  • 當有很多特徵時正則化性能更好,每個特徵都會在預測時體現價值

7.3 正則化後的代價函數

正則化就是想辦法讓\theta_{j}變小,當\theta_{j}\approx 0時,\theta_{j}就幾乎不起作用了。線性迴歸代價函數變爲如下形式。

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

經過正則化後的代價函數,多了一個\lambda,我們稱\lambda爲Regularization Parameter正則化參數。代價函數由兩部分組成:

  • 前一部分\frac{1}{2m}\sum_{i=1}^{m}(h_{\theta }(x^{(i)})-y^{(i)})^{2}用來適應訓練集;從1到m共m個訓練集
  • 後一部分\frac{\lambda}{2m} \sum_{j=1}^{n}\theta _{j}^{2}用來減小參數\theta_{j}的量級,防止過擬合;從1到n共n個特徵。

爲什麼不限制\theta_{0}呢?觀察\theta ^{T}x=\theta _{0}+\theta _{1}x_{1}+\theta _{2}x_{2}+\cdots +\theta _{n}x_{n},其中\theta_{0}不隨特徵x的變化而改變\theta ^{T}x的值,因此不限制\theta_{0}

同理,邏輯迴歸的代價函數變爲如下形式。

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}

7.4 正則化線性迴歸 Regularized Linear Regression

由於代價函數中加入了\lambda \sum_{j=1}^{n}\theta _{j}^{2},所代價函數的導數以及梯度下降都發生了變化。由於\theta_{0}項不會因x變化對\theta ^{T}x造成影響,導數和梯度下降公式分爲兩類。

導數:

\frac{\partial }{\partial \theta_{0}}J(\theta) =\frac{1}{m} \sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})x_{0}^{(i)}\quad if\ j = 0

\frac{\partial }{\partial \theta_{j}}J(\theta) =\frac{1}{m} \sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})x_{j}^{(i)}+\frac{\lambda }{m}\theta _{j}\quad if\ j > 0

梯度下降:

\theta _{0}$:=$\theta _{0}-\frac{\alpha }{m} \sum_{i=1}^{m}(h_{\theta }(x^{(i)})-y^{(i)})x_{0}^{(i)}\quad\quad if\ j=0

\theta _{j}$:=$\theta _{j}-\frac{\alpha }{m} (\sum_{i=1}^{m}(h_{\theta }(x^{(i)})-y^{(i)})x_{j}^{(i)}+\lambda \theta _{j})\quad if\ j>0

或者寫作

\theta _{0}$:=$\theta _{0}-\frac{\alpha }{m} \sum_{i=1}^{m}(h_{\theta }(x^{(i)})-y^{(i)})x_{0}^{(i)}\quad \quad if\ j=0

\theta _{j}$:=$(1-\frac{\alpha \lambda }{m})\theta _{j}-\frac{\alpha }{m} \sum_{i=1}^{m}(h_{\theta }(x^{(i)})-y^{(i)})x_{j}^{(i)}\quad if\ j>0

基於Normal Equation的矩陣式經過正則化以後變爲

\theta=(X^{T}X+\lambda P)^{-1}X^{T}y

其中,\lambda後面的那個矩陣P,跡1,1位置爲0,跡其他位置全部是1,除了跡以外其餘元素爲0的矩陣。

P= \begin{bmatrix} 0 &0 &0 & \cdots &0 \\ 0 &1 &0 & \cdots &0 \\ 0 &0 &1 & \cdots &0 \\ \vdots &\vdots &\vdots &\ddots &\vdots \\ 0 &0 &0 & \cdots & 1 \end{bmatrix} \in \mathbb{R}^{(n+1)\times (n+1)}       x^{(i)}=\begin{bmatrix} x_{0}^{(i)} \\ x_{1}^{(i)} \\ x_{2}^{(i)} \\ \vdots \\ x_{n} ^{(i)}\end{bmatrix}\in \mathbb{R}^{n+1}     \theta =\begin{bmatrix} \theta_{0} \\ \theta_{1} \\ \theta_{2} \\ \vdots \\ \theta_{n} \end{bmatrix}\in \mathbb{R}^{n+1}

X=\begin{bmatrix} x_{0}^{(1)} &x_{1}^{(1)} &x_{2}^{(1)} &\cdots &x_{n}^{(1)} \\ x_{0}^{(2)} &x_{1}^{(2)} &x_{2}^{(2)} &\cdots &x_{n}^{(2)} \\ x_{0}^{(3)} &x_{1}^{(3)} &x_{2}^{(3)} &\cdots &x_{n}^{(3)} \\ \vdots &\vdots &\vdots &\ddots &\vdots \\ x_{0}^{(m)}&x_{1}^{(m)} &x_{2}^{(m)} & \cdots & x_{n}^{(m)} \end{bmatrix}= \begin{bmatrix} -x^{(1)T}-\\ -x^{(2)T}-\\ -x^{(3)T}-\\ \vdots\\ -x^{(m)T}- \end{bmatrix} \in \mathbb{R}^{m\times (n+1)}               y= \begin{bmatrix} y^{(1)}\\ y^{(2)}\\ y^{(3)}\\ \vdots \\ y^{(m)} \end{bmatrix} \in \mathbb{R}^{m}

7.5 正則化邏輯迴歸 Regularized Logistc Regression

邏輯迴歸的梯度下降和現行迴歸的形式一樣,這個5.2節中已經推導。增加了正則化項以後,邏輯迴歸梯度下降公式在形式上和線性迴歸梯度下降也是一致的,只是h_{\theta}(x)的含義不同了。

導數:

\frac{\partial }{\partial \theta_{0}}J(\theta) =\frac{1}{m} \sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})x_{0}^{(i)}\quad if\ j = 0

\frac{\partial }{\partial \theta_{j}}J(\theta) =\frac{1}{m} \sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})x_{j}^{(i)}+\frac{\lambda }{m}\theta _{j}\quad if\ j > 0

梯度下降:

\theta _{0}$:=$\theta _{0}-\frac{\alpha }{m} \sum_{i=1}^{m}(h_{\theta }(x^{(i)})-y^{(i)})x_{0}^{(i)}\quad \quad if\ j=0

\theta _{j}$:=$(1-\frac{\alpha \lambda }{m})\theta _{j}-\frac{\alpha }{m} \sum_{i=1}^{m}(h_{\theta }(x^{(i)})-y^{(i)})x_{j}^{(i)}\quad if\ j>0

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章