[這里少通汽車脊岳,每天只有幾班車通往外界禾锤,卻是自我歸零的佳地∷⒃剩—— By Muyoo](http://7vzs9m.com1.z0.glb.clouddn.com/%E5%A4%A7%E7%90%8677.jpg)
之前使用邏輯回歸時(shí)就接觸到里面的sigmod函數(shù)冤留,就有疑問為什么會(huì)想到用這個(gè)函數(shù)把線性回歸的值壓縮到0到1之間;而看到的介紹邏輯回歸的公開課树灶、文章纤怒,大多數(shù)都對(duì)此沒有詳細(xì)說明。所以現(xiàn)在又把LR拿出來天通,記錄下從別人文章里學(xué)到的解釋泊窘,同時(shí)也理一理邏輯回歸的過程和現(xiàn)在的一些理解。
有錯(cuò)誤像寒、不當(dāng)之處歡迎指出!
![][matrix]
[matrix]: ?http://latex.codecogs.com/svg.latex?\begin{bmatrix}1&x&x^2\\1&y&y^2\\1&z&z^2\\\end{bmatrix}
### 線性回歸
在這之前,需要先提一下線性回歸憔鬼。
線性回歸比較簡(jiǎn)單,從二維的空間比較容易從直觀上理解:給定了一組點(diǎn)侮叮,然后找到一條線能夠擬合這些點(diǎn)。這里所說的“點(diǎn)”就是我們拿到的樣本卸勺,“線”就是我們要找到的模型(或者說函數(shù))曙求。
線性回歸寫出來的樣子就是:
[g][http://latex.codecogs.com/png.latex?h(x)=x_0\theta_0+x_1\theta_1+x_2\theta_2+\ldots+x_n\theta_n]
用向量的方式表達(dá)就是:
[02]: http://latex.codecogs.com/png.latex?h(x)=\theta^TX
(http://latex.codecogs.com/png.latex?\theta)是我們的參數(shù)悟狱,(http://latex.codecogs.com/png.latex?X)是我們的樣本挤渐。從上面的公式我們能夠看到得问,線性回歸的結(jié)果的取值范圍是實(shí)數(shù)范圍。
它用來預(yù)測(cè)某事件的數(shù)值是沒問題的漓骚,那么它可不可以用來做分類的判斷呢认境,也就是能不能用于回答“是”或“否”的問題呢亩冬?
從概率的角度看覆享,我們?nèi)绻軌蛳朕k法將這個(gè)線性回歸的值轉(zhuǎn)變成一個(gè)概率值撒顿,也就是把它弄到$[0,1]$這個(gè)范圍內(nèi)凤壁,不是就可以了嗎?就變成了通過回答“是的概率有多大”來間接回答“是”或“否”的問題免绿。
### 利用線性回歸的值來回答“是”或“否”
在這,我們先拋開“怎么把線性回歸的值弄到$[0,1]$之間”這個(gè)問題迹卢。我們先來看一下我們關(guān)心的“是否”問題本身。
還是從概率的角度喻杈,我們可以將“是的概率”看作“事件發(fā)生的概率”筒饰,“回答否的概率”看作“事件不發(fā)生的概率”。那么谬晕,就可以將“事件發(fā)生的概率”設(shè)為$P$,而“事件不發(fā)生的概率”設(shè)為$1-P$雷滋。
實(shí)際上焕檬,我到現(xiàn)在還有一點(diǎn)不太明白大神們是如何想到要做下面這個(gè)操作的(我能想到的就是看起來$P$和$1-P$都是操作同一個(gè)數(shù)值、而$P$又在$[0,1]$之間幢妄,所以直覺上會(huì)利用它們的比值):
$$ \frac{P}{1-P} $$
當(dāng)$P \to 0$時(shí)忍法,這個(gè)的結(jié)果是$\to 0$;當(dāng)$P \to 1$時(shí)榕吼,這個(gè)的結(jié)果是$\to \infty$饿序。所以現(xiàn)在我們?cè)倏磩偛盘岬降木€性回歸的結(jié)果范圍,我們已經(jīng)有了一半了:$[0,\infty]$羹蚣。
那么剩下的一半呢原探?我理解,這又是大神們的直覺了顽素,利用了$ln$函數(shù)咽弦,得到:
$$\ln(\frac{P}{1-P})$$
因?yàn)?\frac{P}{1-P}$是在$[0,\infty]$的,所以正好是$log$函數(shù)標(biāo)準(zhǔn)的定義域胁出,然后就得到了其標(biāo)準(zhǔn)的值域:$[-\infty,\infty]$型型,也就剛好是我們線性回歸的結(jié)果范圍了。于是全蝶,我們就可以得到:
$$\ln(\frac{P}{1-P})=\theta^TX $$
$$\implies \frac{P}{1-P} = e^{\theta^TX}$$
$$\implies P = (1-P)e^{\theta^TX}$$
$$\implies P = \frac{1}{1+e^{-\theta^TX}} $$
然后我們令$z(X) = -\theta^TX$闹蒜,就得到了:
$$P = \frac{1}{1+e^z}$$
這個(gè)就是我們常見的sigmod函數(shù)了。
現(xiàn)在我們能夠利用線性回歸的值來回答“事件發(fā)生的概率”這個(gè)問題了抑淫。
那么剩下的問題就是我們?nèi)绾握业?\theta$這個(gè)參數(shù)呢绷落?
### 找尋我們的參數(shù)$\theta$
現(xiàn)在,我們有了計(jì)算“事件發(fā)生概率”的計(jì)算式始苇,我們也有了一些樣本數(shù)據(jù)砌烁。觀察這個(gè)計(jì)算式,我們就差那個(gè)$\theta$了埂蕊。
那么往弓,“那個(gè)$\theta$是什么”其實(shí)直觀上一下子能想到這個(gè)問題的意思也就是“我們有了一組樣本,要怎么計(jì)算出那個(gè)$\theta$呢蓄氧?”。這里槐脏,我們需要提一下極大似然(MLE)喉童。
>極大似然
剛才的問題可以反過來想成是:“什么$\theta$值能夠讓我最有可能得到現(xiàn)在這些樣本?”顿天。用正式些的說法就是堂氯,“找到$\theta$使出現(xiàn)現(xiàn)有樣本可能性最大”。這就是極大似然估計(jì)(MLE)的主要思想牌废。
用概率中的條件概率表達(dá)式寫出來就是:
$$P(x^{(1)},x^{(2)},x^{(3)},\ldots,x^{(n)}|\theta)$$
我們這里有一個(gè)假設(shè):我們的樣本是獨(dú)立同分布的(也就是說任何兩個(gè)樣本之間的出現(xiàn)沒有聯(lián)系咽白、各自獨(dú)立出現(xiàn)),并且這些樣本能夠代表總體樣本鸟缕。
那么上面這個(gè)等式就可以寫成:
$$P(x^{(1)}|\theta)P(x^{(2)}|\theta)P(x^{(3)}|\theta) \ldots P(x^{(n)}|\theta)$$
$$\implies \prod\_{i=1}^n P(x^{(i)}|\theta)$$
其實(shí)是所有樣本聯(lián)合概率分布晶框。
在這里排抬,對(duì)于樣本$x^{(i)}$,它的概率預(yù)測(cè)值我們可以寫成 $P(x^{(i)})$授段,我們先不將$\theta$寫出來蹲蒲。由于我們的分類問題是二分類,也就是結(jié)果等于1或者0侵贵。那么表示出來就是$y^{(i)} = 1$ 或 $y^{(i)} = 0$届搁。那么這個(gè)概率預(yù)測(cè)值可以寫成:
對(duì)于樣本$x^{(i)}$,有:
$$P(y^{(i)} = 1|x^{(i)})^{y^{(i)}}\ast P(y^{(i)} = 0|x^{(i)})^{1-y^{(i)}}$$
當(dāng)$y^{(i)} = 1$時(shí)窍育,上式等于$P(y^{(i)} = 1|x^{(i)})$卡睦;當(dāng) $y^{(i)} = 0$時(shí),上式等于$P(y^{(i)} = 0|x^{(i)})$(我們的$\theta$是在這個(gè)$P()$中的漱抓,邏輯回歸的公式:$P(X)=\frac{1}{1+e^{-\theta^{T}X}}$)表锻。
結(jié)合極大似然的思想,我們就可以得到:
$$\prod\_{i=1}^nP(y^{(i)}=1|x^{(i)})^{y^{(i)}}\ast P(y^{(i)}=0|x^{(i)})^{1-y^{(i)}}$$
現(xiàn)在辽旋,“極大”就是要求“最大”浩嫌、求“Max”,也就是求上式的“Max”补胚。這時(shí)码耐,我們又可以對(duì)其用對(duì)數(shù)函數(shù)來做一步轉(zhuǎn)換。
>這里用對(duì)數(shù)函數(shù)做轉(zhuǎn)換的主要原因是溶其,要想求“Max”或是“Min”骚腥,得是凸函數(shù)(convex)或是凹函數(shù)才行。然而上面的式子是非凸的(non-convex)瓶逃,也是非凹的束铭。通過用對(duì)數(shù)函數(shù)轉(zhuǎn)換后的結(jié)果是convex的。
轉(zhuǎn)換后的結(jié)果是:
$$ \log(\prod\_{i=1}^nP(y^{(i)}=1|x^{(i)})^{y^{(i)}}\ast P(y^{(i)}=0|x^{(i)})^{1-y^{(i)}}) $$
也就是對(duì)這個(gè)式子求“Max”厢绝。但它是convex的契沫,求“min”要更好一點(diǎn)。就將這個(gè)“求Max”的問題轉(zhuǎn)換為求它的對(duì)偶問題求“Min”:$min(-\log())$昔汉,而$-\log()$通過對(duì)數(shù)函數(shù)的性質(zhì)就可以得到:
$$J(\theta) = \frac{1}{n}\ast \sum\_{i=1}^n\underbrace{y^{(i)}\log(h(x^{(i)}))+(1-y^{(i)})\log(1-h(x^{(i)}))}\_{h(x^{(i)})=\frac{1}{1+e^{-\theta^{T}X^{(i)}}}}$$
到這里懈万,可以看到這就是邏輯回歸的Cost Function了(在這里還沒考慮正則化項(xiàng))。通過對(duì)這個(gè)式子求解“Min”靶病,得到“min”時(shí)的參數(shù)就是我們要找尋的參數(shù)了会通。
那么從剛才的過程中可以得知,找到那個(gè)“Min”值的時(shí)候娄周,我們得到的參數(shù)就是我們想要的$\theta$涕侈。那我們?nèi)绾握业竭@個(gè)“Min”值?
在這里煤辨,這個(gè)問題不深入記錄裳涛。在新的一篇文章里專門來記錄幾種找到這個(gè)“Min”值木张,這樣安排或許更好一點(diǎn)。這里只提一下常用调违、常聽到的一些:
- 批量梯度下降
- 隨機(jī)梯度下降
- 擬牛頓法
另外還有一個(gè)很重要的:正則化窟哺。
### 對(duì)邏輯回歸的一點(diǎn)感受
通過把這整個(gè)過程理一遍后,對(duì)于邏輯回歸的一些特點(diǎn)也有了一些理解技肩。這些之前只是聽別人且轨、看文章這么說,但其實(shí)理解不夠虚婿。這下感覺自己對(duì)這些特點(diǎn)的理解又深了一些旋奢。
- 在樣本數(shù)較多時(shí)比較好。因?yàn)樗ㄟ^極大似然來推導(dǎo)出cost function然痊,而極大似然的思想中有“現(xiàn)有樣本可以代表總體樣本”這一點(diǎn)至朗。那么,總體樣本當(dāng)然是很多的剧浸,要想代表總體锹引,那自然而然現(xiàn)有樣本數(shù)是越多越能代表總體了。而且唆香,極大似然是點(diǎn)估計(jì)的方法嫌变,對(duì)參數(shù)、模型沒有先驗(yàn)在里面躬它,所以樣本數(shù)越多腾啥,知道的信息就越多,就越知道總體樣本的“長(zhǎng)相”是什么樣子冯吓。
- 用于訓(xùn)練的特征之間最好相互聯(lián)系較少倘待,也就是參數(shù)之間盡量獨(dú)立。這一點(diǎn)自己感覺有一點(diǎn)取決于用什么方法去找“Min”组贺。比如梯度下降中凸舵,是對(duì)每個(gè)參數(shù)$\theta\_j$求偏導(dǎo)。那么在對(duì)某個(gè)$\theta$求偏導(dǎo)時(shí)失尖,其它參數(shù)是無差別全部參與進(jìn)來贞间。個(gè)人理解這就相當(dāng)于切斷了與其它參數(shù)的聯(lián)系。如果這個(gè)$\theta$跟其它參數(shù)是緊密聯(lián)系的雹仿,這么一切,聯(lián)系斷掉整以,就有點(diǎn)呵呵了胧辽;那如果是沒有聯(lián)系的,就正好符合這過程公黑。
- 好解釋邑商。因?yàn)樗墓街?Z(X)=\theta^TX$本身是一個(gè)線性回歸摄咆。線性回歸的思路就容易弄清楚,然后它哪個(gè)參數(shù)人断、哪個(gè)特征起的作用大也很容易弄清楚吭从。當(dāng)然,這也需要在指定特征的時(shí)候恶迈,盡可能使特征涩金、特征值的含義明確。
- 容易并行化暇仲。這跟兩個(gè)地方有關(guān)系步做,一是邏輯回歸預(yù)測(cè)公式本身,另一個(gè)是求“Min”的方法奈附。它本身的公式中$\theta^TX$全度,是一個(gè)向量,可以并行計(jì)算的斥滤;另外将鸵,還是假設(shè)用的梯度下降,梯度下降中求解每個(gè)$\theta\_j$偏導(dǎo)的時(shí)候佑颇,也是可以并行計(jì)算的顶掉。
### 參考
- [機(jī)器學(xué)習(xí)-邏輯回歸與最大似然估計(jì)](http://www.hanlongfei.com/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/2015/08/05/mle)
- [極大似然估計(jì)](https://www.cnblogs.com/liliu/archive/2010/11/24/1886110.html)