机器学习入门系列三(关键词:逻辑回归,正则化)
機(jī)器學(xué)習(xí)入門(mén)系列三(關(guān)鍵詞:邏輯回歸,正則化)
目錄(?)[+]
一、邏輯回歸
1.邏輯回歸
什么是邏輯回歸問(wèn)題,通俗地講就是監(jiān)督下的分類(lèi)問(wèn)題。通過(guò)前面的學(xué)習(xí),我們已經(jīng)掌握如何解決線性(非線性)回歸的問(wèn)題。那面對(duì)分類(lèi)問(wèn)題我們是否也可以用線性回歸呢?簡(jiǎn)單起見(jiàn),我們先討論二元分類(lèi),首先讓我們來(lái)看一個(gè)例子,腫瘤的大小與是否是惡性的關(guān)系,其中紅色的×表示腫瘤大小,對(duì)應(yīng)的y軸表示是否為惡性。
我們對(duì)數(shù)據(jù)進(jìn)行線性回歸,得到了一條很完美的直線。我們可以規(guī)定,當(dāng)擬合出來(lái)的y值大于0.5時(shí),為惡性1;當(dāng)y值小于0.5時(shí),為良性0。這一切看起來(lái)似乎很合理,當(dāng)我們?cè)黾右粋€(gè)數(shù)據(jù),即有一個(gè)腫瘤非常大,顯然它是惡性的,但是再用線性回歸時(shí),我們可以發(fā)現(xiàn)為了去更好地?cái)M合,直線的斜率變低,0.5不再是惡性與良性的分界線。除了這個(gè)問(wèn)題之外,我們知道y的可取值應(yīng)該是[0,1],而采用線性回歸我們發(fā)現(xiàn)y的可取值是[?∞,+∞]。這一系列的問(wèn)題就促使我們希望尋求一個(gè)新的方法來(lái)解決分類(lèi)問(wèn)題。
2.假設(shè)表示
在線性回歸問(wèn)題中,我們定義了
hθ(x)=θTx(1) 在分類(lèi)問(wèn)題中,我們改變?cè)摵瘮?shù),增加一個(gè)作用函數(shù),即 hθ(x)=g(θTx)(2) 其中g(z)為sigmoid函數(shù) g(z)=11+e?z(3)那么把式(3)代入式(2),得 hθ(x)=11+e?θTx(4) 為什么要使用sigmoid函數(shù)?有一系列的數(shù)學(xué)原因,感興趣的可以搜索廣義線性模型,在這里就不闡述原因了。我們來(lái)直觀地感受一下sigmoid函數(shù),當(dāng)z→?∞時(shí),g→0;當(dāng)z→+∞時(shí),g→1。
下面我們對(duì)hθ(x)輸出的結(jié)果做一個(gè)解釋。由于它的取值范圍,我們可以把它理解為概率。若hθ(x)=0.7,在二元分類(lèi)(本例)中即表示腫瘤在輸入變量x下為惡性(y=1)的概率為70%。由于是二元分類(lèi),y取值不是0就是1,因此腫瘤為良性(y=0)的概率為1?70%=30%。
由于sigmoid函數(shù)的性質(zhì),且hθ(x)∈(0,1),我們認(rèn)為當(dāng)hθ(x)≥0.5時(shí),我們把數(shù)據(jù)x預(yù)測(cè)為類(lèi)1即y=1;當(dāng)hθ(x)<0.5時(shí),我們把數(shù)據(jù)x預(yù)測(cè)為類(lèi)0即y=0。因此當(dāng)θTx≥0時(shí),預(yù)測(cè)為類(lèi)1;當(dāng)θTx<0時(shí),預(yù)測(cè)為類(lèi)0。
3.決策邊界
既然是分類(lèi)問(wèn)題,那么對(duì)于二分類(lèi),hθ(x)一定可以做出一個(gè)決策邊界,當(dāng)數(shù)據(jù)集在某一側(cè)時(shí)預(yù)測(cè)為類(lèi)1,在另一側(cè)時(shí)預(yù)測(cè)為類(lèi)0。為了更直觀地理解,我們來(lái)看一個(gè)這樣一個(gè)例子,訓(xùn)練集分為兩類(lèi),其中紅叉表示一類(lèi),藍(lán)圈表示另一類(lèi)。
對(duì)于
注:這里有人可能會(huì)有疑問(wèn),假如我們規(guī)定紅叉為類(lèi)0,藍(lán)圈為類(lèi)1,如果我們還是認(rèn)為θTx≥0即取得直線上方的點(diǎn)為為類(lèi)1,θTx<0即取得直線下方的點(diǎn)為類(lèi)0,那豈不是會(huì)分錯(cuò)?學(xué)完本系列,我將給出答案,這也是我曾經(jīng)學(xué)習(xí)ML時(shí)的困惑。
4.代價(jià)函數(shù)
在線性回歸問(wèn)題中,我們是這樣定義代價(jià)函數(shù)的
為了方便說(shuō)明我們令 J(θ)=1m∑i=1mCost(hθ(x(i)),y)(7) 其中 Cost(hθ(x(i)),y)=12(hθ(x(i))?y(i))2(8) 現(xiàn)在我們?cè)撨x擇一個(gè)Cost(hθ(x(i)),y),使得它是凸函數(shù)。函數(shù)的選擇方法和選擇原因涉及到比較復(fù)雜的數(shù)學(xué)原理,例如最大熵原理,感興趣的可以上網(wǎng)自行搜索,在這里就不詳細(xì)介紹了。總之我們找到了這樣的一個(gè)完美凸函數(shù)(只有全局最小值)。
Cost(hθ(x),y)={?log(hθ(x)),?log(1?hθ(x)),if?y=1if?y=0(9) 讓我們來(lái)直觀地感受一下。
我們可以看到,當(dāng)預(yù)測(cè)的為hθ(x)=1且實(shí)際的類(lèi)別也是y=1時(shí),代價(jià)函數(shù)取值為0;而當(dāng)預(yù)測(cè)的為hθ(x)=0且實(shí)際的類(lèi)別是0,意味著分類(lèi)完全錯(cuò)誤時(shí),代價(jià)函數(shù)是無(wú)窮大,這個(gè)錯(cuò)誤無(wú)法容忍。由于sigmoid函數(shù)的作用,hθ(x)∈(0,1),因此不會(huì)出現(xiàn)代價(jià)函數(shù)無(wú)意義的情況。這是y=1的情況,當(dāng)y=0時(shí),正好相反,我們可以自行畫(huà)出圖像,在這里就不進(jìn)行解釋了。
為了能用梯度下降法或其他方法尋找最優(yōu)θ,我們需要改變一下Cost(hθ(x),y)的形式,使之更方便計(jì)算,并代入到代價(jià)函數(shù)中即 J(θ)=?1m∑i=1m[y(i)log(hθ(x(i)))+(1?y(i))log(1?hθ(x(i)))](10) 下面要做的就是用梯度下降法最小化代價(jià)函數(shù),重復(fù)對(duì)所有的θj同時(shí)進(jìn)行更新,方法同線性回歸一樣。
θj=θj?α?θjJ(θ)(11) 其中 ?θjJ(θ)=1m∑i=1m(hθ(x(i))?y(i))x(i)j(12) 感興趣的可以自行推導(dǎo)上式(12),涉及偏導(dǎo)數(shù)最基本的知識(shí)。這么看起來(lái)邏輯回歸代價(jià)函數(shù)的偏導(dǎo)數(shù)和線性回歸代價(jià)函數(shù)的偏導(dǎo)數(shù)一致,其實(shí)不然,因?yàn)樵诰€性回歸中的hθ(x)為式(1),而邏輯回歸中的為式(2),邏輯回歸比線性回歸多了一個(gè)sigmoid函數(shù),這點(diǎn)切記!
5.其他優(yōu)化方法
除了梯度下降法,還有共軛梯度法、BFGS、L-BFGS等等,這幾種方法收斂速度快,不用選擇步長(zhǎng)α,但是非常復(fù)雜,很難理解。不過(guò)在matlab的庫(kù)中存在這幾種方法,我們可以通過(guò)函數(shù)fminunc自行調(diào)用,不過(guò)前提是計(jì)算好代價(jià)函數(shù)和梯度。在這里就不詳細(xì)介紹了。
6.多元分類(lèi)
讓我們舉一個(gè)例子更直觀地進(jìn)行描述。假如我們有數(shù)據(jù)集x,并且分為三類(lèi):1,2,3。訓(xùn)練時(shí)我們可以這樣做,先把注意力集中在類(lèi)1,于是當(dāng)前的任務(wù)是把類(lèi)別1與類(lèi)別2、3進(jìn)行分類(lèi);然后再把注意力集中在類(lèi)2,于是當(dāng)前的任務(wù)是把類(lèi)別2與類(lèi)別1、3進(jìn)行分類(lèi);最后把注意力集中在類(lèi)3,于是當(dāng)前的任務(wù)是把類(lèi)別3與類(lèi)別1、2進(jìn)行分類(lèi)。這樣就把多元分類(lèi)問(wèn)題轉(zhuǎn)化為二元分類(lèi)問(wèn)題,各個(gè)擊破。現(xiàn)在我們得到了三個(gè)分類(lèi)器,三組θ。若給定一個(gè)未知類(lèi)別的數(shù)據(jù),通過(guò)計(jì)算hθj(x),對(duì)于第一個(gè)分類(lèi)器(j=1),我們得到的是未知類(lèi)別是類(lèi)1的概率;對(duì)于第二個(gè)分類(lèi)器(j=2),我們得到的是未知類(lèi)別是類(lèi)2的概率;對(duì)于第三個(gè)分類(lèi)器(j=3),我們得到的是未知類(lèi)別是類(lèi)3的概率。比較這三個(gè)概率,哪個(gè)概率最大,當(dāng)然位置數(shù)據(jù)就屬于這個(gè)類(lèi)別。
注:回到前文所示的那個(gè)問(wèn)題。假如我們規(guī)定紅叉為類(lèi)0,藍(lán)圈為類(lèi)1,如果我們還是認(rèn)為θTx≥0即取得直線上方的點(diǎn)為類(lèi)1,θTx<0即取得直線下方的點(diǎn)為類(lèi)0,那豈不是會(huì)分錯(cuò)?其實(shí)不然,當(dāng)我們規(guī)定的類(lèi)別相反時(shí),分類(lèi)器給出的θ也正好相反,因?yàn)槭亲钚』鷥r(jià)函數(shù),如果分類(lèi)徹底分反,代價(jià)函數(shù)則取得極大值。而且最關(guān)鍵一點(diǎn),對(duì)于二維來(lái)說(shuō),θTx≥0不代表一定是取得直線上方的點(diǎn)。因此當(dāng)θ取反時(shí),θTx亦取反,于是當(dāng)θTx≥0時(shí),取得的是類(lèi)別1,而且是黑色的決策邊界下方,符合。所以訓(xùn)練集類(lèi)別的設(shè)定絲毫不會(huì)對(duì)結(jié)果產(chǎn)生影響,無(wú)論怎樣對(duì)訓(xùn)練集設(shè)定類(lèi)1還是類(lèi)0,當(dāng)θTx時(shí),一定選擇的是類(lèi)1,一定符合訓(xùn)練集即是訓(xùn)練集標(biāo)注的類(lèi)別1。
二、正則化
首先我們來(lái)了解一下什么是欠擬合和過(guò)擬合。欠擬合,顧名思義,擬合的所用的參數(shù)過(guò)少,導(dǎo)致無(wú)法準(zhǔn)確擬合訓(xùn)練數(shù)據(jù),準(zhǔn)確度比較低。而過(guò)擬合意味著所用的參數(shù)太多導(dǎo)致雖然可以非常準(zhǔn)確地?cái)M合訓(xùn)練集,但是無(wú)法進(jìn)行泛化(generalization),即無(wú)法掌握訓(xùn)練集的規(guī)律。下圖左1為欠擬合,右1為過(guò)擬合,中間的擬合是我們所需要的。
線性回歸和邏輯回歸等問(wèn)題中,如果問(wèn)題比較復(fù)雜,并且特征(參數(shù))較多,我們很難去選擇一個(gè)很好的參數(shù)數(shù)量去防止欠擬合和過(guò)擬合,這時(shí)就需要對(duì)我們的代價(jià)函數(shù)進(jìn)行正則化(regularization),即在后面增加一個(gè)才”懲罰項(xiàng)”,當(dāng)參數(shù)的值較大時(shí)代價(jià)函數(shù)較大,這樣訓(xùn)練出來(lái)的模型會(huì)盡可能地使參數(shù)變小,即模型較為簡(jiǎn)單,避免出現(xiàn)過(guò)擬合。增加的一項(xiàng)為:
對(duì)于線性回歸,我們修改它的代價(jià)函數(shù)如下:
因此對(duì)于權(quán)值θ的更新也要進(jìn)行相應(yīng)的改變,同樣對(duì)于θ0我們不進(jìn)行正則化。
???????????θ0=θ0?α1m∑i=1m(hθ(x(i))?y(i))x(i)0θj=θj?α(1m∑i=1m(hθ(x(i))?y(i))x(i)1+λmθj)(y=1,2,3,?)(15) 線性回歸中的正規(guī)方程,我們進(jìn)行這樣的改變: θ=(XTX+λ?????????011?1?????????(n+1)×(n+1))?1XTy(16) 注:正規(guī)方程中進(jìn)行正則化之后,經(jīng)過(guò)嚴(yán)格的數(shù)學(xué)證明可以得知矩陣一定可逆!
對(duì)于邏輯回歸,我們修改它的代價(jià)函數(shù)如下:
總結(jié)
以上是生活随笔為你收集整理的机器学习入门系列三(关键词:逻辑回归,正则化)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 机器学习中有监督学习——回归
- 下一篇: 机器学习入门系列一(关键词:单变量线性回