机器学习笔记九之支持向量机
本節(jié)目錄:
1 優(yōu)化目標(biāo)
2 大邊界的理解
3 大間距分類器
4 核函數(shù)
5 使用支持向量機(jī)
1.優(yōu)化目標(biāo)
大量數(shù)據(jù)在應(yīng)用算法時(shí),表現(xiàn)情況往往依賴于操作水平,比如 算法設(shè)計(jì)特征量的選擇、如何選擇正則化參數(shù)等。
邏輯回歸中的假設(shè)函數(shù)服從這樣的規(guī)律:
如果有一個(gè)y=1的樣本,我們希望?𝜃(𝑥) 趨 近 1。因?yàn)槲覀兿胍_地將此樣本分類,這就意味著當(dāng) ?𝜃(𝑥)趨近于 1 時(shí),𝜃𝑇𝑥 應(yīng)當(dāng)遠(yuǎn)大于 0。這是因?yàn)橛捎?𝑧 表示 𝜃𝑇𝑥,當(dāng) 𝑧遠(yuǎn)大于 0 時(shí),即到了
該圖的右邊,你不難發(fā)現(xiàn)此時(shí)邏輯回歸的輸出將趨近于 1。相反地,如果我們有另一個(gè)樣本,
即𝑦 = 0。我們希望假設(shè)函數(shù)的輸出值將趨近于 0,這對(duì)應(yīng)于𝜃𝑇𝑥,或者就是 𝑧 會(huì)遠(yuǎn)小于 0,
因?yàn)閷?duì)應(yīng)的假設(shè)函數(shù)的輸出值趨近 0。
如果你進(jìn)一步觀察邏輯回歸的代價(jià)函數(shù),你會(huì)發(fā)現(xiàn)每個(gè)樣本 (𝑥, 𝑦)都會(huì)為總代價(jià)函數(shù),
增加這里的一項(xiàng),因此,對(duì)于總代價(jià)函數(shù)通常會(huì)有對(duì)所有的訓(xùn)練樣本求和,并且這里還有一
個(gè)1/𝑚項(xiàng)。
下面就是分別Y=1和y=0時(shí)各自具體情況:
現(xiàn)在,一起來考慮兩種情況:
一種是𝑦等于 1 的情況;另一種是 𝑦 等于 0 的情況。
在第一種情況中,假設(shè) 𝑦 = 1 ,此時(shí)在目標(biāo)函數(shù)中只需有第一項(xiàng)起作用,因?yàn)?#x1d466; = 1時(shí),
(1 ? 𝑦)項(xiàng)將等于 0。因此,當(dāng)在 𝑦 = 1 的樣本中時(shí),即在 (𝑥, 𝑦)中 ,我們得到 𝑦 = 1
?log(1 ? 1 /(1+𝑒?𝑧))這樣一項(xiàng)。
有了以上知識(shí)鋪墊,我們就可以創(chuàng)建支持向量機(jī)了。
首先去除邏輯回歸中的1/m這一項(xiàng),得到相同的最優(yōu)值theta.
然后前面加上一個(gè)參數(shù)C平衡代價(jià)函數(shù)和正則化項(xiàng),
這就得到了支持向量機(jī)中整個(gè)優(yōu)化目標(biāo)函數(shù)。然后最小化目標(biāo)函數(shù),得到SVM學(xué)習(xí)到的參數(shù)C。
在這里,我們的代價(jià)函數(shù),當(dāng)最小化代價(jià)函數(shù),獲得參數(shù)𝜃時(shí),支持向量機(jī)所做的是它來直接預(yù)測(cè)𝑦的值等于 1,還是等于 0。因此,這個(gè)假設(shè)函數(shù)會(huì)預(yù)測(cè) 1。當(dāng)𝜃𝑇𝑥大于或者等于 0 時(shí),或者等于 0 時(shí),所以學(xué)習(xí)參數(shù)𝜃就是支持向量機(jī)假設(shè)函數(shù)的形式。那么,這就是支持向量機(jī)數(shù)學(xué)上的定義。
2 大邊界的理解
這是支持向量機(jī)模型的代價(jià)函數(shù),在左邊這里我畫出了關(guān)于𝑧的代價(jià)函數(shù)cos𝑡1(𝑧),此函數(shù)用于正樣本,而在右邊這里我畫出了關(guān)于𝑧的代價(jià)函數(shù)cos𝑡0(𝑧),橫軸表示𝑧,現(xiàn)在讓我們考慮一下,最小化這些代價(jià)函數(shù)的必要條件是什么。如果你有一個(gè)正樣本,𝑦 = 1,則只有在𝑧 >= 1時(shí),代價(jià)函數(shù)cos𝑡1(𝑧)才等于 0。
換句話說,如果你有一個(gè)正樣本,我們會(huì)希望𝜃𝑇𝑥>=1,反之,如果𝑦 = 0,我們觀察一下,函數(shù)cos𝑡0(𝑧),它只有在𝑧 <= ?1的區(qū)間里函數(shù)值為 0。這是支持向量機(jī)的一個(gè)有趣性質(zhì)。
我接下來會(huì)考慮一個(gè)特例。我們將這個(gè)常數(shù)𝐶設(shè)置成一個(gè)非常大的
值。比如我們假設(shè)𝐶的值為 100000 或者其它非常大的數(shù),然后來觀察支持向量機(jī)會(huì)給出什
么結(jié)果?
如果 𝐶非常大,則最小化代價(jià)函數(shù)的時(shí)候,我們將會(huì)很希望找到一個(gè)使第一項(xiàng)為 0 的
最優(yōu)解。因此,讓我們嘗試在代價(jià)項(xiàng)的第一項(xiàng)為 0 的情形下理解該優(yōu)化問題。比如我們可以
把𝐶設(shè)置成了非常大的常數(shù),這將給我們一些關(guān)于支持向量機(jī)模型的直觀感受。
我們已經(jīng)看到輸入一個(gè)訓(xùn)練樣本標(biāo)簽為𝑦 = 1,你想令第一項(xiàng)為 0,你需要做的是找到
一個(gè)𝜃,使得𝜃𝑇𝑥 >= 1,類似地,對(duì)于一個(gè)訓(xùn)練樣本,標(biāo)簽為𝑦 = 0,為了使cos𝑡0(𝑧) 函數(shù)的
值為 0,我們需要𝜃𝑇𝑥 <= ?1。因此,現(xiàn)在考慮我們的優(yōu)化問題。選擇參數(shù),使得第一項(xiàng)等
于 0,就會(huì)導(dǎo)致下面的優(yōu)化問題,因?yàn)槲覀儗⑦x擇參數(shù)使第一項(xiàng)為 0,因此這個(gè)函數(shù)的第一
項(xiàng)為 0,因此是𝐶乘以 0 加上二分之一乘以第二項(xiàng)。這里第一項(xiàng)是𝐶乘以 0,因此可以將其刪
去,因?yàn)槲抑浪?0。
這將遵從以下的約束:𝜃𝑇𝑥(𝑖) >= 1,如果 𝑦(𝑖)是等于 1 的,𝜃𝑇𝑥(𝑖) <= ?1,如果樣本𝑖
是一個(gè)負(fù)樣本,這樣當(dāng)你求解這個(gè)優(yōu)化問題的時(shí)候,當(dāng)你最小化這個(gè)關(guān)于變量𝜃的函數(shù)的時(shí)
候,你會(huì)得到一個(gè)非常有趣的決策邊界。
或者我們可以畫一條更差的決策界,這是另一條決策邊界,可以將正樣本和負(fù)樣本分開,
但僅僅是勉強(qiáng)分開,這些決策邊界看起來都不是特別好的選擇,支持向量機(jī)將會(huì)選擇這個(gè)黑
色的決策邊界,相較于之前我用粉色或者綠色畫的決策界。這條黑色的看起來好得多,黑線
看起來是更穩(wěn)健的決策界。在分離正樣本和負(fù)樣本上它顯得的更好。數(shù)學(xué)上來講,這是什么
意思呢?這條黑線有更大的距離,這個(gè)距離叫做間距(margin)。
當(dāng)畫出這兩條額外的藍(lán)線,我們看到黑色的決策界和訓(xùn)練樣本之間有更大的最短距離。
然而粉線和藍(lán)線離訓(xùn)練樣本就非常近,在分離樣本的時(shí)候就會(huì)比黑線表現(xiàn)差。因此,這個(gè)距
離叫做支持向量機(jī)的間距,而這是支持向量機(jī)具有魯棒性的原因,因?yàn)樗τ靡粋€(gè)最大間
距來分離樣本。因此支持向量機(jī)有時(shí)被稱為大間距分類器,
3 大間距分類器
我們將這個(gè)大間距分類器中的正則化因子常數(shù)𝐶設(shè)置的非常大,我記得我將其設(shè)置為了 100000,因此對(duì)這樣的一個(gè)數(shù)據(jù)集,也許我們將選擇這樣的決策界,從而最大間距地分離開正樣本和負(fù)樣本。那么在讓代價(jià)函數(shù)最小化的過程中,我們希望找出在𝑦 = 1和𝑦 = 0兩種情況下都使得代價(jià)函數(shù)中左邊的這一項(xiàng)盡量為零的參數(shù)。如果我們找到了這樣的參數(shù),則我們的最小化問題便轉(zhuǎn)變成:
圓圈和紅叉之間用黑線分割,但如果再加入一點(diǎn),間隔線就變成了紅線。這是不明智的。而如果參數(shù)C設(shè)置非常大,決策邊界又從黑線變成了紅線。
大間距分類器的描述,僅僅是從直觀上給出了正則化參數(shù)𝐶非常大的
情形,同時(shí),要提醒你𝐶的作用類似于1/𝜆,𝜆是我們之前使用過的正則化參數(shù)。這只是𝐶非
常大的情形,或者等價(jià)地 𝜆 非常小的情形。你最終會(huì)得到類似粉線這樣的決策界,但是實(shí)
際上應(yīng)用支持向量機(jī)的時(shí)候,當(dāng)𝐶不是非常非常大的時(shí)候,它可以忽略掉一些異常點(diǎn)的影響,
得到更好的決策界。甚至當(dāng)你的數(shù)據(jù)不是線性可分的時(shí)候,支持向量機(jī)也可以給出好的結(jié)果。
回顧 𝐶 = 1/𝜆,因此:
𝐶 較大時(shí),相當(dāng)于 𝜆 較小,可能會(huì)導(dǎo)致過擬合,高方差。
𝐶 較小時(shí),相當(dāng)于 𝜆 較大,可能會(huì)導(dǎo)致低擬合,高偏差。
4 核函數(shù)
使用高級(jí)數(shù)的多項(xiàng)式模型可以解決無法用直線進(jìn)行分隔的分類問題:
這些地標(biāo)的作用是什么?如果一個(gè)訓(xùn)練實(shí)例𝑥與地標(biāo)𝐿之間的距離近似于 0,則新特征 f 近似于𝑒?0 = 1,如果訓(xùn)練實(shí)例𝑥與地標(biāo)𝐿之間距離較遠(yuǎn),則𝑓近似于𝑒?(一個(gè)較大的數(shù)) = 0。
那么如何選擇地標(biāo)呢?
我們通常是根據(jù)訓(xùn)練集的數(shù)量選擇地標(biāo)的數(shù)量,即如果訓(xùn)練集中有𝑚個(gè)實(shí)例,則我們選
取𝑚個(gè)地標(biāo),并且令:𝑙(1) = 𝑥(1), 𝑙(2) = 𝑥(2), . . . . . , 𝑙(𝑚) = 𝑥(𝑚)。這樣做的好處在于:現(xiàn)在我們
得到的新特征是建立在原有特征與訓(xùn)練集中所有其他特征之間距離的基礎(chǔ)之上的,即:
另外,支持向量機(jī)也可以不使用核函數(shù),不使用核函數(shù)又稱為線性核函數(shù)(linear kernel),
當(dāng)我們不采用非常復(fù)雜的函數(shù),或者我們的訓(xùn)練集特征非常多而實(shí)例非常少的時(shí)候,可以采
用這種不帶核函數(shù)的支持向量機(jī)。
5 使用支持向量機(jī)
使用SVM優(yōu)化時(shí)需要注意以下兩點(diǎn):
1 提出參數(shù)C的選擇
2 選擇內(nèi)核參數(shù)或你想要使用的內(nèi)核函數(shù)
從邏輯回歸模型,我們得到了支持向量機(jī)模型,在兩者之間,我們應(yīng)該如何選擇呢?
下面是一些普遍使用的準(zhǔn)則:
𝑛為特征數(shù),𝑚為訓(xùn)練樣本數(shù)。
(1)如果相較于𝑚而言,𝑛要大許多,即訓(xùn)練集數(shù)據(jù)量不夠支持我們訓(xùn)練一個(gè)復(fù)雜的非線性模型,我們選用邏輯回歸模型或者不帶核函數(shù)的支持向量機(jī)。
(2)如果𝑛較小,而且𝑚大小中等,例如𝑛在 1-1000 之間,而𝑚在 10-10000 之間,使用高斯核函數(shù)的支持向量機(jī)。
(3)如果𝑛較小,而𝑚較大,例如𝑛在 1-1000 之間,而𝑚大于 50000,則使用支持向量機(jī)會(huì)非常慢,解決方案是創(chuàng)造、增加更多的特征,然后使用邏輯回歸或不帶核函數(shù)的支持向量機(jī)。
值得一提的是,神經(jīng)網(wǎng)絡(luò)在以上三種情況下都可能會(huì)有較好的表現(xiàn),但是訓(xùn)練神經(jīng)網(wǎng)絡(luò)
可能非常慢,選擇支持向量機(jī)的原因主要在于它的代價(jià)函數(shù)是凸函數(shù),不存在局部最小值。
總結(jié)
以上是生活随笔為你收集整理的机器学习笔记九之支持向量机的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: QT技术应用_2D绘图(转)
- 下一篇: gcc执行过程