一直聽聞Logistic Regression邏輯回歸的大名,比如吳軍博士在《數學之美》中提到,Google是利用邏輯回歸預測搜索廣告的點擊率。因為自己一直對個性化廣告感興趣,於是瘋狂google過邏輯回歸的資料,但沒有一個網頁資料能很好地講清到底邏輯回歸是什么。幸好,在CS229第三節課介紹了邏輯回歸,第四節課介紹了廣義線性模型,綜合起來總算讓我對邏輯回歸有了一定的理解。與課程的順序相反,我認為應該先了解廣義線性模型再來看邏輯回歸,也許這也是為什么講邏輯回歸的網頁資料總讓人感覺雲里霧里的原因吧。
Generalized Linear Model (GLM) 廣義線性模型
這一段主要講的是廣義線性模型的定義和假設,為了看明白邏輯回歸,大家要耐着性子看完。
1.The exponential family 指數分布族
因為廣義線性模型是圍繞指數分布族的,因此需要先介紹,用NG大神的話說就是,“雖然不是全部,但是我們見過的大多數分布都屬於指數分布族,比如:Bernoulli伯努利分布、Gaussian高斯分布、multinomial多項分布、Poisson泊松分布、gamma分布、指數分布、Dirichlet分布……”服從指數分布族的條件是概率分布可以寫成如下形式:![]()
η 被稱作natural parameter,它是指數分布族唯一的參數
T(y) 被稱作sufficient statistic,很多情況下T(y)=y a(η) 被稱作 log partition function
T函數、a函數、b函數共同確定一種分布
接下來看一下為什么說正態分布(高斯分布)屬於指數分布族:
正態分布(正態分布有兩個參數μ均值與σ標准差,在做線性回歸的時候,我們關心的是均值而標准差不影響模型的學習與參數θ的選擇,因此這里將σ設為1便於計算)
2.構成廣義線性模型的三個假設
- p(y | x; θ) ∼ ExponentialFamily(η). 輸出變量基於輸入變量的條件概率分布服從指數分布族
- our goal is to predict the expected value of T(y) given x. 對於給定的輸入變量x,學習的目標是預測T(y)的期望值,T(y)經常就是y
- The natural parameter η and the inputs x are related linearly: η = θT x. η和輸入變量x的關聯是線性的:η = θT x
這三個假設其實指明了如何從輸入變量映射到輸出變量與概率模型,舉例來說:線性回歸的條件概率分布為正態分布屬於指數分布族(參考筆記一中線性回歸的似然函數部分);我們的目標是預測T(y)的期望,由上面的計算我們知道T(y)=y,而y的期望值也就是正態分布的參數μ;由上面的計算我們知道μ=η,而η=θT x。因此,線性回歸是廣義線性回歸的一個特例,它的模型是:
Logistic Regression 邏輯回歸
1.模型
邏輯回歸解決的是分類問題,並且是只分為兩類。比如:用戶是否會點擊廣告鏈接?用戶是否會回訪?拋一枚硬幣正面是否會朝上?於是,從概率的觀點出發,我們應該馬上想到用伯努利分布來估計事件發生的概率。從廣義線性模型的角度來構造邏輯回歸模型:
1.1 伯努力分布屬於指數分布族(參數Φ指的是y=1的概率,即事件發生的概率)
1.2 學習的目標是預測T(y)的期望值,而伯努利分布中T(y)=y,另外我們知道伯努利分布的期望就是參數Φ,即E(y)=Φ。
1.3 由η = log(Φ/(1 – Φ) 可以推出 Φ = 1/(1+e-η) (這就是所謂的logistic函數,也是邏輯回歸名字的來由),再將η=θT x帶入公式,最終我們得到邏輯回歸的模型:
因為伯努利分布的參數Φ既是分布的期望,又代表事件發生的概率,因此邏輯回歸模型的意義就是:在給定的輸入變量組合的條件下,輸出變量(二元變量)中一個事件發生的概率。比如:預測在用戶是第一次來訪(輸入變量1),廣告鏈接用的是熱門文案(輸入變量2)的條件下,廣告鏈接被點擊(輸出變量)的概率為多少。 看到這里,相信大家應該能夠明白:為什么邏輯函數要長成這樣,為什么邏輯回歸能起作用了吧。
2.策略
邏輯回歸使用的策略是最大化對數似然函數,它的似然函數與對數似然函數分別為:
3.算法
3.1 gradient ascent 梯度上升
我們可以用梯度下降找到極小值的點,反過來也可以用梯度上升找到極大值的點: 首先補充一下計算中要用到的邏輯函數,與邏輯函數的導數:

在此基礎上我們對對數似然函數求導獲得梯度
這個導數和線性回歸中的導數如出一轍,但是要注意兩者的模型hθ(x)是不一樣的,所以最終采用隨機梯度上升的迭代規則如下:![]()
3.2 Newton’s method 牛頓方法
從高數中知道極值點就是導數為0的地方,所以最大化對數似然函數的另一個求法是求對數似然函數導數為0的點。而牛頓方法就是求得對數似然函數導數為0的點的方法:
當參數θ只有一個時,牛頓方法的迭代規則:
當參數θ不止一個時,牛頓方法的迭代規則:
相較於批量梯度下降,牛頓方法通常來說有更快的收斂速度,只需要少得多的迭代次數就能得到很接近最小值的結果。但是當模型的參數很多時(參數個數為n)Hessian矩陣的計算成本將會很大,導致收斂速度變慢,但是當參數個數不多時,牛頓方法通常是比梯度下降快得多的。
總結
- 原來這么多主流的概率分布都屬於指數分布族
- 記住構成廣義線性模型的三個假設,其實也是構建模型的橋梁
- 理解邏輯回歸模型是基於伯努利分布的概率模型,它的意義是:在給定的輸入變量組合的條件下,輸出變量(二元變量)其中一元發生的概率。也因此它適合用來預測廣告點擊率。
- 有梯度下降算法也有梯度上升算法,兩者的區別只在+/-號上。此外,還可以使用牛頓方法,通過獲得導數為0的點以確定模型的極大/極小值。
