現(xiàn)在前面
希望對(duì)這段時(shí)間的機(jī)器學(xué)習(xí)做一個(gè)溫故與總結(jié),于是有了寫(xiě)52ML系列博客的想法
邏輯回歸解決什么問(wèn)題
邏輯回歸是一個(gè)分類(lèi)模型,輸出樣本屬于某個(gè)類(lèi)別的概率,但個(gè)人認(rèn)為它也是一個(gè)回歸問(wèn)題,因?yàn)檫@個(gè)概率需要一個(gè)基于回歸產(chǎn)生的分?jǐn)?shù)。
什么意思呢?比如現(xiàn)在要做一個(gè)模型:根據(jù)毛發(fā)、耳朵長(zhǎng)短、抓不抓老鼠,可不可愛(ài)等信息判斷一個(gè)動(dòng)物是不是貓,這看上去是一個(gè)二分類(lèi)問(wèn)題,要么是要么不是,輸出為:1 or -1。但是我們換一個(gè)問(wèn)法,判斷這個(gè)動(dòng)物是貓的概率?那么輸出應(yīng)該是一個(gè)[0,1]之間的值。這就跟我們一般的二分類(lèi)問(wèn)題有些不一樣了,學(xué)術(shù)上稱(chēng)作軟二分類(lèi)問(wèn)題('soft' binary classification),這種問(wèn)題交給邏輯回歸來(lái)處理就對(duì)了。
邏輯回歸模型思路
那么邏輯回歸是如何解決這種問(wèn)題呢?思路是我們可以利用毛發(fā)、耳朵長(zhǎng)短、抓不抓老鼠,可不可愛(ài)等特征算出某種類(lèi)似得分的東西,得分越高越有可能是貓對(duì)不對(duì)?那么接下來(lái),再將得分按某種操作轉(zhuǎn)化為百分比,就得到了概率。
那么問(wèn)題就變成了兩部分:算得分,求概率。
算得分,最直接的想法就是利用線性回歸模型
就是我們的得分。當(dāng)然
是待求的模型參數(shù),我們先放在那里,下面考慮第二部分。
如何將得分轉(zhuǎn)化為概率?注意到得分的取值可能是,而結(jié)果是
之間的概率值,這是一種映射關(guān)系,那么怎么找到這種映射關(guān)系呢?不用找了,前輩們告訴你sigmoid函數(shù)天然的完成了這種映射,函數(shù)長(zhǎng)這樣:
函數(shù)圖形長(zhǎng)圖1這樣:

sigmoid函數(shù)很好的將限制映射在
之間,得分越高,概率越高;相反得分越低,概率越低。
ok,現(xiàn)在我們有了邏輯回歸的基本模型思路了,下面開(kāi)始建立模型。
模型建立
考慮用平方誤差做代價(jià)函數(shù)
但是這個(gè)函數(shù)并不是凸函數(shù),無(wú)法用梯度下降找到最優(yōu)解。
最大似然
換一種考慮方式:
考慮數(shù)據(jù)集,想象上帝創(chuàng)造了這么一個(gè)函數(shù)
提供一種概率分布能夠產(chǎn)生這個(gè)數(shù)據(jù)集:
那么這個(gè)數(shù)據(jù)集的產(chǎn)生概率可以表示為:
如果我們找到了一個(gè)跟很像的函數(shù)
,那么也就代表我們求出了邏輯回歸的模型。這個(gè)函數(shù)
稱(chēng)作似然函數(shù) (likelihood)。
如何找到函數(shù)呢?
如果,那么
其中
而是上帝創(chuàng)造的,概率通常是很大,因此我們只要找到能讓
最大的那個(gè)
就可以了,這就是所謂的最大似然。
用數(shù)學(xué)的方法表示就是這樣:
tips:
根據(jù)sigmoid函數(shù)的特殊性:,因此當(dāng)
時(shí),
。
接下來(lái)將放置已久的帶入:
采用變換將連乘改成連加,并添加負(fù)號(hào)轉(zhuǎn)化為求最小值問(wèn)題,再引入一個(gè)求平均的操作:
帶入sigmoid函數(shù):
ok, 這是一個(gè)凸函數(shù),稱(chēng)作交叉熵誤差函數(shù)。
下面的操作不說(shuō)也知道,梯度下降擼起吧。。。
PS
這個(gè)ps挺大的。。。因?yàn)閮?nèi)容還有點(diǎn)多
上面的模型用的標(biāo)簽是,那么對(duì)于
這種情況呢?
只需將概率模型修改下:
合并后得到:
依然用極大似然:
依然取對(duì)數(shù)將連乘轉(zhuǎn)連加,并添加符號(hào)轉(zhuǎn)化為求最小值,再引入平均:
帶入sigmoid函數(shù)之后依舊梯度下降開(kāi)擼吧。。。
參考引用:
- 臺(tái)灣大學(xué)林軒田《機(jī)器學(xué)習(xí)基石》課程
- 《統(tǒng)計(jì)學(xué)習(xí)方法》——李航
- 七月在線課程