分類問題和線性回歸問題問題很像,只是在分類問題中,我們預測的y值包含在一個小的離散數據集里。首先,認識一下二元分類(binary classification),在二元分類中,y的取值只能是0和1.例如,我們要做一個垃圾郵件分類器,則
為郵件的特征,而對於y,當它1則為垃圾郵件,取0表示郵件為正常郵件。所以0稱之為負類(negative class),1為正類(positive class)
邏輯回歸
首先看一個腫瘤是否為惡性腫瘤的分類問題,可能我們一開始想到的是用線性回歸的方法來求解,如下圖:
我們知道線性回歸問題只能預測連續的值,而分類問題,我們預測值只能夠是0或者1,所以我們可能會取一個臨界點,大於取1,反之取零。上面的hΘ(x)好像能夠很好的解決問題。所以如下圖
這樣還用線性回歸模型來求解就顯得不合適了,因為它預測的值可以超越[0,1]這個范圍。下面我們引入一種新的模型,邏輯回歸,它的輸出變量范圍始終都是在0和1之間。如下:
g(z)被稱作logistic function或者sigmoid function,它的圖像如下:
從圖像可以看出z → ∞時g(z) →1,z → −∞時g(z) →0。所以令x0 = 1, 則θT x = θ0 + ∑nj=1 θjxj.
在進入正題前,我們先來看logistic function的一個很有用的特征。如下
現在回到正題,對於給定的邏輯回歸問題,我們怎么去擬合出適合的Θ?
假設:
P (y = 1 | x; θ) = hθ(x) # hθ(x)的作用是,對於給定的輸入變量,根據選擇的參數計算輸出變量=1 的可能性( estimated probablity)
P (y = 0 | x; θ) = 1 − hθ(x)
把上面兩個式子整合一下得到:p(y | x; θ) = (hθ(x))y (1 − hθ(x))1−y
梯度上升方法
在線性回歸中,我們的思路是構建似然函數,然后求最大似然估計,最終我們得出了θ的迭代規則,那么在邏輯回歸中,我們方法也是一樣,因為最后我們是要求最大似然估計,所以用到的算法是梯度上升。
假設訓練樣本相互獨立,則似然函數表達為:
現在我們對似然函數取對數,如下
現在我們需要做的就是最大化似然估計了,這里我們就需要用梯度上升方法了。所以用向量來表示的話,更新規則如下
注意:因為我們是最大似然估計,所以這里是正好,而不是負號。
下面我們一一個訓練樣本為例,使用梯度上升規則:
在上面的運算中第二步運用到了我們前面推到的特性g′(z) = g(z)(1 − g(z)),所以我們得到更新規則:![]()
我們發現這個更新規則和LMS算法的更新規則一致,但是應注意這是兩個完全不同的算法。在這里
是關於
的非線性函數。
這不僅是巧合,更深層次的原因在廣義線性模型GLM中會提到。
在前面最大化ℓ(θ)時我們使用到的是梯度上升,在這里,再介紹一種最大化ℓ(θ)的方法---牛頓法(Newton’s method)
牛頓法(Newton’s method)
給出函數:
,我們要找到一個Θ使得f(θ) = 0成立,注意這里的Θ∈R,這時牛頓方法的更新規則如下:
牛頓法的執行過程如下:
通過求我們給出點的導數對應的切線與x軸的交點為迭代一次后的點,一直反復迭代,直到f(θ) = 0(無限逼近)
所以對於求f(θ) = 0,牛頓法是一種,那么,怎么去用牛頓法來解決最大化ℓ(θ)呢?
沿着思路,當ℓ(θ)最大的時候,ℓ′(θ)=0,所以這樣得到更新如下:
在邏輯回歸中,Θ是一個向量,所以此時的牛頓法可以表達為:
∇θℓ(θ) 表示ℓ(θ)的對θi’s的偏導數,H稱為黑塞矩陣(Hessian matrix),是一個n*n的矩陣,n是特征量的個數,
牛頓法的收斂速度比批處理梯度下降要快,它只用迭代很少次就能夠很接近最小值,但是n很大的時候,每次迭代求黑塞矩陣和黑塞矩陣的逆代價很大.
最后簡單的提一下感知機算法
感知機算法(The perceptron learning algorithm)
將邏輯回歸修改一下,現在強制它的輸出不是0就是1,則此時的 g就是一個臨界函數(threshold function)
hθ(x) = g(θT x)則我們得到更新規則如下:
這就是感知機算法。












