天天看點

Andrew Ng機器學習公開課筆記 -- Logistic Regression

網易公開課,第3,4課 

前面讨論了線性回歸問題, 

Andrew Ng機器學習公開課筆記 -- Logistic Regression

下面繼續讨論分類問題,分類問題和回歸問題不同在于y的取值是離散的 

我們先讨論最簡單的binary classification,即y的取值隻有0和1 

分類問題一般不會使用回歸模型,因為回歸模型是輸出是連續的,而分類問題需要的輸出是離散的

但是一定要用也不是不可以,比如這裡繼續使用線性回歸模型,但是不是非常适合 

原因如下, 

首先線性模型的y取值是連續,且沒有限制的,而二進制分類的取值為[0,1],對于線性回歸模型,參考下圖,可以以0.5為分界線,大于則取1,小于則取0,也可以轉化為離散的結果 

再者,其實隻有在分界線周圍的樣本點對分類模型會有比較大的影響,而比較遠的樣本點其實對模型沒啥影響 

但對于線性模型而言,增加任何樣本點都會對模型産生相同的影響

Andrew Ng機器學習公開課筆記 -- Logistic Regression

是以提出logistic回歸模型,這種回歸模型可以比較好的解決二進制分類問題 

從本質上你仍然可以把他了解為線性模型, 

你可以看下面給出的h函數,隻是線上性回歸外面加上logistic函數進行轉換,可以了解成把上圖的直線轉化為那條sigmoid曲線,使其更加符合二進制分類的需求 

但是本質上可以看成仍然是用那條直線進行劃分 

logistic function(sigmoid function) 

下面給出h函數 

Andrew Ng機器學習公開課筆記 -- Logistic Regression
Andrew Ng機器學習公開課筆記 -- Logistic Regression

先不從數學上說為什麼這個模型中二進制分類上比線性模型好,單純從圖形上看就可以得到直覺的結論 

首先y值域在[0,1],其次圖形中中間陡峭而兩邊平緩,符合二進制分類的樣本點特性

确定了模型,下面要做的是fit最優的θ,仍然是采用最大似然法,即找出對訓練資料可能性最大的那個θ

Andrew Ng機器學習公開課筆記 -- Logistic Regression
但是對于二進制分類,符合<b>伯努利分布</b>(the bernoulli distribution, 又稱兩點分布,0-1分布),因為二進制分類的輸出一定是0或1,典型的伯努利實驗  by the way,二項分布是n次獨立的伯努利實驗形成的機率分布,當n=1時,就是伯努利分布  同樣,如果離散輸出是多個值,就是符合多項分布 

看看由最大似然可以推導出什麼 

首先給出伯努利分布 

Andrew Ng機器學習公開課筆記 -- Logistic Regression

是否好了解,給定x;θ,y=1的機率等于h的值,看看圖中,當然是h的值越大越可能為1,越小越可能為0 

那麼這個式子可以合并寫成,比較tricky的寫法,y為0或1,總有一項為1 

Andrew Ng機器學習公開課筆記 -- Logistic Regression

那麼θ的似然函數定義為,θ的可能性取決于模型對訓練集拟合的好壞 

Andrew Ng機器學習公開課筆記 -- Logistic Regression

同樣為了數學計算友善,定義log likelihood, 

Andrew Ng機器學習公開課筆記 -- Logistic Regression

很顯然,對于伯努利分布,這裡無法推導出最小二乘呵呵 

下面要做的是找到θ使得ℓ(θ)最大,由于這裡是找最大值而非最小值,是以使用梯度上升(gradient ascent),道理是一樣的 

首先計算梯度,計算過程參考原文 

Andrew Ng機器學習公開課筆記 -- Logistic Regression

是以最終随機梯度上升rule寫成, 

Andrew Ng機器學習公開課筆記 -- Logistic Regression

這個梯度公式,奇迹般的和線性回歸中的梯度公式表面上看是一樣的,可以仔細比較一樣的 

Andrew Ng機器學習公開課筆記 -- Logistic Regression

perceptron learning algorithm(感覺機算法) 

這裡談感覺機,好像有些離題,但是你看下感覺機的函數 

Andrew Ng機器學習公開課筆記 -- Logistic Regression

單純從直覺圖形的角度,似乎是邏輯函數的簡化形式 

邏輯函數是連續的在[0,1]區間上,而感覺機直接非0則1,參考下圖紅線 

Andrew Ng機器學習公開課筆記 -- Logistic Regression

同樣使用梯度下降的感覺機算法也是和上面相同的形式 

Andrew Ng機器學習公開課筆記 -- Logistic Regression

同樣不同的僅僅是h(x) 

1960s,感覺機被看作是大腦工作中獨立神經元的粗糙的模型,由于簡單,會用作後面介紹的學習算法的起點 

雖然直覺看上去感覺機和之前看到的logistic回歸或最小二乘回歸很像,但是其實是非常不一樣的算法 

因為,對于感覺機,很難賦予一種有意義的機率解釋(probabilistic interpretations),或使用最大似然估計算法來推導感覺機算法 

而對于最小二乘或logistic都可以給出像高斯分布或伯努利分布的機率解釋,并可以使用最大似然進行推導

牛頓算法(newton’s method) 

前面我們說道使用梯度上升法來求解maximizing ℓ(θ) 

現在介紹另外一種收斂速度更快的算法來求解,稱為牛頓法 

也很簡單,看下面的圖

Andrew Ng機器學習公開課筆記 -- Logistic Regression

對于梯度下降,每次隻是在梯度方向(導數,切線)下降一小步(取決于學習速度參數) 

而牛頓法是一直下降到導數(切線)和θ軸交界的那個θ,直覺上可以看出這個下降速度确實很快 

而其中θ下降了圖中紅線部分,通過三角計算很容易算出 

故牛頓法的rule為,最終找到f(θ) = 0的點 

Andrew Ng機器學習公開課筆記 -- Logistic Regression

好,現在看我們的問題,解邏輯回歸就是要找到max(ℓ ),即ℓ′(θ)=0的點 

Andrew Ng機器學習公開課筆記 -- Logistic Regression

代入牛頓法,即f(θ) = ℓ′(θ) 

是以邏輯回歸的牛頓法的rule公式,寫為 

Andrew Ng機器學習公開課筆記 -- Logistic Regression

但這裡我們隻是考慮一個θ的情況,實際情況下參數會有多個,即θ其實是一個向量 

那麼對于θ向量,牛頓法的公式會變成怎樣? 

Andrew Ng機器學習公開課筆記 -- Logistic Regression

其中∇ℓ(θ)也是個向量,是ℓ(θ)對于每個θi的偏導的結果 

其中h是個n-by-n matrix,其實一般是n + 1-by-n + 1,因為如果有n個參數θi,還會有個截距項 

h矩陣稱為hessian,矩陣中每一項定義為 

Andrew Ng機器學習公開課筆記 -- Logistic Regression

和梯度下降比,牛頓法會帶來更快的收斂速度和更少的疊代次數 

Andrew Ng機器學習公開課筆記 -- Logistic Regression

是以當θ的參數個數不是很多的時候,牛頓法會比較适合

本文章摘自部落格園,原文釋出日期:2014-03-28 

繼續閱讀