【機(jī)器學(xué)習(xí)基礎(chǔ)】Logistic回歸基礎(chǔ)

soft binary classification

Logistics回歸模型要解決的是分類問題,在之前的二元分類問題中,我們將數(shù)據(jù)分成正例和負(fù)例,但是像PLA算法一樣,用單位階躍函數(shù)來(lái)處理的這種瞬間跳躍的過(guò)程有時(shí)很難處理。于是,我們希望能得到正例的概率值是多少。


logistic regression的假設(shè)

我們?cè)赑LA和線性回歸算法中都用數(shù)據(jù)的加權(quán)來(lái)計(jì)算一個(gè)分?jǐn)?shù)s,在logistic回歸中,我們用sigmoid函數(shù)來(lái)將這個(gè)分?jǐn)?shù)s轉(zhuǎn)化成0到1的概率值。



所以,用下面的h(x)來(lái)表示一個(gè)假設(shè),而這個(gè)logistic函數(shù)θ(x)就是θ(x)=1/[1+exp(-x)](該函數(shù)平滑且處處可微)。


logistic regression的訓(xùn)練誤差函數(shù)

我們?cè)O(shè)想目標(biāo)函數(shù)f(x) = P(+1|x),這里數(shù)據(jù)的正例和負(fù)例的概率分布其實(shí)是一個(gè)伯努利分布。那么,如果我們的假設(shè)h(x)要逼近f(x)函數(shù),那么對(duì)于訓(xùn)練數(shù)據(jù)D,由h構(gòu)成的似然度應(yīng)該近似等于從這個(gè)伯努利分布中抽取數(shù)據(jù)的概率。



那么我們要求的最終假設(shè)g就是使得這個(gè)似然度最大的h。



接下來(lái),我們來(lái)衡量這個(gè)可能性(likelihood),這里將數(shù)據(jù)的先驗(yàn)概率P(xi)化成灰色,因?yàn)樗鼘?duì)于所有的數(shù)據(jù)來(lái)說(shuō)都是一樣的,所以相當(dāng)于是一個(gè)常數(shù),整理一下,我們可以看到這個(gè)可能性正比于所有的h乘起來(lái)的結(jié)果(其中h(ynxn)包含了h(xi)和h(-xi)的情形)。

cross entropy error

下面的圖片告訴了我們,如何將這個(gè)可能性的式子進(jìn)行化簡(jiǎn),使得我們?cè)诤竺娴挠?jì)算變得容易。我們用θ(·)函數(shù)代替了h,將式子取對(duì)數(shù)使得乘積的形式變成求和的形式,最后再添一個(gè)負(fù)號(hào),將最大似然函數(shù)的形式變成了求解最小值的最優(yōu)化問題。



這里,我們定義了交叉熵誤差來(lái)衡量我們的訓(xùn)練誤差。


最小化誤差函數(shù)

我們得到了訓(xùn)練誤差的具體形式,由于這個(gè)訓(xùn)練誤差函數(shù)是可微并且是凸函數(shù),所以依照之前的思路,對(duì)這個(gè)函數(shù)求梯度。



我們要使得梯度為0,這里雖然我們得到了求取w的數(shù)學(xué)式子,但是這個(gè)式子并不是一個(gè)閉合的公式,無(wú)法像線性回歸一樣直接求解一個(gè)矩陣來(lái)得到解,那么如何找到滿足這個(gè)條件的w呢?

梯度下降法

讓我們回想一下PLA演算法中求w的過(guò)程,是通過(guò)錯(cuò)分的數(shù)據(jù)來(lái)一步一步修正的,從而得到最終的w。
這里,我們可以按照類似的思路,一步一步的去修正w,使得Ein的結(jié)果越來(lái)越小。
在logistic回歸中,Ein的式子是平滑的?,F(xiàn)在我們可以將這個(gè)Ein想象成一個(gè)山谷,我們要到達(dá)山谷的最低點(diǎn),就是要沿著當(dāng)前的梯度最大的方向每次邁出一小步,直到到達(dá)谷底,使得Ein最小,得到最佳解w。

線性近似

要確定一個(gè)w使得Ein最小,不可能一步到位,指導(dǎo)思路還是由繁化簡(jiǎn),用線性近似(linear approximation)的方式來(lái)解決問題,我們用多維度的泰勒展開公式來(lái)近似Ein,只要給定一個(gè)小的η,就可以近似這個(gè)Ein。



這里Ein(wt)和η都是已知的,Ein的梯度表示了下降的方向,也可以求出來(lái),唯一要考慮的就是最好的向量v該如何選擇。


梯度下降

對(duì)于v和Ein的梯度這兩個(gè)向量,使得其值是最小的方法就是讓v向量的方向和Ein的梯度的方向想法,這樣使得兩個(gè)向量的內(nèi)積是最小的,另外由于v的模是1,還需要有個(gè)歸一化的步驟。



由于η和▽Ein(wt)的模都是一個(gè)常數(shù),可以將其化簡(jiǎn)成為一個(gè)新的η',也可以用常數(shù)η來(lái)表示。



這樣我們就得到了logistic回歸求解最優(yōu)化解的步驟。

隨機(jī)梯度下降法(Stochastic Gradient Descent)

在上一小節(jié)的梯度下降法的介紹中,我們知道在每一輪迭代中,計(jì)算梯度時(shí)要把所有的點(diǎn)對(duì)梯度的共享都要計(jì)算出來(lái)m,如下圖所示:



這里在每一輪的時(shí)間復(fù)雜度都是O(N),這樣看起來(lái)是有些麻煩費(fèi)時(shí)的。那有沒有一種方法可以將每一輪的時(shí)間復(fù)雜度降為O(1)呢?
如上一節(jié),我們每一次的要更新的v都是要和所算的梯度是反方向的,但是我們能不能通過(guò)一個(gè)點(diǎn)(xn,yn)而不是N個(gè)點(diǎn)來(lái)得到這個(gè)v呢?
我們可以將求和再除以N的過(guò)程想象成一個(gè)隨機(jī)過(guò)程的平均,將這個(gè)期望用隨機(jī)的一個(gè)抽樣來(lái)代替。所以這里不是一個(gè)真正的梯度,而是在一個(gè)點(diǎn)上對(duì)err函數(shù)做偏微分,把整體的梯度看做是這個(gè)隨機(jī)過(guò)程的期望值。



這樣,我們可以將隨機(jī)梯度看做是真正的梯度減去隨機(jī)的噪聲,但是從期望值來(lái)說(shuō),可能和之前想要走的方向沒有太大差別。

所以我們得到了隨機(jī)梯度下降的方法,這種方法的優(yōu)點(diǎn)是比較簡(jiǎn)單,適合在線學(xué)習(xí)和大量的數(shù)據(jù)的情形,缺點(diǎn)是穩(wěn)定性不好,尤其是η太大的話,可能情況很糟糕,所以這里的η經(jīng)驗(yàn)上取0.1會(huì)比較好。



其最終的表達(dá)式如下:

參考資料

機(jī)器學(xué)習(xí)基石課程,林軒田,臺(tái)灣大學(xué)

轉(zhuǎn)載請(qǐng)注明作者Jason Ding及其出處
Github主頁(yè)(http://jasonding1354.github.io/)
CSDN博客(http://blog.csdn.net/jasonding1354)
簡(jiǎn)書主頁(yè)(http://www.itdecent.cn/users/2bd9b48f6ea8/latest_articles)

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

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

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