1. 算法
Logistic Regression 雖然被稱為回歸,但其實際上是分類模型,邏輯函數(shù)的形狀有些像階躍函數(shù),對于二分類問題,其實就是一個階躍函數(shù),當(dāng)x取某一些值的時候y=1,取另一些值的時候,y=0.這一點我們在上文SVM的數(shù)學(xué)推導(dǎo)中已經(jīng)深有體會。但階躍函數(shù)是不可微的,而邏輯函數(shù)是可微分的,這是它非常重要的一個性質(zhì)。
Logistic 回歸的本質(zhì)是:假設(shè)數(shù)據(jù)服從這個分布,然后使用極大似然估計做參數(shù)的估計。
1.1 Logistic 分布
Logistic 分布是一種連續(xù)型的概率分布,其分布函數(shù)和密度函數(shù)分別為:

其中,?
?表示位置參數(shù),?
>0 為形狀參數(shù)。我們可以看下其圖像特征

Logistic 分布是由其位置和尺度參數(shù)定義的連續(xù)分布。Logistic 分布的形狀與正態(tài)分布的形狀相似,但是 Logistic 分布的尾部更長,所以我們可以使用 Logistic 分布來建模比正態(tài)分布具有更長尾部和更高波峰的數(shù)據(jù)分布。在深度學(xué)習(xí)中常用到的 Sigmoid 函數(shù)就是 Logistic 的分布函數(shù)在的特殊形式。
1.2?Logistic 回歸
之前說到 Logistic 回歸主要用于分類問題,我們以二維特征空間的二分類為例,對于所給數(shù)據(jù)集假設(shè)存在這樣的一條直線可以將數(shù)據(jù)完成線性可分。

決策邊界可以表示為?,假設(shè)某個樣本點
那么可以判斷它的類別為 1,這個過程其實是感知機(jī)。
Logistic 回歸還需要加一層,它要找到分類概率 P(Y=1) 與輸入向量 x 的直接關(guān)系,然后通過比較概率值來判斷類別。
我們把看做一個整體
:

這是一個二分類的階躍函數(shù),正如開頭提到的,這個函數(shù)不可微,因此我們把z代入邏輯函數(shù):

由上式可轉(zhuǎn)化得到:

我們將 y 視為 x 為正例的概率,則 1-y 為 x 為其反例的概率。兩者的比值稱為幾率(odds),指該事件發(fā)生與不發(fā)生的概率比值,若事件發(fā)生的概率為 p。則對數(shù)幾率:

將 y 視為類后驗概率估計,重寫公式有:

也就是說,輸出 Y=1 的對數(shù)幾率是由輸入 x 的線性函數(shù)表示的模型,這就是邏輯回歸模型。當(dāng) 的值越接近正無窮,
概率值也就越接近 1。因此邏輯回歸的思路是,先擬合決策邊界(不局限于線性,還可以是多項式),再建立這個邊界與分類的概率聯(lián)系,從而得到了二分類情況下的概率。
在這我們思考個問題,我們使用對數(shù)幾率的意義在哪?通過上述推導(dǎo)我們可以看到 Logistic 回歸實際上是使用線性回歸模型的預(yù)測值逼近分類任務(wù)真實標(biāo)記的對數(shù)幾率,其優(yōu)點有:
1. 直接對分類的概率建模,無需實現(xiàn)假設(shè)數(shù)據(jù)分布,從而避免了假設(shè)分布不準(zhǔn)確帶來的問題(區(qū)別于生成式模型);
2. 不僅可預(yù)測出類別,還能得到該預(yù)測的概率,這對一些利用概率輔助決策的任務(wù)很有用;
3. 對數(shù)幾率函數(shù)是任意階可導(dǎo)的凸函數(shù),有許多數(shù)值優(yōu)化算法都可以求出最優(yōu)解。
1.3 損失函數(shù)
假設(shè)有N個樣本,樣本的標(biāo)簽只有0和1兩類,可以用極大似然估計法估計模型參數(shù),從而得到邏輯回歸模型
設(shè)yi=1的概率為pi,yi=0的概率為1 - pi,那么觀測的概率為:

可以看到這個公式很巧妙的將0和1兩種情況都包括進(jìn)去,數(shù)學(xué)真是美妙的東西
概率由邏輯回歸的公式求解,那么帶進(jìn)去得到極大似然函數(shù):

取對數(shù)之后:

1.4 求解
1. 隨機(jī)梯度下降
梯度下降是通過 J(w) 對 w 的一階導(dǎo)數(shù)來找下降方向,并且以迭代的方式來更新參數(shù)。這種方法的缺點是容易陷入局部極值
現(xiàn)在已經(jīng)知道損失函數(shù):

現(xiàn)在開始求導(dǎo):

通常來說,是用梯度下降法來求解的,所以會在損失函數(shù)前面加個負(fù)號求最小值,所以最終的導(dǎo)數(shù)變成:

2. 牛頓法
牛頓法的基本思路是,在現(xiàn)有極小點估計值的附近對 f(x) 做二階泰勒展開,進(jìn)而找到極小點的下一個估計值。這個方法需要目標(biāo)函數(shù)是二階連續(xù)可微的,本文中的 J(w) 是符合要求的。

1.5 正則化
這部分內(nèi)容在嶺回歸與Lasso回歸中有詳細(xì)解釋,因此這里略去。
1.6 并行化
從邏輯回歸的求解方法中我們可以看到,無論是隨機(jī)梯度下降還是牛頓法,或者是沒有提到的擬牛頓法,都是需要計算梯度的,因此邏輯回歸的并行化最主要的就是對目標(biāo)函數(shù)梯度計算的并行化。
我們看到目標(biāo)函數(shù)的梯度向量計算中只需要進(jìn)行向量間的點乘和相加,可以很容易將每個迭代過程拆分成相互獨立的計算步驟,由不同的節(jié)點進(jìn)行獨立計算,然后歸并計算結(jié)果。
2. 與其他模型的對比
2.1 與線性回歸
邏輯回歸是在線性回歸的基礎(chǔ)上加了一個 Sigmoid 函數(shù)(非線形)映射,使得邏輯回歸稱為了一個優(yōu)秀的分類算法。本質(zhì)上來說,兩者都屬于廣義線性模型,但他們兩個要解決的問題不一樣,邏輯回歸解決的是分類問題,輸出的是離散值,線性回歸解決的是回歸問題,輸出的連續(xù)值。
我們需要明確 Sigmoid 函數(shù)到底起了什么作用:
線性回歸是在實數(shù)域范圍內(nèi)進(jìn)行預(yù)測,而分類范圍則需要在 [0,1],邏輯回歸減少了預(yù)測范圍;
線性回歸在實數(shù)域上敏感度一致,而邏輯回歸在 0 附近敏感,在遠(yuǎn)離 0 點位置不敏感,這個的好處就是模型更加關(guān)注分類邊界,可以增加模型的魯棒性。
2.2 與最大熵模型
邏輯回歸和最大熵模型本質(zhì)上沒有區(qū)別,最大熵在解決二分類問題時就是邏輯回歸,在解決多分類問題時就是多項邏輯回歸。邏輯回歸是最大熵模型的一個特殊例子。
2.3 與 SVM
相同點:
都是分類算法,本質(zhì)上都是在找最佳分類超平面;
都是監(jiān)督學(xué)習(xí)算法;
都是判別式模型,判別模型不關(guān)心數(shù)據(jù)是怎么生成的,它只關(guān)心數(shù)據(jù)之間的差別,然后用差別來簡單對給定的一個數(shù)據(jù)進(jìn)行分類;
都可以增加不同的正則項。
不同點:
LR 是一個統(tǒng)計的方法,SVM 是一個幾何的方法;
SVM 的處理方法是只考慮 Support Vectors,也就是和分類最相關(guān)的少數(shù)點去學(xué)習(xí)分類器。而邏輯回歸通過非線性映射減小了離分類平面較遠(yuǎn)的點的權(quán)重,相對提升了與分類最相關(guān)的數(shù)據(jù)點的權(quán)重;
損失函數(shù)不同:LR 的損失函數(shù)是交叉熵,SVM 的損失函數(shù)是 HingeLoss,這兩個損失函數(shù)的目的都是增加對分類影響較大的數(shù)據(jù)點的權(quán)重,減少與分類關(guān)系較小的數(shù)據(jù)點的權(quán)重。對 HingeLoss 來說,其零區(qū)域?qū)?yīng)的正是非支持向量的普通樣本,從而所有的普通樣本都不參與最終超平面的決定,這是支持向量機(jī)最大的優(yōu)勢所在,對訓(xùn)練樣本數(shù)目的依賴大減少,而且提高了訓(xùn)練效率;
LR 是參數(shù)模型,SVM 是非參數(shù)模型,參數(shù)模型的前提是假設(shè)數(shù)據(jù)服從某一分布,該分布由一些參數(shù)確定(比如正太分布由均值和方差確定),在此基礎(chǔ)上構(gòu)建的模型稱為參數(shù)模型;非參數(shù)模型對于總體的分布不做任何假設(shè),只是知道總體是一個隨機(jī)變量,其分布是存在的(分布中也可能存在參數(shù)),但是無法知道其分布的形式,更不知道分布的相關(guān)參數(shù),只有在給定一些樣本的條件下,能夠依據(jù)非參數(shù)統(tǒng)計的方法進(jìn)行推斷。所以 LR 受數(shù)據(jù)分布影響,尤其是樣本不均衡時影響很大,需要先做平衡,而 SVM 不直接依賴于分布;
LR 可以產(chǎn)生概率,SVM 不能;
LR 不依賴樣本之間的距離,SVM 是基于距離的;
LR 相對來說模型更簡單好理解,特別是大規(guī)模線性分類時并行計算比較方便。而 SVM 的理解和優(yōu)化相對來說復(fù)雜一些,SVM 轉(zhuǎn)化為對偶問題后,分類只需要計算與少數(shù)幾個支持向量的距離,這個在進(jìn)行復(fù)雜核函數(shù)計算時優(yōu)勢很明顯,能夠大大簡化模型和計算。
2.4 與樸素貝葉斯
樸素貝葉斯和邏輯回歸都屬于分類模型,當(dāng)樸素貝葉斯的條件概率 服從高斯分布時,它計算出來的 P(Y=1|X) 形式跟邏輯回歸是一樣的。
兩個模型不同的地方在于:
邏輯回歸是判別式模型 p(y|x),樸素貝葉斯是生成式模型 p(x,y):判別式模型估計的是條件概率分布,給定觀測變量 x 和目標(biāo)變量 y 的條件模型,由數(shù)據(jù)直接學(xué)習(xí)決策函數(shù) y=f(x) 或者條件概率分布 P(y|x) 作為預(yù)測的模型。判別方法關(guān)心的是對于給定的輸入 x,應(yīng)該預(yù)測什么樣的輸出 y;而生成式模型估計的是聯(lián)合概率分布,基本思想是首先建立樣本的聯(lián)合概率概率密度模型 P(x,y),然后再得到后驗概率 P(y|x),再利用它進(jìn)行分類,生成式更關(guān)心的是對于給定輸入 x 和輸出 y 的生成關(guān)系;
樸素貝葉斯的前提是條件獨立,每個特征權(quán)重獨立,所以如果數(shù)據(jù)不符合這個情況,樸素貝葉斯的分類表現(xiàn)就沒邏輯會好了。
3. 模型細(xì)節(jié)
3.1 為什么適合離散特征
我們在使用邏輯回歸的時候很少會把數(shù)據(jù)直接丟給 LR 來訓(xùn)練,我們一般會對特征進(jìn)行離散化處理,這樣做的優(yōu)勢大致有以下幾點:
離散后稀疏向量內(nèi)積乘法運算速度更快,計算結(jié)果也方便存儲,容易擴(kuò)展;
離散后的特征對異常值更具魯棒性,如 age>30 為 1 否則為 0,對于年齡為 200 的也不會對模型造成很大的干擾;
LR 屬于廣義線性模型,表達(dá)能力有限,經(jīng)過離散化后,每個變量有單獨的權(quán)重,這相當(dāng)于引入了非線性,能夠提升模型的表達(dá)能力,加大擬合;
離散后特征可以進(jìn)行特征交叉,提升表達(dá)能力,由 M+N 個變量編程 M*N 個變量,進(jìn)一步引入非線形,提升了表達(dá)能力;
特征離散后模型更穩(wěn)定,如用戶年齡區(qū)間,不會因為用戶年齡長了一歲就變化;
總的來說,特征離散化以后起到了加快計算,簡化模型和增加泛化能力的作用。
3.2 為什么不用平方誤差

4 鏈接
【機(jī)器學(xué)習(xí)】邏輯回歸(非常詳細(xì))
https://zhuanlan.zhihu.com/p/74874291
邏輯回歸損失函數(shù)推導(dǎo)及求導(dǎo)