機(jī)器學(xué)習(xí)算法學(xué)習(xí)-邏輯回歸

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ù)分別為:

其中,?

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

Logistic 分布是由其位置和尺度參數(shù)定義的連續(xù)分布。Logistic 分布的形狀與正態(tài)分布的形狀相似,但是 Logistic 分布的尾部更長,所以我們可以使用 Logistic 分布來建模比正態(tài)分布具有更長尾部和更高波峰的數(shù)據(jù)分布。在深度學(xué)習(xí)中常用到的 Sigmoid 函數(shù)就是 Logistic 的分布函數(shù)在\mu =0,\gamma =1的特殊形式。

1.2?Logistic 回歸

之前說到 Logistic 回歸主要用于分類問題,我們以二維特征空間的二分類為例,對于所給數(shù)據(jù)集假設(shè)存在這樣的一條直線可以將數(shù)據(jù)完成線性可分。

決策邊界可以表示為?w_{1}x_{1}+w_{2}x_{2}+b=0,假設(shè)某個樣本點h_{w}(x)=w_{1}x_{1}+w_{2}x_{2}+b>0那么可以判斷它的類別為 1,這個過程其實是感知機(jī)。

Logistic 回歸還需要加一層,它要找到分類概率 P(Y=1) 與輸入向量 x 的直接關(guān)系,然后通過比較概率值來判斷類別。

我們把h_{w}(x)=w^Tx+b看做一個整體z

這是一個二分類的階躍函數(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) w^Tx+b的值越接近正無窮, P(Y=1\vert X)概率值也就越接近 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(X\vert Y=c_{k}  ) 服從高斯分布時,它計算出來的 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)

https://blog.csdn.net/fu_9701/article/details/83097176

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容