邏輯回歸 logistics regression

邏輯回歸 logistics regression 公式推導(dǎo)

邏輯回歸雖然名字里面有回歸,但是主要用來解決分類問題鞍爱。

一笋除、線性回歸(Linear Regression)

線性回歸的表達(dá)式:

線性回歸對于給定的輸入 x听隐,輸出的是一個數(shù)值 y 织咧,因此它是一個解決回歸問題的模型。

為了消除掉后面的常數(shù)項b懦底,我們可以令?

同時?

也就是說給x多加一項而且值恒為1,這樣b就到了w里面去了,直線方程可以化簡成為:

二聚唐、分類問題(Classification)

二分類問題就是給定的輸入 x丐重,判斷它的標(biāo)簽是0類還是1類。二分類問題是最簡單的分類問題杆查。我們可以把多分類問題轉(zhuǎn)化成一組二分類問題扮惦。比如最簡單的是OVA(One-vs-all)方法,比如一個10分類問題亲桦,我們可以分別判斷輸入 x?是否屬于某個類崖蜜,從而轉(zhuǎn)換成10個二分類問題。

因此客峭,解決了二分類問題豫领,相當(dāng)于解決了多分類問題。

三舔琅、如何用連續(xù)的數(shù)值去預(yù)測離散的標(biāo)簽值呢等恐?

線性回歸的輸出是一個數(shù)值,而不是一個標(biāo)簽备蚓,顯然不能直接解決二分類問題课蔬。那我如何改進(jìn)我們的回歸模型來預(yù)測標(biāo)簽?zāi)兀?/p>

一個最直觀的辦法就是設(shè)定一個閾值,比如0郊尝,如果我們預(yù)測的數(shù)值 y > 0 二跋,那么屬于標(biāo)簽A,反之屬于標(biāo)簽B流昏,采用這種方法的模型又叫做感知(Perceptron)扎即。

另一種方法,我們不去直接預(yù)測標(biāo)簽横缔,而是去預(yù)測標(biāo)簽為A概率铺遂,我們知道概率是一個[0,1]區(qū)間的連續(xù)數(shù)值,那我們的輸出的數(shù)值就是標(biāo)簽為A的概率茎刚。一般的如果標(biāo)簽為A的概率大于0.5襟锐,我們就認(rèn)為它是A類,否則就是B類膛锭。這就是我們的這次的主角邏輯回歸模型?(Logistics Regression)粮坞。

四、邏輯回歸(logistics regression)

明確了預(yù)測目標(biāo)是標(biāo)簽為A的概率初狰。

我們知道莫杈,概率是屬于[0,1]區(qū)間。但是線性模型?f(x)=w^Tx ?值域是(-∞奢入,+∞ ) 筝闹。

我們不能直接基于線性模型建模。需要找到一個模型的值域剛好在[0,1]區(qū)間,同時要足夠好用关顷。

于是糊秆,選擇了我們的sigmoid函數(shù)。

它的表達(dá)式為:?

? ? ? ? ? ? ? ? ? ? ? ?\sigma (x)=\frac议双{1+e^{-x} }

它的圖像:

sigmoid函數(shù)

這個函數(shù)的有很多非常好的性質(zhì)痘番,一會兒你就會感受到。但是我們不能直接拿了sigmoid函數(shù)就用平痰,畢竟它連要訓(xùn)練的參數(shù) w 都沒得汞舱。

我們結(jié)合sigmoid函數(shù),線性回歸函數(shù)宗雇,把線性回歸模型的輸出作為sigmoid函數(shù)的輸入昂芜。于是最后就變成了邏輯回歸模型:

假設(shè)我們已經(jīng)訓(xùn)練好了一組權(quán)值w^T 。只要把我們需要預(yù)測的x代入到上面的方程逾礁,輸出的y值就是這個標(biāo)簽為1的概率说铃,我們就能夠判斷輸入數(shù)據(jù)是屬于哪個類別。

接下來就來詳細(xì)介紹嘹履,如何利用一組采集到的真實樣本腻扇,訓(xùn)練出參數(shù)w的值。

五砾嫉、邏輯回歸的損失函數(shù)(Loss Function)

損失函數(shù)就是用來衡量模型的輸出與真實輸出的差別幼苛。

假設(shè)只有兩個標(biāo)簽1和0, y的取值為0或1焕刮。我們把采集到的任何一組樣本看做一個事件的話舶沿,那么這個事件發(fā)生的概率假設(shè)為p。我們的模型y的值等于標(biāo)簽為1的概率也就是p配并。

P_{y=1} =\frac{1}{1+x^{-w^Tx} } =p

因為標(biāo)簽不是1就是0括荡,因此標(biāo)簽為0的概率就是:?P_{y=0}=1-p

我們把單個樣本看做一個事件溉旋,那么這個事件發(fā)生的概率就是:

這個函數(shù)不方便計算畸冲,它等價于:

解釋下這個函數(shù)的含義,我們采集到了一個樣本(x_{i} ,y_{i})?观腊。對這個樣本邑闲,它的標(biāo)簽是?y_{i}的概率是 p^{y_{i}}(1-p)^{1-y_{i}}。 (當(dāng)y=1梧油,結(jié)果是p苫耸;當(dāng)y=0,結(jié)果是1-p)儡陨。

如果我們采集到了一組數(shù)據(jù)一共N個褪子,

{(x_{1},y_{1}),(x_{2},y_{2}),…,(x_{N},y_{N})}量淌,這個合成在一起的合事件發(fā)生的總概率怎么求呢?其實就是將每一個樣本發(fā)生的概率相乘就可以了褐筛,即采集到這組樣本的概率:

注意P_{總}是一個函數(shù)类少,并且未知的量只有w(在p里面)叙身。

由于連乘很復(fù)雜渔扎,我們通過兩邊取對數(shù)來把連乘變成連加的形式,即:

其中信轿,?p=\frac{1}{1+e^{-w^{T}x}}

這個函數(shù)F(w)又叫做它的損失函數(shù)晃痴。損失函數(shù)可以理解成衡量我們當(dāng)前的模型的輸出結(jié)果,跟實際的輸出結(jié)果之間的差距的一種函數(shù)财忽。這里的損失函數(shù)的值等于事件發(fā)生的總概率倘核,我們希望它越大越好。但是跟損失的含義有點兒違背即彪,因此也可以在前面取個負(fù)號紧唱。

六、最大似然估計MLE(Maximum Likelihood Estimation)

我們在真實世界中并不能直接看到概率是多少隶校,我們只能觀測到事件是否發(fā)生漏益。也就是說,我們只能知道一個樣本它實際的標(biāo)簽是1還是0深胳。那么我們?nèi)绾喂烙媴?shù)wb的值呢绰疤?

最大似然估計MLE(Maximum Likelihood Estimation),就是一種估計參數(shù)w?的方法舞终。在這里如何使用MLE來估計w呢轻庆?

在上一節(jié),我們知道損失函數(shù)F(w)是正比于總概率P_{總}的敛劝,而F(w)又只有一個變量w余爆。也就是說,通過改變w的值夸盟,就能得到不同的總概率值P_{總}蛾方。那么當(dāng)我們選取的某個w^*剛好使得總概率P_{總}取得最大值的時候。我們就認(rèn)為這個w^*就是我們要求的w的值满俗,這就是最大似然估計的思想转捕。

現(xiàn)在我們的問題變成了,找到一個w^*唆垃,使得我們的總事件發(fā)生的概率五芝,即損失函數(shù)F(w)取得最大值邮利,這句話用數(shù)學(xué)語言表達(dá)就是:

七淘衙、 求F(w)的梯度?\Delta F(w)

梯度的定義

我們知道對于一個一維的標(biāo)量x,它有導(dǎo)數(shù)娱挨。

對一個多維的向量

來說,它的導(dǎo)數(shù)叫做梯度醉途,也就是分別對于它的每個分量求導(dǎo)數(shù)?

接下來請拿出紙筆矾瑰,一起動手來推導(dǎo)出\Delta F(w)的表達(dá)式。請盡量嘗試自己動手推導(dǎo)出來隘擎,如果哪一步不會了再看我的推導(dǎo)殴穴。

七(二)、求梯度的推導(dǎo)過程

為了求出F(w)的梯度货葬,我們需要做一些準(zhǔn)備工作采幌。原諒我非常不喜歡看大串的數(shù)學(xué)公式,所以我盡可能用最簡單的數(shù)學(xué)符號來描述震桶。當(dāng)然可能不夠嚴(yán)謹(jǐn)休傍,但是我覺得更容易看懂。

然后求1-p的值:

p是一個關(guān)于變量 w的函數(shù)蹲姐,我們對p求導(dǎo)磨取,通過鏈?zhǔn)角髮?dǎo)法則,慢慢展開可以得:

上面都是我們做的準(zhǔn)備工作柴墩,總之我們得記酌ρ帷:?

并且可以知道?

下面我們正式開始對F(w)求導(dǎo),求導(dǎo)的時候請始終記住拐邪,我們的變量只有w慰毅,其他的什么y_n,x_n都是已知的,可以看做常數(shù)扎阶。

終于汹胃,我們求出了梯度?\Delta F(w)的表達(dá)式了,現(xiàn)在我們再來看看它長什么樣子:

它是如此簡潔優(yōu)雅东臀,這就是我們選取sigmoid函數(shù)的原因之一着饥。當(dāng)然我們也能夠把p再展開,即:

八惰赋、梯度下降法(GD)與隨機(jī)梯度下降法(SGD)

現(xiàn)在我們已經(jīng)解出了損失函數(shù)F(w)在任意 w處的梯度了宰掉,可是我們怎么算出來w^*呢? 回到之前的問題赁濒,我們現(xiàn)在要求損失函數(shù)取最大值時候的w^*的值:

梯度下降法(Gradient Descent)轨奄,可以用來解決這個問題。核心思想就是先隨便初始化一個w_0拒炎,然后給定一個步長?\eta 挪拟,通過不斷地修改w_t?-> w_{t+1},從而最后靠近到達(dá)取得最大值的點击你,即不斷進(jìn)行下面的迭代過程玉组,直到達(dá)到指定次數(shù)谎柄,或者梯度等于0為止。

隨機(jī)梯度下降法(Stochastic Gradient Descent)惯雳,如果我們能夠在每次更新過程中朝巫,加入一點點噪聲擾動,可能會更加快速地逼近最優(yōu)值石景。在SGD中劈猿,我們不直接使用\Delta F(w),而是采用另一個輸出為隨機(jī)變量的替代函數(shù)?

當(dāng)然鸵钝,這個替代函數(shù)G(w)需要滿足它的期望值等\Delta F(w)糙臼,相當(dāng)于這個函數(shù)圍繞著\Delta F(w)的輸出值隨機(jī)波動。

在這里我先解釋一個問題:為什么可以用梯度下降法恩商?

因為邏輯回歸的損失函數(shù)L是一個連續(xù)的凸函數(shù)(conveniently convex)。這樣的函數(shù)的特征是必逆,它只會有一個全局最優(yōu)的點怠堪,不存在局部最優(yōu)。對于GD跟SGD最大的潛在問題就是它們可能會陷入局部最優(yōu)名眉。然而這個問題在邏輯回歸里面就不存在了粟矿,因為它的損失函數(shù)的良好特性,導(dǎo)致它并不會有好幾個局部最優(yōu)损拢。當(dāng)我們的GD跟SGD收斂以后陌粹,我們得到的極值點一定就是全局最優(yōu)的點,因此我們可以放心地用GD跟SGD來求解福压。

好了掏秩,那我們要怎么實現(xiàn)學(xué)習(xí)算法呢?其實很簡單荆姆,注意我們GD求導(dǎo)每次都耿直地用到了所有的樣本點蒙幻,從1一直到N都參與梯度計算。

在SGD中胆筒,我們每次只要均勻地邮破、隨機(jī)選取其中一個樣本(x_i,y_i),用它代表整體樣本,即把它的值乘以N仆救,就相當(dāng)于獲得了梯度的無偏估計值抒和,即?

因此SGD的更新公式為:

這樣我們前面的求和就沒有了,同時\eta N都是常數(shù)彤蔽,N的值剛好可以并入\eta 當(dāng)中,因此SGD的迭代更新公式為:

其中(x_i,y_i)是對所有樣本隨機(jī)抽樣的一個結(jié)果摧莽。

九、邏輯回歸的可解釋性

邏輯回歸最大的特點就是可解釋性很強(qiáng)铆惑。

在模型訓(xùn)練完成之后范嘱,我們獲得了一組n維的權(quán)重向量 w 跟偏差 b送膳。

對于權(quán)重向量 w,它的每一個維度的值丑蛤,代表了這個維度的特征對于最終分類結(jié)果的貢獻(xiàn)大小叠聋。假如這個維度是正,說明這個特征對于結(jié)果是有正向的貢獻(xiàn)受裹,那么它的值越大碌补,說明這個特征對于分類為正起到的作用越重要。

對于偏差b (Bias)棉饶,一定程度代表了正負(fù)兩個類別的判定的容易程度厦章。假如b是0,那么正負(fù)類別是均勻的照藻。如果b大于0袜啃,說明它更容易被分為正類,反之亦然幸缕。

根據(jù)邏輯回歸里的權(quán)重向量在每個特征上面的大小群发,就能夠?qū)τ诿總€特征的重要程度有一個量化的清楚的認(rèn)識,這就是為什么說邏輯回歸模型有著很強(qiáng)的解釋性的原因发乔。

十熟妓、決策邊界

補(bǔ)充評論里的一個問題,邏輯回歸的決策邊界是否是線性的栏尚,相當(dāng)于問曲線:

是不是的線性的起愈,我們可以稍微化簡一下上面的曲線公式,得到:

我們得到了一個等價的曲線译仗,顯然它是一個超平面(它在數(shù)據(jù)是二維的情況下是一條直線)抬虽。

十一、總結(jié)

終于一切都搞清楚了古劲,現(xiàn)在我們來理一理思路斥赋,首先邏輯回歸模型長這樣:

其中我們不知道的量是w,假設(shè)我們已經(jīng)訓(xùn)練好了一個?w^*, 我們用模型來判斷 x_i的標(biāo)簽?zāi)夭亢芎唵伟探#苯訉?img class="math-inline" src="https://math.jianshu.com/math?formula=x_i" alt="x_i" mathimg="1">代入y中,求出來的值就是x_i的標(biāo)簽是1的概率闷堡,如果概率大于0.5隘膘,那么我們認(rèn)為它就是1類,否則就是0類杠览。

那怎么得到w^*呢弯菊?

如果采用隨機(jī)梯度下降法的話,我們首先隨機(jī)產(chǎn)生一個w的初始值?w_0,然后通過公式不斷迭代從而求得w^*的值:

每次迭代都從所有樣本中隨機(jī)抽取一個(x_i,y_i)來代入上述方程踱阿。


出處:https://zhuanlan.zhihu.com/p/44591359

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末管钳,一起剝皮案震驚了整個濱河市钦铁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌才漆,老刑警劉巖牛曹,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異醇滥,居然都是意外死亡黎比,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進(jìn)店門鸳玩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來阅虫,“玉大人,你說我怎么就攤上這事不跟⊥堑郏” “怎么了?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵躬拢,是天一觀的道長躲履。 經(jīng)常有香客問我,道長聊闯,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任米诉,我火速辦了婚禮菱蔬,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘史侣。我一直安慰自己拴泌,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布惊橱。 她就那樣靜靜地躺著蚪腐,像睡著了一般。 火紅的嫁衣襯著肌膚如雪税朴。 梳的紋絲不亂的頭發(fā)上回季,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天,我揣著相機(jī)與錄音正林,去河邊找鬼泡一。 笑死,一個胖子當(dāng)著我的面吹牛觅廓,可吹牛的內(nèi)容都是我干的鼻忠。 我是一名探鬼主播,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼杈绸,長吁一口氣:“原來是場噩夢啊……” “哼帖蔓!你這毒婦竟也來了矮瘟?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤塑娇,失蹤者是張志新(化名)和其女友劉穎澈侠,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體钝吮,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡埋涧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了奇瘦。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片棘催。...
    茶點故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖耳标,靈堂內(nèi)的尸體忽然破棺而出醇坝,到底是詐尸還是另有隱情,我是刑警寧澤次坡,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布呼猪,位于F島的核電站,受9級特大地震影響砸琅,放射性物質(zhì)發(fā)生泄漏宋距。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一症脂、第九天 我趴在偏房一處隱蔽的房頂上張望谚赎。 院中可真熱鬧,春花似錦诱篷、人聲如沸壶唤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽闸盔。三九已至,卻和暖如春琳省,著一層夾襖步出監(jiān)牢的瞬間迎吵,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工岛啸, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留钓觉,地道東北人。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓坚踩,卻偏偏與公主長得像荡灾,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,864評論 2 354

推薦閱讀更多精彩內(nèi)容