逻辑回归模型详解(Logistic Regression)
目錄
廣義線性模型
極大似然法
邏輯回歸的假設(shè)函數(shù)
邏輯回歸的損失函數(shù)
交叉熵?fù)p失函數(shù)
為什么LR模型損失函數(shù)使用交叉熵不用均方差
交叉熵?fù)p失函數(shù)的數(shù)學(xué)原理
交叉熵?fù)p失函數(shù)的直觀理解
交叉熵簡(jiǎn)介
對(duì)數(shù)損失函數(shù)和交叉熵?fù)p失函數(shù)
邏輯回歸優(yōu)缺點(diǎn)
其他
邏輯回歸與線性回歸的區(qū)別與聯(lián)系
LR一般需要連續(xù)特征離散化原因
廣義線性模型
邏輯回歸與線性回歸都是一種廣義線性模型(generalized linear model,GLM)。具體的說(shuō),都是從指數(shù)分布族導(dǎo)出的線性模型,線性回歸假設(shè)Y|X服從高斯分布,邏輯回歸假設(shè)Y|X服從伯努利分布。
伯努利分布:伯努利分布又名0-1分布或者兩點(diǎn)分布,是一個(gè)離散型概率分布。隨機(jī)變量X只取0和1兩個(gè)值,比如正面或反面,成功或失敗,有缺陷或沒有缺陷,病人康復(fù)或未康復(fù)。為方便起見,記這兩個(gè)可能的結(jié)果為0和1,成功概率為p(0<=p<=1),失敗概率為q=1-p。
高斯分布:高斯分布一般指正態(tài)分布。
因此邏輯回歸與線性回歸有很多相同之處,去除Sigmoid映射函數(shù)的話,邏輯回歸算法就是一個(gè)線性回歸。可以說(shuō),邏輯回歸是以線性回歸為理論支持的,但是邏輯回歸通過(guò)Sigmoid函數(shù)引入了非線性因素,因此可以輕松處理0/1分類問題。
這兩種分布都是屬于指數(shù)分布族,我們可以通過(guò)指數(shù)分布族求解廣義線性模型(GLM)的一般形式,導(dǎo)出這兩種模型,具體的演變過(guò)程如下:
(此部分參考:https://zhuanlan.zhihu.com/p/81723099)
?
極大似然法
極大似然估計(jì),通俗理解來(lái)說(shuō),就是利用已知的樣本結(jié)果信息,反推最具有可能(最大概率)導(dǎo)致這些樣本結(jié)果出現(xiàn)的模型參數(shù)值。
?極大似然估計(jì)的原理,用一張圖片來(lái)說(shuō)明,如下圖所示:
原理:極大似然估計(jì)是建立在極大似然原理的基礎(chǔ)上的一個(gè)統(tǒng)計(jì)方法,是概率論在統(tǒng)計(jì)學(xué)中的應(yīng)用。
極大似然估計(jì)提供了一種給定觀察數(shù)據(jù)來(lái)評(píng)估模型參數(shù)的方法,即:“模型已定,參數(shù)未知”。通過(guò)若干次試驗(yàn),觀察其結(jié)果,利用試驗(yàn)結(jié)果得到某個(gè)參數(shù)值能夠使樣本出現(xiàn)的概率為最大,則稱為極大似然估計(jì)。
?
邏輯回歸的假設(shè)函數(shù)
首先我們要先介紹一下Sigmoid函數(shù),也稱為邏輯函數(shù)(Logistic function):
其函數(shù)曲線如下:
從上圖可以看到sigmoid函數(shù)是一個(gè)s形的曲線,它的取值在[0, 1]之間,在遠(yuǎn)離0的地方函數(shù)的值會(huì)很快接近0或者1,它的這個(gè)特性對(duì)于解決二分類問題十分重要。
邏輯回歸的假設(shè)函數(shù)形式如下:
所以:
其中 x 是我們的輸入,θ 為我們要求取的參數(shù)。
一個(gè)機(jī)器學(xué)習(xí)的模型,實(shí)際上是把決策函數(shù)限定在某一組條件下,這組限定條件就決定了模型的假設(shè)空間。當(dāng)然,我們還希望這組限定條件簡(jiǎn)單而合理。而邏輯回歸模型所做的假設(shè)是:
這個(gè)函數(shù)的意思就是在給定?x 和 θ 的條件下,y = 1的概率。
?
邏輯回歸的損失函數(shù)
通常提到損失函數(shù),我們不得不提到代價(jià)函數(shù)(Cost Function)及目標(biāo)函數(shù)(Object Function)。
損失函數(shù)(Loss Function)?直接作用于單個(gè)樣本,用來(lái)表達(dá)樣本的誤差
代價(jià)函數(shù)(Cost Function)是整個(gè)樣本集的平均誤差,對(duì)所有損失函數(shù)值的平均
目標(biāo)函數(shù)(Object Function)是我們最終要優(yōu)化的函數(shù),也就是代價(jià)函數(shù)+正則化函數(shù)(經(jīng)驗(yàn)風(fēng)險(xiǎn)+結(jié)構(gòu)風(fēng)險(xiǎn))
概況來(lái)講,任何能夠衡量模型預(yù)測(cè)出來(lái)的值 h(θ) 與真實(shí)值 y?之間的差異的函數(shù)都可以叫做代價(jià)函數(shù) C(θ)?如果有多個(gè)樣本,則可以將所有代價(jià)函數(shù)的取值求均值,記做 J(θ)?。因此很容易就可以得出以下關(guān)于代價(jià)函數(shù)的性質(zhì):
- 選擇代價(jià)函數(shù)時(shí),最好挑選對(duì)參數(shù) θ 可微的函數(shù)(全微分存在,偏導(dǎo)數(shù)一定存在)
- 對(duì)于每種算法來(lái)說(shuō),代價(jià)函數(shù)不是唯一的;
- 代價(jià)函數(shù)是參數(shù)?θ?的函數(shù);
- 總的代價(jià)函數(shù) J(θ)?可以用來(lái)評(píng)價(jià)模型的好壞,代價(jià)函數(shù)越小說(shuō)明模型和參數(shù)越符合訓(xùn)練樣本(x,y);
- J(θ) 是一個(gè)標(biāo)量;
經(jīng)過(guò)上面的描述,一個(gè)好的代價(jià)函數(shù)需要滿足兩個(gè)最基本的要求:能夠評(píng)價(jià)模型的準(zhǔn)確性,對(duì)參數(shù) θ 可微。
在線性回歸中,最常用的是均方誤差(Mean squared error),即
在邏輯回歸中,最常用的是代價(jià)函數(shù)是交叉熵(Cross Entropy),交叉熵是一個(gè)常見的代價(jià)函數(shù)
通過(guò)梯度下降法求參數(shù)的更新式
我們下圖為推倒式,這樣可以使推導(dǎo)式更簡(jiǎn)潔。
求梯度:
學(xué)習(xí)率
LR在確定了模型的形式后,通過(guò)最大似然估計(jì)法來(lái)實(shí)現(xiàn)最小散度從而求出模型參數(shù)。
?
交叉熵?fù)p失函數(shù)
說(shuō)起交叉熵?fù)p失函數(shù)「Cross Entropy Loss」,腦海中立馬浮現(xiàn)出它的公式:
為什么LR模型損失函數(shù)使用交叉熵不用均方差
交叉熵?fù)p失函數(shù)的數(shù)學(xué)原理
我們知道,在二分類問題模型:例如邏輯回歸「Logistic Regression」、神經(jīng)網(wǎng)絡(luò)「Neural Network」等,真實(shí)樣本的標(biāo)簽為 [0,1],分別表示負(fù)類和正類。模型的最后通常會(huì)經(jīng)過(guò)一個(gè) Sigmoid 函數(shù),輸出一個(gè)概率值,這個(gè)概率值反映了預(yù)測(cè)為正類的可能性:概率越大,可能性越大。
Sigmoid 函數(shù)的表達(dá)式和圖形如下所示:
其中 s 是模型上一層的輸出,Sigmoid 函數(shù)有這樣的特點(diǎn):s = 0 時(shí),g(s) = 0.5;s >> 0 時(shí), g ≈ 1,s << 0 時(shí),g ≈ 0。顯然,g(s) 將前一級(jí)的線性輸出映射到 [0,1] 之間的數(shù)值概率上。這里的 g(s) 就是交叉熵公式中的模型預(yù)測(cè)輸出 。
我們說(shuō)了,預(yù)測(cè)輸出即 Sigmoid 函數(shù)的輸出表征了當(dāng)前樣本標(biāo)簽為 1 的概率:
很明顯,當(dāng)前樣本標(biāo)簽為 0 的概率就可以表達(dá)成:
重點(diǎn)來(lái)了,如果我們從極大似然性的角度出發(fā),把上面兩種情況整合到一起:
不懂極大似然估計(jì)也沒關(guān)系。我們可以這么來(lái)看:
當(dāng)真實(shí)樣本標(biāo)簽 y = 0 時(shí),上面式子第一項(xiàng)就為 1,概率等式轉(zhuǎn)化為:
當(dāng)真實(shí)樣本標(biāo)簽 y = 1 時(shí),上面式子第二項(xiàng)就為 1,概率等式轉(zhuǎn)化為:
兩種情況下概率表達(dá)式跟之前的完全一致,只不過(guò)我們把兩種情況整合在一起了。
重點(diǎn)看一下整合之后的概率表達(dá)式,我們希望的是概率 P(y|x) 越大越好。首先,我們對(duì) P(y|x) 引入 log 函數(shù),因?yàn)?log 運(yùn)算并不會(huì)影響函數(shù)本身的單調(diào)性。則有:
我們希望 log P(y|x) 越大越好,反過(guò)來(lái),只要 log P(y|x) 的負(fù)值 -log P(y|x) 越小就行了。那我們就可以引入損失函數(shù),且令 Loss = -log P(y|x)即可。則得到損失函數(shù)為:
非常簡(jiǎn)單,我們已經(jīng)推導(dǎo)出了單個(gè)樣本的損失函數(shù),是如果是計(jì)算 N 個(gè)樣本的總的損失函數(shù),只要將 N 個(gè) Loss 疊加起來(lái)就可以了:
這樣,我們已經(jīng)完整地實(shí)現(xiàn)了交叉熵?fù)p失函數(shù)的推導(dǎo)過(guò)程。
?
交叉熵?fù)p失函數(shù)的直觀理解
從圖形的角度,分析交叉熵函數(shù),加深大家的理解。首先,還是寫出單個(gè)樣本的交叉熵?fù)p失函數(shù):
我們知道,當(dāng) y = 1 時(shí):
這時(shí)候,L 與預(yù)測(cè)輸出的關(guān)系如下圖所示:
看了 L 的圖形,簡(jiǎn)單明了!橫坐標(biāo)是預(yù)測(cè)輸出,縱坐標(biāo)是交叉熵?fù)p失函數(shù) L。顯然,預(yù)測(cè)輸出越接近真實(shí)樣本標(biāo)簽 1,損失函數(shù) L 越小;預(yù)測(cè)輸出越接近 0,L 越大。因此,函數(shù)的變化趨勢(shì)完全符合實(shí)際需要的情況。
當(dāng) y = 0 時(shí):
這時(shí)候,L 與預(yù)測(cè)輸出的關(guān)系如下圖所示:
同樣,預(yù)測(cè)輸出越接近真實(shí)樣本標(biāo)簽 0,損失函數(shù) L 越小;預(yù)測(cè)函數(shù)越接近 1,L 越大。函數(shù)的變化趨勢(shì)也完全符合實(shí)際需要的情況。
從上面兩種圖,可以幫助我們對(duì)交叉熵?fù)p失函數(shù)有更直觀的理解。無(wú)論真實(shí)樣本標(biāo)簽 y 是 0 還是 1,L 都表征了預(yù)測(cè)輸出與 y 的差距。
另外,重點(diǎn)提一點(diǎn)的是,從圖形中我們可以發(fā)現(xiàn):預(yù)測(cè)輸出與 y 差得越多,L 的值越大,也就是說(shuō)對(duì)當(dāng)前模型的 “ 懲罰 ” 越大,而且是非線性增大,是一種類似指數(shù)增長(zhǎng)的級(jí)別。這是由 log 函數(shù)本身的特性所決定的。這樣的好處是模型會(huì)傾向于讓預(yù)測(cè)輸出更接近真實(shí)樣本標(biāo)簽 y。
-
交叉熵能夠衡量同一個(gè)隨機(jī)變量中的兩個(gè)不同概率分布的差異程度,在機(jī)器學(xué)習(xí)中就表示為真實(shí)概率分布與預(yù)測(cè)概率分布之間的差異。交叉熵的值越小,模型預(yù)測(cè)效果就越好。
-
交叉熵在分類問題中常常與softmax是標(biāo)配,softmax將輸出的結(jié)果進(jìn)行處理,使其多個(gè)分類的預(yù)測(cè)值和為1,再通過(guò)交叉熵來(lái)計(jì)算損失。
交叉熵可在神經(jīng)網(wǎng)絡(luò)(機(jī)器學(xué)習(xí))中作為損失函數(shù),p表示真實(shí)標(biāo)記的分布,q則為訓(xùn)練后的模型的預(yù)測(cè)標(biāo)記分布,交叉熵?fù)p失函數(shù)可以衡量p與q的相似性。交叉熵作為損失函數(shù)還有一個(gè)好處是使用sigmoid函數(shù)在梯度下降時(shí)能避免均方誤差損失函數(shù)學(xué)習(xí)速率降低的問題,因?yàn)閷W(xué)習(xí)速率可以被輸出的誤差所控制。
交叉熵簡(jiǎn)介
交叉熵是信息論中的一個(gè)重要概念,主要用于度量?jī)蓚€(gè)概率分布間的差異性,要理解交叉熵,需要先了解下面幾個(gè)概念。
信息量
信息奠基人香農(nóng)(Shannon)認(rèn)為“信息是用來(lái)消除隨機(jī)不確定性的東西”,也就是說(shuō)衡量信息量的大小就是看這個(gè)信息消除不確定性的程度。
“太陽(yáng)從東邊升起”,這條信息并沒有減少不確定性,因?yàn)樘?yáng)肯定是從東邊升起的,這是一句廢話,信息量為0。
”2018年中國(guó)隊(duì)成功進(jìn)入世界杯“,從直覺上來(lái)看,這句話具有很大的信息量。因?yàn)橹袊?guó)隊(duì)進(jìn)入世界杯的不確定性因素很大,而這句話消除了進(jìn)入世界杯的不確定性,所以按照定義,這句話的信息量很大。
根據(jù)上述可總結(jié)如下:信息量的大小與信息發(fā)生的概率成反比。概率越大,信息量越小。概率越小,信息量越大。
設(shè)某一事件發(fā)生的概率為P(x),其信息量表示為:
其中 I ( x ) 表示信息量,這里 log 表示以e為底的自然對(duì)數(shù)。
信息熵
信息熵也被稱為熵,用來(lái)表示所有信息量的期望。
期望是試驗(yàn)中每次可能結(jié)果的概率乘以其結(jié)果的總和。
所以信息量的熵可表示為:(這里的X XX是一個(gè)離散型隨機(jī)變量)
使用明天的天氣概率來(lái)計(jì)算其信息熵:
對(duì)于0-1分布的問題,由于其結(jié)果只用兩種情況,是或不是,設(shè)某一件事情發(fā)生的概率為P ( x ) ,則另一件事情發(fā)生的概率為1 ? P ( x ) ,所以對(duì)于0-1分布的問題,計(jì)算熵的公式可以簡(jiǎn)化如下:
相對(duì)熵(KL散度)
如果對(duì)于同一個(gè)隨機(jī)變量X XX有兩個(gè)單獨(dú)的概率分布?P(x) 和?Q(x),則我們可以使用KL散度來(lái)衡量這兩個(gè)概率分布之間的差異。
下面直接列出公式,再舉例子加以說(shuō)明。
在機(jī)器學(xué)習(xí)中,常常使用 P(x) 來(lái)表示樣本的真實(shí)分布,Q(x) 來(lái)表示模型所預(yù)測(cè)的分布,比如在一個(gè)三分類任務(wù)中(例如,貓狗馬分類器), x1?,x2?,x3? 分別代表貓,狗,馬,例如一張貓的圖片真實(shí)分布 P(X)=[1,0,0] ,預(yù)測(cè)分布 Q(X)=[0.7,0.2,0.1] ,計(jì)算KL散度:
KL散度越小,表示 P(x) 與 Q(x) 的分布更加接近,可以通過(guò)反復(fù)訓(xùn)練 Q(x) 來(lái)使 Q(x) 的分布逼近 P(x)。
交叉熵
首先將KL散度公式拆開:
前者?H(p(x)) 表示信息熵,后者即為交叉熵,KL散度 = 交叉熵 - 信息熵
交叉熵公式表示為:
在機(jī)器學(xué)習(xí)訓(xùn)練網(wǎng)絡(luò)時(shí),輸入數(shù)據(jù)與標(biāo)簽常常已經(jīng)確定,那么真實(shí)概率分布 P(x) 也就確定下來(lái)了,所以信息熵在這里就是一個(gè)常量。由于KL散度的值表示真實(shí)概率分布?P(x) 與預(yù)測(cè)概率分布 Q(x) 之間的差異,值越小表示預(yù)測(cè)的結(jié)果越好,所以需要最小化KL散度,而交叉熵等于KL散度加上一個(gè)常量(信息熵),且公式相比KL散度更加容易計(jì)算,所以在機(jī)器學(xué)習(xí)中常常使用交叉熵?fù)p失函數(shù)來(lái)計(jì)算loss就行了。
對(duì)數(shù)損失函數(shù)和交叉熵?fù)p失函數(shù)
邏輯回歸優(yōu)缺點(diǎn)
LR優(yōu)點(diǎn):
LR缺點(diǎn):
?
其他
邏輯回歸與線性回歸的區(qū)別與聯(lián)系
區(qū)別
- 線性回歸假設(shè)響應(yīng)變量服從正態(tài)分布,邏輯回歸假設(shè)響應(yīng)變量服從伯努利分布
- 線性回歸優(yōu)化的目標(biāo)函數(shù)是均方差(最小二乘),而邏輯回歸優(yōu)化的是似然函數(shù)(交叉熵)
- 線性歸回要求自變量與因變量呈線性關(guān)系,而邏輯回歸沒有要求
- 線性回歸分析的是因變量自身與自變量的關(guān)系,而邏輯回歸研究的是因變量取值的概率與自變量的概率
- 邏輯回歸處理的是分類問題,線性回歸處理的是回歸問題,這也導(dǎo)致了兩個(gè)模型的取值范圍不同:0-1和實(shí)數(shù)域
- 參數(shù)估計(jì)上,都是用極大似然估計(jì)的方法估計(jì)參數(shù)(高斯分布導(dǎo)致了線性模型損失函數(shù)為均方差,伯努利分布導(dǎo)致邏輯回歸損失函數(shù)為交叉熵)
聯(lián)系
- 兩個(gè)都是線性模型,線性回歸是普通線性模型,邏輯回歸是廣義線性模型
- 表達(dá)形式上,邏輯回歸是線性回歸套上了一個(gè)Sigmoid函數(shù)
LR一般需要連續(xù)特征離散化原因
?
?
?
參考鏈接:https://blog.csdn.net/zengxiantao1994/article/details/72787849
交叉熵?fù)p失函數(shù):https://zhuanlan.zhihu.com/p/35709485
參考鏈接:https://zhuanlan.zhihu.com/p/38241764
?
總結(jié)
以上是生活随笔為你收集整理的逻辑回归模型详解(Logistic Regression)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 集成学习-Boosting集成学习算法L
- 下一篇: 集成学习-Bagging集成学习算法随机