浅入深出被人看扁的逻辑回归!
好像在各種機器學習入門教程中,邏輯回歸模型(Logistic/Logit Regression)經常被拿來作為入門的機器學習模型,比如我家的Andrew Ng就是這樣做的。
看起來,邏輯回歸模型實在太簡單,甚至容易被認為是一個拍腦袋想出的na?ve的模型。今天,小夕就非要把它當做寶貝好好夸一夸,哼哼哼...
?
流水賬一樣的看似沒毛病而且簡單易懂的講法是這樣的:
淺入
怎么將n維向量X=[x1,x2,...,xn]映射成一個點y呢?很容易想到就是將向量X與另一個向量做內積啦。這個向量我們稱為參數θ,即θ=[θ1, θ2?,..., θn]。所以做內積就是X*θ’【即行向量X乘以(行向量θ的轉置)】得到一個數。
?
但是如果X=[0, 0, 0, ..., 0]時,輸出y應等于1,那怎么辦呢?這時X*θ’肯定也是0 呀。。。所以為了解決這個問題,要再加個常數b,所以現在是X*θ’+b。我們為了看起來好看簡潔,在X的最開頭加個1,把b扔到θ的最開頭,所以就成了新版的X*θ’,當然此時X=[1,X], θ=[b,θ]
?
好像還不行,因為這時的值域是(-∞,+∞)呀,可是我們要得到的是0或者1,模型給我輸出一個100000是怎么回事。。。所以要把值域限制一下啦,將值域正負無窮改為(0, 1),怎么改呢?出現了下面這個sigmoid函數:
?
?
在這個函數的限制下,哪怕輸入為正無窮,輸出也不會大于1,同樣輸入為負無窮,輸出也不會為小于-1。所以現在模型成了:
sigmoid(X*θ’)。
?
這時,我們只需要認為當模型輸出值大于0.5時,就認為是邏輯1;當輸出值小于0.5時,就認為是邏輯0。預測函數(假設函數)完成!即htheta(X)= sigmoid(X*θ’),有了這個函數,我們就可以給樣本貼類別標簽啦。
?
好咯,然后還差什么?當然是訓練模型用的損失函數/代價函數/目標函數啦。損失函數是什么呢?
?
?
誒?看起來很不錯呀,仔細一看也能模模糊糊的看明白,反正當類別預測值與實際類別完全對起來的時候,J(θ)確實等于0的。
?
所以最后要干嘛呢?當然是得到我們的迭代公式然后梯度下降法啦。一求導就得到了下面的公式
?
?
然后坐等J(θ)收斂,從而得到最優模型參數θ了...
?
上面的講解看起來沒毛病呀~難道每一步真的都是這么恰好的信手拈來的嗎?
前方超高能預警!
深出
?
慢慢來~從回歸開始講起啦。
?
回歸的含義在高中就學過了,不過可能被老師解釋的比較na?ve(都忘了老師怎么講的了。。。)。一個抽象而準確的描述是“回歸即為兩個或多個隨機變量之間的相關關系建立數學模型”。設想一下,如果我們僅考慮兩個隨機變量,并且將其中一個隨機變量看作機器學習的輸入,也就是特征向量X,將另一個隨機變量看作機器學習的輸出,也就是類別預測y。那么...回歸的意思是...
?
用一個數學模型直接描繪出X到y的映射關系!
?
如果還不懂的話,想一想我們之前的樸素貝葉斯模型是怎么用X訓練模型求y的?是不是用貝葉斯定理呀~也就是下面這樣:
?
?
等式左邊就是隨機變量y,而等式右邊并不是直接用X表示的,而是用其他東西間接描述y。
?
所以!回歸就是要直接用X描繪出y!是直接!
?
當隨機變量X與隨機變量y呈線性關系時,如果我們要用回歸模型來描述這兩個隨機變量的關系,那么這里的回歸模型是什么樣子的呢?相信機智的你肯定想到啦,這里就是高中就學過的線性回歸模型:y=aX+b。
?
那么當隨機變量X與隨機變量y呈。。。邏輯關系時呢?(邏輯不就是0/1嘛),也就是說當隨機變量X取某值時,隨機變量Y為某一個邏輯值(0或1),那么這里的回歸模型是什么樣子的呢?相信機智的你肯定想到啦,這里就是大學都沒學過的邏輯回歸模型:?????=?????
?
hhhh,小夕太調皮是不是不太好吖~
?
其實我們仔細想一下,邏輯回歸模型是難以像線性回歸一樣直接寫出類似于y=aX+b這么簡潔的形式的,因為y的取值為離散的,只有0和1,所以要怎么表示呢?當然是用模型分別表示y取0的概率和y取1的概率了。也就是用模型表示出P(y=1|X)和P(y=0|X)。
?
其實為某種形式的回歸建立數學模型并不是一件容易的事情,經過先烈的曲折探索,得出了一個神奇的公式,稱為logit公式:
?
?
誒?看似簡潔,然而有什么用呢?里面既沒有X也沒有y呀。。。
?
先等等,還記得深度學習中經常加在神經網絡的頂層來求后驗概率P(y=j|X)的softmax函數嗎?對就是下面這個熟悉的函數:
?
?
對于我們的二分類問題來說,有P(y=0|X)+P(y=1|X)=1,那么如果我們令logit公式中的Q=P(y=0|X)呢?然后P(y=0|X)用softmax函數表示呢?是不是突然被下面推導的過程和結果驚呆了!!!:
?
?
而xTΔw的值不就是反映感知機模型的輸出嘛!(即xTΔw>0則預測類別為正,xTΔw<0則預測類別為負)
?
我們再把xTΔw整理的好看一點,變成更正常的形式:w·x+b。然后就可以得到下面的結論!!!:
?
?
這就是我們前面苦苦尋找的邏輯回歸模型!看,隨機變量X與隨機變量Y的關系竟然直接納入了一個模型下面!也就是說后驗概率直接用隨機變量X表示了出來!而不是像貝葉斯定理一樣間接表示后驗概率。
?
有了上面直接表示的后驗概率,于是建立似然函數,通過極大似然估計來確定模型的參數。因此設:
?
?
似然函數就表示為
?
對數似然函數即:
?
?
也就是本文的“淺入”環節的損失函數啦,原來是正兒八經的一步步推出來的!剩下的就交給梯度下降法優化出模型參數吧!
?
好咯,小夕只能幫你把邏輯回歸模型挖的這么深啦,據說有更深的理解的,然而小夕已經駕馭不了了T_T。
總結
以上是生活随笔為你收集整理的浅入深出被人看扁的逻辑回归!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如果你跟夕小瑶恋爱了...(下)
- 下一篇: Shield——开源的移动端页面模块化开