機器學習(七)——邏輯迴歸(Logistic regression)

原文:http://cs229.stanford.edu/notes/cs229-notes1.pdf

我們可以忽略y是離散值的事實來處理分類問題,並利用我們的線性迴歸算法來嘗試根據給定的x來預測y。但是,在這種方法性能很差的情況下,構造示例是很容易的。直觀地說,當我們知道y{0,1}時,取大於1或小於0的值也是沒有意義的。

爲了解決這個問題,讓我們改變假設的形式。我們將選擇


其中,


稱爲邏輯函數或Sigmoid函數。這是一個顯示g(z)的圖:


注意,z→∞時g(Z)趨向於1,而z→−∞時g(Z)趨向於0。此外,g(Z)和h(X),總是在0到1之間有界。和以前一樣,我們保留讓的約定,這樣

從現在開始,我們把 gg 當作是給定的函數了。其它能夠從0到1之間光滑遞增的函數也可以被使用,但是這其中有一些原因我們以後會講到(當講到廣義線性模型GLMs和生成學習算法時),logistic 函數的選擇是十分合理自然的。在繼續我們的下一個話題前,這裏有一個關於 sigmoid 函數導數的重要推導,我們寫作 gg′ : 


那麼,在給定了 logistic 迴歸模型後,我們如何根據它來擬合 θθ 呢?我們之前已經講過了,在一系列假設的前提下,如何使用極大似然估計來推導出最小二乘迴歸。讓我們賦予我們的分類模型一系列的概率假設,接着通過極大似然來擬合參數:

讓我們假設:

P(y=1x;θ)=hθ(x)P(y=1∣x;θ)=hθ(x)

P(y=0x;θ)=1hθ(x)P(y=0∣x;θ)=1−hθ(x)

注意,上面的式子可以改寫成一個更加簡潔的形式:


假定給定的 mm 個樣本之間都是相互獨立的,我們可以這樣寫參數的似然函數:

與前面線性迴歸章節的做法一樣,採用最大化對數似然的形式會簡單一些:


我們要如何去最大化這個似然函數呢?和線性迴歸章節中的求導方法類似,我們可以使用梯度上升。用向量化的符號來寫,我們的更新步驟將會表示成:  . (注意,我們現在是在最大化而不是最小化這個函數,所以更新的公式中由負號變成了正號。)同樣地還是從只有一個訓練樣本 (x,y)(x,y) 的情況開始,求導推出梯度上升的規則:

gradient-ascent

在上面的推導過程中,我們使用到了 g(z)=g(z)(1g(z))g′(z)=g(z)(1−g(z)) ,最終的隨機梯度上升規則爲:


如果拿上面的公式與LMS更新規則進行比較,我們會發現看起來居然完全一樣;但是他們並不是一樣的算法,因爲 hθ(x(i))hθ(x(i)) 現在被定義爲關於 θTx(i)θTx(i) 的一個非線性函數。儘管如此,我們在面對不同的算法和學習問題的時候,最終卻得到了同樣的更新規則,這實在讓人有點驚訝。這是一種巧合,還是有着更深層次的原因呢?當我們學習到GLM章節的時候,我們將一起來回答這一問題。


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