1. Classification
這篇文章我們來討論分類問題(classification problems),也就是說你想預測的變量 y 是一個離散的值。我們會使用邏輯回歸算法來解決分類問題。
之前的文章中,我們討論的垃圾郵件分類實際上就是一個分類問題。類似的例子還有很多,例如一個在線交易網站判斷一次交易是否帶有欺詐性(有些人可以使用偷來的信用卡,你懂的)。再如,之前判斷一個腫瘤是良性的還是惡性的,也是一個分類問題。
在以上的這些例子中,我們想預測的是一個二值的變量,或者為0,或者為1;或者是一封垃圾郵件,或者不是;或者是帶有欺詐性的交易,或者不是;或者是一個惡性腫瘤,或者不是。
我們可以將因變量(dependant variable)可能屬於的兩個類分別稱為負向類(negative class)和正向類(positive class)。可以使用0來代表負向類,1來代表正向類。
現在,我們的分類問題僅僅局限在兩類上:0或者1。之后我們會討論多分類問題,也就是說,變量 y 可以取多個值,例如0,1,2,3。
那么,我們如何來解決一個分類問題呢?來看以下例子:
現在有這樣一個分類任務,需要根據腫瘤大小來判斷腫瘤的良性與否。訓練集如上圖所示,橫軸代表腫瘤大小,縱軸表示腫瘤的良性與否,注意,縱軸只有兩個取值,1(代表惡性腫瘤)和0(代表良性腫瘤)。
通過之前的博文,我們已經知道對於以上數據集使用線性回歸來處理,實際上就是用一條直線去擬合這些數據。因此,你得到的 Hypothesis 可能如下:
那么,如果你想做出預測,一種可行的方式是如下:
從以上這個例子來看,似乎線性回歸也能很好的解決分類問題。現在,我們對以上問題稍作一些改動。
將橫軸向右擴展,並且增加一個訓練樣本,如下:
此時,我們使用線性回歸,會得到一條新的直線:
此時,我們再用0.5作為閾值來預測腫瘤的良性與否,就不合適了。
2. Hypothesis Representation
3. Decision boundary
強調一下,決策邊界不是訓練集的屬性,而是假設本身及其參數的屬性。只要我們給定了參數向量θ,決策邊界就確定了。我們不是用訓練集來定義的決策邊界,我們用訓練集來擬合參數θ,以后我們將談論如何做到這一點。但是,一旦你有參數θ它就確定了決策邊界。
4. Cost function
1
現在我們來討論如何擬合邏輯回歸中模型的參數θ。
具體來說,我們需要定義optimization objective 或者 cost function 來擬合參數θ,這便是監督學習問題中的邏輯回歸模型的擬合問題。
如上圖所示,我們有一個訓練集,里面有m個訓練樣本,同之前一樣,我們的每個樣本使用n+1維的特征向量表示(x0 = 1)。並且由於是分類問題,我們訓練集中的所有y,取值不是0就是1。假設函數的參數即為θ。那么,對於這個給定的訓練集,我們如何擬合參數θ(或者說是選擇參數θ)?
之前,我們使用線性回歸模型來擬合假說參數θ時,使用了如下的代價函數,我們稍作改變,將原先的1/2m中的原先的1/2放到了求和符號里面去了。
現在我們使用另一種方式,來書寫代價函數:
現在,我們能更清楚的看到代價函數是這個Cost函數(代價項)在訓練集范圍上的求和,再求均值(乘以1/m)。
我們稍微簡化一下這個式子,去掉這些上標會顯得方便一些,所以Cost函數直接定義為:
對這個代價項(Cost函數)的理解是這樣的:y我所期望的值,通過學習算法如果想要達到這個值,那么假設h(x)所需要付出的代價即為這個代價項。這個希望的預測值是h(x),而實際值則是y,干脆,全部去掉那些上標好了。
顯然,在線性回歸中,代價項(Cost函數)會被定義為:1/2乘以預測值h和實際值觀測的結果y的差的平方。這個代價值可以很好地用在線性回歸里
,但是對於邏輯回歸卻是不合適的。
2
如果我們可以最小化代價函數J(θ)中的代價項(Cost函數),那么我們的確可以使用該代價項。但實際上,如果我們使用該代價項,那么代價函數J(θ)會變成關於參數θ的非凸函數。Why?
對於邏輯回歸來說,這里的h函數是非線性的:
是一個很復雜的非線性函數,因此如果用h函數來構造我們在線性回歸中所使用的代價項(Cost函數),接着再用該代價項來構造代價函數J(θ)。
那么J(θ)可能是一個這樣的函數,有很多局部最優值:
不難發現,如果你把梯度下降法用在一個這樣的函數上的話,我們並不能保證它會收斂到全局最小值。
顯然,我們希望我們的代價函數J(θ)是一個凸函數,也就是一個單弓形函數,如下圖所示:
如果對它使用梯度下降法,那么我們可以保證梯度下降法會收斂到該函數的全局最小值。
因此我們在邏輯回歸中使用這個代價項(Cost函數)的問題在於非線性的sigmoid函數的出現導致J(θ)成為一個非凸函數。
3
我們需要做的是,另外找一個本身是凸函數的代價項(Cost函數),可以讓我們使用類似於梯度下降的算法來找到一個全局最小值。以下就是一個我們將要在邏輯回歸中使用的代價項(Cost函數):
5. Simplified cost function and gradient descent
注意,此時θ是變量。我們的目標就是找出使J(θ)最小的θ值。