吳恩達(dá)機(jī)器學(xué)習(xí)(六)

機(jī)器學(xué)習(xí)系統(tǒng)設(shè)計(jì)

第九十三課:確定執(zhí)行的優(yōu)先級(jí)

當(dāng)你在設(shè)計(jì)復(fù)雜的機(jī)器學(xué)習(xí)系統(tǒng)時(shí)所面臨的主要問題,并會(huì)在如何制定一個(gè)復(fù)雜的機(jī)器學(xué)習(xí)系統(tǒng)方面給出一些建議!

首先,在實(shí)際工過程中,我們應(yīng)該優(yōu)先處理哪些事情魔种?

如何通過監(jiān)督學(xué)習(xí)的方法來構(gòu)造一個(gè)分類器,區(qū)分垃圾郵件和非垃圾郵件呢粉洼?

選擇單詞作為特征节预,單詞是否出現(xiàn)就組成了特征向量組!

如何在有限的時(shí)間內(nèi)属韧,讓你的垃圾郵件分類器具有高精準(zhǔn)度和低錯(cuò)誤率安拟?

1.一種很容易想到的就是收集大量數(shù)據(jù),數(shù)據(jù)收集的越多挫剑,分類就越準(zhǔn)確去扣。
2.用更復(fù)雜的特征變量來描述郵件,例如郵件人標(biāo)題。
3.關(guān)注郵件的主體部分并構(gòu)建更復(fù)雜的特征
...
有些時(shí)候花時(shí)間去研究這些方法那個(gè)更有效是徒勞的愉棱,所以有的人最后就干脆隨機(jī)決定使用哪種方法唆铐。

如何更加系統(tǒng)的選擇一種方式來增加算法的成功率呢?

第九十四課:誤差分析

它能幫助你更系統(tǒng)的在眾多方法中作出選擇奔滑。

如果你準(zhǔn)備從事研發(fā)機(jī)器學(xué)習(xí)產(chǎn)品艾岂,或者開發(fā)機(jī)器學(xué)習(xí)應(yīng)用。通常來說朋其,最好的辦法王浴,不是建立一個(gè)很復(fù)雜的有許多復(fù)雜特征的系統(tǒng),而是通過一個(gè)簡單的算法來快速實(shí)現(xiàn)它梅猿。每當(dāng)我開始一個(gè)機(jī)器學(xué)習(xí)問題時(shí)氓辣,我最多只會(huì)花一天時(shí)間,把這個(gè)項(xiàng)目簡單粗暴的做出來袱蚓,而不是設(shè)計(jì)一個(gè)很復(fù)雜的系統(tǒng)钞啸。即使這個(gè)速成的東西不是很完美,但是通過交叉驗(yàn)證集來測試數(shù)據(jù)喇潘,做完這些以后体斩,你就能畫出相應(yīng)學(xué)習(xí)曲線,通過畫出的學(xué)習(xí)曲線以及檢驗(yàn)誤差颖低,來找出你的算法是否存在高偏差或者高方差的問題絮吵。作出這些分析以后,再來決定是否使用更多的數(shù)據(jù)或者特征等等忱屑。因?yàn)槟悴⒉荒茯?yàn)證你是需要更多的特征還是需要更多的數(shù)據(jù)蹬敲,在缺乏各種數(shù)據(jù)的前提下,你很難提前知道這些想幻,因?yàn)槟銢]有畫出學(xué)習(xí)曲線粱栖。所以應(yīng)當(dāng)先進(jìn)行一次簡單快速的實(shí)現(xiàn),然后畫出學(xué)習(xí)曲線來幫助你進(jìn)行之后的判斷脏毯。你要避免出現(xiàn)過早優(yōu)化的問題,這種思想告訴我們幔崖,我們應(yīng)當(dāng)用實(shí)際的證據(jù)來指導(dǎo)我們的決策食店,來決定把時(shí)間花在哪里而不是憑直覺?

除了繪制學(xué)習(xí)曲線還有一件非常有用的事赏寇,就是誤差分析吉嫩。通過觀察交叉驗(yàn)證集的情況,然后看一看那些被算法錯(cuò)誤分類的文件有什么共同的規(guī)律和特征嗅定。這樣就可以啟發(fā)你應(yīng)該設(shè)計(jì)怎么樣的新特征自娩,或是告訴你現(xiàn)在的算法有什么優(yōu)點(diǎn)和缺點(diǎn),然后指導(dǎo)你想出辦法來改進(jìn)它渠退。

舉個(gè)具體地例子:

對出現(xiàn)錯(cuò)誤分類的例子進(jìn)行總結(jié)和應(yīng)對忙迁,手動(dòng)誤差分析脐彩。可以快速找到算法的不足和難以處理的樣本類型姊扔,然后集中精力在它們上面惠奸。

另一個(gè)技巧是保證自己對學(xué)習(xí)算法有一種數(shù)值估計(jì)的方法。當(dāng)你改進(jìn)學(xué)習(xí)算法的時(shí)候恰梢,如果你的算法能夠返回一個(gè)數(shù)值評價(jià)指標(biāo)來估計(jì)算法執(zhí)行的效果將會(huì)很有幫助佛南。可能算法是準(zhǔn)確的嵌言,也有可能是錯(cuò)誤的嗅回。但是這個(gè)數(shù)字能告訴你,你的學(xué)習(xí)算法效果有多好摧茴。

錯(cuò)誤率數(shù)值變化妈拌,對這個(gè)特定的問題,這個(gè)很自然的單一規(guī)則的數(shù)值評價(jià)指標(biāo)叫做交叉驗(yàn)證錯(cuò)誤率蓬蝶。它能更快的幫你決定是否使用詞干提取器軟件尘分!

強(qiáng)烈推薦在交叉驗(yàn)證集上做誤差分析,而不是在測試集上丸氛。

第九十五課:不對稱性分類的誤差評估

誤差分析以及設(shè)定誤差度量值非常重要培愁,設(shè)定某個(gè)實(shí)數(shù)來評估你的學(xué)習(xí)算法并衡量它的表現(xiàn),有了算法的評估和誤差度量值缓窜,有一件重要的事情需要注意:就是使用一個(gè)合適的誤差度量值有時(shí)會(huì)對你的學(xué)習(xí)算法造成非常微妙的影響定续。這個(gè)重要的問題就是偏斜類問題。

正例和負(fù)例的比率非常接近于一個(gè)極端情況禾锤,例子中正樣本的數(shù)量與負(fù)樣本的數(shù)量相比非常非常少私股,我們把這種情況叫做偏斜類。一個(gè)類中的樣本數(shù)與另一個(gè)類的數(shù)據(jù)相比多很多恩掷。因此使用分類誤差或者分類精確度來作為評估度量可能會(huì)產(chǎn)生問題倡鲸。

因此當(dāng)出現(xiàn)偏斜類問題時(shí),我們希望有一個(gè)不同的誤差度量值或者不同的評估度量值黄娘,其中一種誤差度量值叫做查準(zhǔn)率和召回率峭状。

查準(zhǔn)率和召回率越高越好。通過查準(zhǔn)率和召回率我們可以知道分類模型到底好不好逼争∮糯玻總的來說,即使我們有一個(gè)非常偏斜的類誓焦,算法也不能夠欺騙我們胆敞,僅僅通過預(yù)測y總是等于0或者1,它沒辦法得到高的查準(zhǔn)率和高的召回率。因此我們能夠肯定擁有高查準(zhǔn)率和高召回率的模型是一個(gè)好的分類模型移层。這給予了我們一個(gè)更好的評估值仍翰,就更直接的方法來評估模型的好壞。

最后記住一件事幽钢,在查準(zhǔn)率和召回率的定義中歉备,我們總是習(xí)慣性的用y = 1,如果這個(gè)類出現(xiàn)的非常少匪燕,因此如果我們試圖檢測某種稀少的情況蕾羊,比如患癌癥的概率,我們會(huì)把查準(zhǔn)率和召回率定義為y = 1帽驯。

第九十六課:精確度和召回率的權(quán)衡

查準(zhǔn)率和召回率作為算法評估度量值更有效方式龟再?
取決于你要什么!

有沒有辦法自動(dòng)選擇臨界值尼变?
平均值貌似不是一個(gè)好主意利凑。F值可以檢測,是因?yàn)樗髢烧叨夹枰艽蟆?/p>

通過變動(dòng)臨界值嫌术,你可以控制權(quán)衡查準(zhǔn)率和召回率哀澈,通過F值權(quán)衡給你一個(gè)評估度量值。

第九十八課:機(jī)器學(xué)習(xí)數(shù)據(jù)

機(jī)器學(xué)習(xí)系統(tǒng)設(shè)計(jì)中被訓(xùn)練的數(shù)據(jù)有多少度气?
在有些條件下割按,得到大量的數(shù)據(jù)并在某種類型的學(xué)習(xí)算法中進(jìn)行訓(xùn)練,可以是一種有效的方法來獲得一個(gè)具有良好性能的學(xué)習(xí)算法磷籍。這種情況往往出現(xiàn)在這些條件對你的問題都成立适荣,并且你能夠得到大量的數(shù)據(jù)的情況下。這可以是一個(gè)很好的方式來獲得非常高性能的學(xué)習(xí)算法院领。

并不是擁有最好算法的人能成功弛矛,而是擁有最多數(shù)據(jù)的人能成功。

給定一個(gè)輸入特征向量x比然,給定這些特征值丈氓,也給定了相同的可用的信息和學(xué)習(xí)算法,加入我們?nèi)ト祟悓<疫@個(gè)領(lǐng)域谈秫,一個(gè)人類學(xué)家能夠準(zhǔn)確或自信的預(yù)測出y值么扒寄?

假設(shè)特征值有足夠的信息來預(yù)測y值,假設(shè)我們使用一種需要大量參數(shù)的學(xué)習(xí)算法拟烫,也許是有很多特征值的邏輯回歸或線性回歸。實(shí)際上是在利用許多隱藏單元的神經(jīng)網(wǎng)絡(luò)迄本,它們有很復(fù)雜的參數(shù)硕淑,這些參數(shù)可以擬合非常復(fù)雜的函數(shù),低偏差算法,我們能夠擬合非常復(fù)雜的函數(shù)置媳,而且因?yàn)槲覀冇蟹浅?qiáng)大的學(xué)習(xí)算法于樟,如果我們用數(shù)據(jù)訓(xùn)練這些算法,它能很好的擬合訓(xùn)練集拇囊,訓(xùn)練誤差就會(huì)很低迂曲。如果訓(xùn)練集比參數(shù)的數(shù)量更多,那么這些算法就不太可能會(huì)過度擬合寥袭。綜合測試集的誤差也會(huì)很小路捧。

關(guān)鍵的假設(shè)是:特征值有足夠的信息量,有一類很好的函數(shù)传黄,這是為什么能保證低誤差的關(guān)鍵所在杰扫,它有大量的訓(xùn)練數(shù)據(jù)集,這能保證得到更多的方差值膘掰。

如果你有大量的數(shù)據(jù)章姓,而且你訓(xùn)練了一種帶有很多參數(shù)的學(xué)習(xí)算法,那么這將會(huì)是一個(gè)很好的方式來提供一個(gè)高性能學(xué)習(xí)算法识埋。

支持向量機(jī)

第一百零一課:優(yōu)化目標(biāo)

在監(jiān)督學(xué)習(xí)中凡伊,很多監(jiān)督學(xué)習(xí)算法的性能都非常相似,所以經(jīng)常要考慮的東西窒舟,不是選擇算法系忙,而是更多的去考慮,你構(gòu)建這些算法時(shí)所使用的數(shù)據(jù)量辜纲,這就體現(xiàn)了你使用這些算法的技巧笨觅。

特征選擇
正則化參數(shù)的選擇
..

支持向量機(jī)(SVM),更清晰更強(qiáng)大的算法耕腾。

優(yōu)化目標(biāo):
從logistic回歸開始见剩,看看如何作一些小小的改動(dòng)來得到一個(gè)支持向量機(jī)。

考慮單獨(dú)一項(xiàng)對logistic回歸總體代價(jià)函數(shù)的貢獻(xiàn):

畫一條直線扫俺,它和logistic代價(jià)函數(shù)的曲線非常相似苍苞,兩端直線組成。它的效果將和logistic回歸非常相似狼纬,但是支持向量機(jī)將擁有計(jì)算上的優(yōu)勢羹呵,并且使得之后的優(yōu)化問題變得簡單,更容易解決疗琉。

有了定義以后冈欢,構(gòu)建支持向量機(jī):
和logistic回歸控制權(quán)衡的方式不同,在A前面加上系數(shù)C盈简,這是一種不同的參數(shù)設(shè)置方法凑耻,來決定我們是更關(guān)心第一項(xiàng)的優(yōu)化還是第二項(xiàng)的優(yōu)化太示,

和logistic回歸不同的是,SVM并不會(huì)輸出概率香浩,相對的我們得到的是通過優(yōu)化這個(gè)代價(jià)函數(shù)类缤,得到一個(gè)參數(shù)θ,支持向量機(jī)所做的是進(jìn)行了一個(gè)直接的預(yù)測邻吭,預(yù)測y = 0/1餐弱。這就是支持向量機(jī)的假設(shè)函數(shù)形式:

接下來更直觀的角度看一下支持向量機(jī)的優(yōu)化目標(biāo)是什么囱晴,以及SVM學(xué)到的假設(shè)函數(shù)會(huì)是什么樣的?如何進(jìn)行一些修改以便學(xué)習(xí)更加復(fù)雜的非線性函數(shù)降允?

第一百零二課:直觀上對大間隔的理解

支持向量機(jī):大間距分類器,如何通過直觀的圖像理解SVM假設(shè)剧董?

性質(zhì):如果你有一個(gè)正樣本破停,比如y = 1,我們只需要使θ的轉(zhuǎn)置乘以x大于等于0就能正確的進(jìn)行分類毅臊。如果你有一個(gè)負(fù)樣本,比如y = 0黑界,我們只需要使θ的轉(zhuǎn)置乘以x小于0就能正確的進(jìn)行分類管嬉。但是支持向量機(jī)不是恰好能正確分類就行了,我們需要的是比0/1大很多朗鸠。這就相當(dāng)于在SVM中構(gòu)建了一個(gè)安全因子蚯撩,一個(gè)安全間距。在支持向量機(jī)中烛占,這個(gè)因子會(huì)產(chǎn)生什么影響胎挎?

當(dāng)C是一個(gè)非常大的數(shù)時(shí):

因此你會(huì)得到一個(gè)很有趣的決策邊界:

黑線看起來是更穩(wěn)健的決策邊界,能更好的分開正樣本和負(fù)樣本忆家。從數(shù)學(xué)上說犹菇,黑色直線擁有更大的距離,這個(gè)距離叫做間距芽卿,它和訓(xùn)練樣本的最小距離要更大一些揭芍。
支持向量機(jī)的間距,這使得支持向量機(jī)具有魯棒性卸例。因?yàn)樗诜蛛x數(shù)據(jù)時(shí)沼沈,會(huì)盡量用大的間距去分離流酬,因此有時(shí)被稱為大間距分類器币厕。

為什么這個(gè)優(yōu)化問題能得到這個(gè)大間距分類器列另?

此外,當(dāng)你使用大間距分類器的時(shí)候旦装,這時(shí)你的學(xué)習(xí)算法對異常點(diǎn)會(huì)很敏感。黑線變成粉紅線阴绢,這是C非常大的情況呻袭。如果c不是非常大左电,那么會(huì)變回黑線(忽略異常點(diǎn))篓足。

正則化參數(shù)的權(quán)衡连舍?

第一百零三課:大間隔分類器的數(shù)學(xué)原理

支持向量機(jī)的優(yōu)化問題和大間距分類器之間的聯(lián)系索赏?

用向量內(nèi)積的形式嘗試?yán)斫庵С窒蛄繖C(jī)的優(yōu)化目標(biāo)函數(shù)潜腻。

對優(yōu)化目標(biāo)函數(shù)來說,支持向量機(jī)做的就是最小化參數(shù)向量θ的范數(shù)的平法青灼,或者說是長度的平方专普。

參數(shù)向量θ事實(shí)上是與決策邊界90度正交的檀夹,令θ = 0炸渡,那么決策邊界必須過原點(diǎn)蚌堵。

支持向量機(jī)優(yōu)化目標(biāo)函數(shù)最終會(huì)找到大間距分類器:試圖最大化這些p^(i)的范數(shù)督赤,也就是訓(xùn)練樣本到?jīng)Q策邊界的距離躲舌。

第一百零四課:核函數(shù)

改造向量機(jī)算法來構(gòu)建復(fù)雜的非線性分類器没卸,主要的技巧就是被稱為“核”的東西。核函數(shù)是什么以及如何使用它病蛉?

對于計(jì)算機(jī)視覺铺然,輸入是一個(gè)由大量像素組成的圖像魄健,我們也見到了高階的多項(xiàng)式沽瘦,運(yùn)算量將是非常大的,因?yàn)橛泻芏喔唠A多項(xiàng)式助隧,我們是否有不同的或者是更好的特征的選擇并村,我們可以用來嵌入到假設(shè)函數(shù)中,有一個(gè)可以構(gòu)造新特征f1棚潦、f2瓦盛、f3的方法:

引入相似度度量similarity挠唆,相似度函數(shù)similarity就是一個(gè)核函數(shù)(高斯核函數(shù))玄组。
k(x, l(i))

核函數(shù)到底做了什么哆致?

給定一個(gè)訓(xùn)練樣本x摊阀,我們可以計(jì)算三個(gè)新的特征f1胞此、f2漱牵、f3(基于之前給的三個(gè)標(biāo)記)疚漆。

衡量的是特征變量的值減小的速度闻镶。

上圖就是我們?nèi)绾味x標(biāo)記點(diǎn)和核函數(shù)來訓(xùn)練出非常復(fù)雜的非線性決策邊界的方法儒溉。我們是如何使用核函數(shù)的呢顿涣?我們通過標(biāo)記點(diǎn)和相似性函數(shù)來定義新的特征變量涛碑,從而訓(xùn)練復(fù)雜的非線性邊界歹篓。

理解核函數(shù)的概念以及我們?nèi)绾问褂盟谥С窒蛄繖C(jī)中定義新的特征變量庄撮。但還有一些問題洞斯?其中一個(gè)是我們?nèi)绾蔚玫竭@些標(biāo)記點(diǎn)烙如?我們?nèi)绾芜x擇標(biāo)記點(diǎn)亚铁?相似度方程可以替代高斯函數(shù)么?

支持向量機(jī)如何通過核函數(shù)來有效的學(xué)習(xí)復(fù)雜非線性函數(shù)仰迁?

第一百零五課:核函數(shù)2

如何在實(shí)際中應(yīng)用這些思想施蜜?例如翻默,如何處理支持向量機(jī)中的偏差方差折中修械?

如何選擇標(biāo)記點(diǎn)肯污?在一些復(fù)雜的數(shù)學(xué)問題中哄芜,也許我們需要更多的標(biāo)記點(diǎn)认臊?

我們擁有的每一個(gè)樣本點(diǎn)失晴,只需要直接使用它們涂屁,直接將訓(xùn)練樣本作為標(biāo)記點(diǎn)。即每一個(gè)標(biāo)記點(diǎn)的位置都與每一個(gè)樣本點(diǎn)的位置相對應(yīng)。這說明特征函數(shù)基本上實(shí)在描述每一個(gè)樣本距離與樣本集中其他樣本的距離义矛。

給定核函數(shù)和相似度函數(shù)后了讨,我們?nèi)绾问褂酶唵蔚闹С窒蛄繖C(jī)前计?

通過解決最小化問題,就得到了支持向量機(jī)的參數(shù)伶棒。這就是支持向量機(jī)的學(xué)習(xí)算法肤无。
大多數(shù)支持向量機(jī)在實(shí)現(xiàn)的時(shí)候宛渐,其實(shí)是替換掉θTθ,用θT乘以某個(gè)矩陣M业岁,這依賴于你采用的核函數(shù)叨襟,再乘以θ^T糊闽。這其實(shí)是另一種略有區(qū)別的距離度量方法右犹,我們用一種略有變化的度量來取代θ的模的平方念链,這意味著我們最小化了一種類似的度量掂墓。這是參數(shù)向量θ的縮放版本并取決于核函數(shù)君编。這個(gè)數(shù)學(xué)細(xì)節(jié)吃嘿,使得支持向量機(jī)能夠更有效率的運(yùn)行。為什么支持向量機(jī)做這種修改琴拧,這可以使它應(yīng)用更大的數(shù)量集力崇。這個(gè)具體的實(shí)現(xiàn)細(xì)節(jié)亮靴,盡管略微改變了優(yōu)化目標(biāo)茧吊,但它主要是為了計(jì)算效率搓侄。

核函數(shù)不太好應(yīng)用到線性回歸和邏輯回歸上讶踪,但是可以和支持向量機(jī)相得益彰柱查。

你不需要知道怎么去寫一個(gè)軟件來最小化代價(jià)函數(shù)唉工,因?yàn)槟憧梢哉业胶芎玫能浖鲞@些淋硝,而應(yīng)該使用人們開發(fā)的成熟的軟件包谣膳。這些軟件包已經(jīng)包含了那些數(shù)值優(yōu)化技巧参歹。

另外一個(gè)問題僧界,當(dāng)你選擇使用支持向量機(jī)時(shí)捂襟,怎么選擇支持向量機(jī)中的參數(shù)葬荷?

偏差方差折中

大C:過擬合
小C:欠擬合

大σ:更平滑含衔,高偏差低方差
大σ:不平滑草穆,低偏差高方差

第一百零六課:使用SVM

為了運(yùn)行或者運(yùn)用SVM棱诱,你實(shí)際上所需要的一些東西魁索?

特別優(yōu)化問題尝偎,不要自己寫代碼求解參數(shù)θ...只需要調(diào)用相關(guān)庫函數(shù)實(shí)現(xiàn)相應(yīng)功能致扯。

你需要:
1.參數(shù)C的選擇
2.選擇內(nèi)核函數(shù)或你想要使用的相似函數(shù)(沒有核函數(shù)急前,即線性核函數(shù)裆针,標(biāo)準(zhǔn)的線性分類器)

為什么會(huì)選擇使用線性核函數(shù)?
如果你有大量的特征耘婚,n很大沐祷,且m即訓(xùn)練的樣本數(shù)很小赖临,那么你有大量的特征兢榨,卻只有很少的訓(xùn)練數(shù)集吵聪,那么你只想擬合一個(gè)線性的判定邊界吟逝,而不去擬合一個(gè)非常復(fù)雜的非線性函數(shù)澎办,因?yàn)闆]有足夠的數(shù)據(jù)局蚀, 你可能會(huì)過度擬合琅绅。例如料祠,在一個(gè)非常高維的特征空間中嘗試擬合非常復(fù)雜的函數(shù)澎羞,但是如果你的訓(xùn)練集樣本很小的話顺呕,這將變成一個(gè)合理的設(shè)置株茶。

3.如果選擇高斯函數(shù)启盛,選擇參數(shù)σ^2
什么時(shí)候選擇高斯函數(shù)僵闯?
如果你忽略了特征值x輸入R^n棍厂,如果n值很小,理想情況下时呀,如果m值很大谨娜,那么如果我們有趴梢,比如一個(gè)二維的訓(xùn)練集坞靶,那么n = 2彰阴,但是有很多的訓(xùn)練數(shù)據(jù)簇抵,然后你想用核函數(shù)去擬合相當(dāng)復(fù)雜非線性決策邊界碟摆,高斯核函數(shù)是一個(gè)不錯(cuò)的選擇典蜕。

但是如果你決定使用高斯核函數(shù),接下來就是需要根據(jù)使用的支持向量機(jī)軟件包栖博,需要你實(shí)現(xiàn)一個(gè)核函數(shù)或者實(shí)現(xiàn)相似函數(shù),因此如果你用Octave或者matlab來實(shí)現(xiàn)支持向量機(jī)的話仇让,就需要你提供一個(gè)函數(shù)來計(jì)算核函數(shù)的特征值卫玖。因此對應(yīng)一個(gè)i踊淳,需要計(jì)算fi迂尝,你需要做的是寫一個(gè)核函數(shù)垄开,讓它把向量x作為輸入榜田,把輸入作為一種標(biāo)識(shí),即將x1,x2作為輸入的軟件净捅,并用它們來計(jì)算這個(gè)相似函數(shù),之后返回一個(gè)實(shí)數(shù)古今。

因此很多SVM包需要用戶提供一個(gè)核函數(shù)捉腥,能夠?qū)崿F(xiàn)x1,x2,并返回一個(gè)實(shí)數(shù)拟逮,從這里開始敦迄,它將自動(dòng)地生成所有特征變量。自動(dòng)利用特征向量x并且映射到f1,f2...一直到fm脾猛,并且生成所有特征變量猛拴,并從這開始訓(xùn)練支持向量機(jī)漆弄。但是有些時(shí)候你要自己提供這個(gè)函數(shù),如果你使用高斯核函數(shù)哥蔚,一些SVM的函數(shù)實(shí)現(xiàn)也會(huì)包括高斯核函數(shù)以及其他的核函數(shù)糙箍。到目前為止抖格,高斯核函數(shù)和線性核函數(shù)是最為常用的核函數(shù)雹拄。一個(gè)實(shí)現(xiàn)函數(shù)的注意事項(xiàng)滓玖,如果你有大小很不一樣的特征變量,很重要的一件事就是在使用高斯函數(shù)之前模暗,將這些特征變量的大小按比例歸一化碍侦,就需要進(jìn)一步的縮放比例顾孽,這將會(huì)保證SVM能考慮到所有不同的特征向量祝钢,而不只是像例子中這樣,房子的大小影響特別大若厚。

警告:不是所有你可能提出來的相似函數(shù)都是有效的核函數(shù)拦英,高斯核函數(shù)、線性核函數(shù)以及你有時(shí)可能會(huì)用到的核函數(shù)测秸,這些函數(shù)都需要滿足一個(gè)技術(shù)條件疤估,它叫做默塞爾定理。需要滿足這個(gè)條件的原因是因?yàn)橹С窒蛄繖C(jī)算法或者SVM的實(shí)現(xiàn)函數(shù)有許多熟練地?cái)?shù)值優(yōu)化技巧铃拇。為了有效的求解參數(shù)θ显晶,在最初的設(shè)想里,這些決策都將我們的注意力僅僅限制在可以滿足默塞爾定理的核函數(shù)上。這個(gè)定理所做的是確保所有的SVM包呢堰,所有的SVM軟件包能夠用大類的優(yōu)化方法骂维,從而迅速得到參數(shù)θ潦刃。大多數(shù)人最后要做的是用線性核函數(shù)或者高斯函數(shù),但是也有滿足默塞爾定理的其他核函數(shù),我個(gè)人很少使用列赎。

多項(xiàng)式核函數(shù)(常數(shù)和指數(shù))
有字符串核函數(shù)
卡方核函數(shù)
直方相交核函數(shù)
...

最后兩個(gè)細(xì)節(jié):
1.在多類分類中,很多SVM包中已經(jīng)內(nèi)置了多分類的函數(shù),因此,如果你使用一個(gè)類似于這樣的一個(gè)模式,你只是用了這樣的函數(shù),且應(yīng)該會(huì)做的比較好。

除此之外窟勃,一個(gè)多分類的問題谬运,可以使用one-vs-all方法轰驳,我們之前在講邏輯回歸的時(shí)候討論過抡爹,所以你要做的是訓(xùn)練KSVM,如果你有k個(gè)類別,用以將每個(gè)類別從其他類別中區(qū)分開來。它會(huì)給你k參數(shù)的向量,θ1,它會(huì)嘗試從所有類別中,識(shí)別出y = 1的類別坟比,之后θ2籍琳,識(shí)別出y = 2作為正類別,參數(shù)向量θ(k)是用于識(shí)別最后一個(gè)類別參數(shù)向量。與邏輯回歸中一對多的方法類似茄厘,在邏輯回歸中哀卫,我們是用最大的θTx來預(yù)測類別i。

多分類的范式:對大多數(shù)情況來說苦银,無論使用瑟蜈,在軟件包內(nèi)部已經(jīng)有實(shí)現(xiàn)好的內(nèi)置多分類函數(shù)掂林,不用擔(dān)心。

2.我們從邏輯回歸開始創(chuàng)造了SVM政供,然后更改了一下代價(jià)函數(shù)哀军,當(dāng)你要使用兩者之一的算法時(shí)藕咏,比如n代表特征的數(shù)量,m是訓(xùn)練樣本的數(shù)量济榨。如何選擇兩者中的一個(gè)呢巨柒?

當(dāng)n的值比訓(xùn)練樣本個(gè)數(shù)多驻民,有大量的特征遠(yuǎn)大于m帜篇。那么就選擇邏輯回歸或者不帶核函數(shù)的SVM,因?yàn)槿绻阌斜容^多的特征變量祥得,而只有相對較小的訓(xùn)練集疏之,線性函數(shù)可能會(huì)工作的很好索抓,而且你也沒有足夠的數(shù)據(jù)來擬合非常復(fù)雜的非線性函數(shù)缺菌。

如果n很少薯嗤,而m大小適中窟社,這里的n可能是1-1000之間的任何數(shù),那么線性核函數(shù)的SVM會(huì)工作得很好。

n很小,m很大岳链,現(xiàn)在的帶有高斯函數(shù)SVM包,高斯函數(shù)的SVM運(yùn)算速度會(huì)很慢,我通常會(huì)做的是手動(dòng)地創(chuàng)建拐云,擁有更多的特征變量泳桦,然后用邏輯回歸或者不帶核函數(shù)的支持向量機(jī)盛龄。

邏輯回歸為什么和支持向量機(jī)放到一起憎妙?
因?yàn)檫壿嫽貧w和不帶核函數(shù)的支持向量機(jī)曲楚,它們是非常相似的算法,都會(huì)做相似的事情褥符,并給出相似的結(jié)果龙誊。但是根據(jù)實(shí)際情況,其中一個(gè)可能會(huì)比另一個(gè)更加有效喷楣。但是隨著SVM復(fù)雜度的增加趟大,當(dāng)你使用不同的內(nèi)核函數(shù)來學(xué)習(xí)復(fù)雜的非線性函數(shù)時(shí)鹤树,你特征變量的數(shù)量是相當(dāng)大的,那是一個(gè)非常常見的體系逊朽,也許在這個(gè)體系里罕伯,帶有核函數(shù)的支持向量機(jī)就會(huì)表現(xiàn)的相當(dāng)突出。

什么時(shí)候使用神經(jīng)網(wǎng)絡(luò)叽讳?
對所有的這些問題追他,對于不同的設(shè)計(jì),設(shè)計(jì)良好的神經(jīng)網(wǎng)絡(luò)岛蚤,可能會(huì)非常有效邑狸,有一個(gè)缺點(diǎn)或者說有時(shí)可能不會(huì)使用神經(jīng)網(wǎng)絡(luò)的原因,對于許多這樣的問題涤妒,神經(jīng)網(wǎng)絡(luò)訓(xùn)練起來可能會(huì)特別慢单雾,但是如果你有一個(gè)非常好的SVM實(shí)現(xiàn)包,可能會(huì)運(yùn)行的很快她紫,比神經(jīng)網(wǎng)絡(luò)快很多硅堆。SVM具有的問題是一種凸優(yōu)化問題,好的SVM軟件包總是會(huì)找到全局最小值或者接近它的值犁苏。對于SVM硬萍,你不需要擔(dān)心局部最優(yōu),而在神經(jīng)網(wǎng)絡(luò)中围详,局部最優(yōu)是一個(gè)不大不小的問題朴乖。所以這是你在使用SVM的時(shí)候不需要太去擔(dān)心的一個(gè)問題。根據(jù)你的問題助赞,神經(jīng)網(wǎng)絡(luò)可能會(huì)比SVM慢买羞。

迷茫!該用什么算法雹食?畜普??這個(gè)沒有太大關(guān)系群叶,當(dāng)我遇到機(jī)器學(xué)習(xí)問題的時(shí)候吃挑,有時(shí)它確實(shí)不清楚這是否是最好的算法,但是就如在之前視頻中看到的算法確實(shí)很重要街立,但是更加重要的是你有多少數(shù)據(jù)舶衬, 你有多熟練,是否擅長做誤差分析和排除學(xué)習(xí)算法赎离,指出如何設(shè)定新的特征變量逛犹,弄明白你的學(xué)習(xí)算法輸入哪些特征,通常這些方面會(huì)比你使用邏輯回歸還是SVM這方面更加重要。

SVM仍然被廣泛認(rèn)為是最強(qiáng)大的學(xué)習(xí)算法之一虽画。這是一個(gè)體系舞蔽,包含了一個(gè)有效的方法去學(xué)習(xí)復(fù)雜的非線性函數(shù)。實(shí)際上码撰,邏輯回歸渗柿、神經(jīng)網(wǎng)絡(luò)與SVM一起使用來提高學(xué)習(xí)算法,創(chuàng)造最新的機(jī)器學(xué)習(xí)系統(tǒng)作為一個(gè)非常強(qiáng)大的算法工具脖岛,可以應(yīng)用到很多地方做祝。

高性能的機(jī)器學(xué)習(xí)系統(tǒng)!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鸡岗,一起剝皮案震驚了整個(gè)濱河市混槐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌轩性,老刑警劉巖声登,帶你破解...
    沈念sama閱讀 218,640評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異揣苏,居然都是意外死亡悯嗓,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,254評論 3 395
  • 文/潘曉璐 我一進(jìn)店門卸察,熙熙樓的掌柜王于貴愁眉苦臉地迎上來脯厨,“玉大人,你說我怎么就攤上這事坑质『衔洌” “怎么了?”我有些...
    開封第一講書人閱讀 165,011評論 0 355
  • 文/不壞的土叔 我叫張陵涡扼,是天一觀的道長稼跳。 經(jīng)常有香客問我,道長吃沪,這世上最難降的妖魔是什么汤善? 我笑而不...
    開封第一講書人閱讀 58,755評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮票彪,結(jié)果婚禮上红淡,老公的妹妹穿的比我還像新娘。我一直安慰自己降铸,他們只是感情好在旱,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,774評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著垮耳,像睡著了一般颈渊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上终佛,一...
    開封第一講書人閱讀 51,610評論 1 305
  • 那天俊嗽,我揣著相機(jī)與錄音,去河邊找鬼铃彰。 笑死绍豁,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的牙捉。 我是一名探鬼主播竹揍,決...
    沈念sama閱讀 40,352評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼邪铲!你這毒婦竟也來了芬位?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,257評論 0 276
  • 序言:老撾萬榮一對情侶失蹤带到,失蹤者是張志新(化名)和其女友劉穎昧碉,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體揽惹,經(jīng)...
    沈念sama閱讀 45,717評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡被饿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,894評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了搪搏。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片狭握。...
    茶點(diǎn)故事閱讀 40,021評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖疯溺,靈堂內(nèi)的尸體忽然破棺而出论颅,到底是詐尸還是另有隱情,我是刑警寧澤囱嫩,帶...
    沈念sama閱讀 35,735評論 5 346
  • 正文 年R本政府宣布嗅辣,位于F島的核電站,受9級(jí)特大地震影響挠说,放射性物質(zhì)發(fā)生泄漏澡谭。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,354評論 3 330
  • 文/蒙蒙 一损俭、第九天 我趴在偏房一處隱蔽的房頂上張望蛙奖。 院中可真熱鬧,春花似錦杆兵、人聲如沸雁仲。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,936評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽攒砖。三九已至缸兔,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間吹艇,已是汗流浹背惰蜜。 一陣腳步聲響...
    開封第一講書人閱讀 33,054評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留受神,地道東北人抛猖。 一個(gè)月前我還...
    沈念sama閱讀 48,224評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像鼻听,于是被迫代替她去往敵國和親财著。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,974評論 2 355

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

  • 以西瓜書為主線撑碴,以其他書籍作為參考進(jìn)行補(bǔ)充撑教,例如《統(tǒng)計(jì)學(xué)習(xí)方法》,《PRML》等 第一章 緒論 1.2 基本術(shù)語 ...
    danielAck閱讀 4,522評論 0 6
  • 這個(gè)題目取得比較奇怪醉拓,原因是:雖然號(hào)稱數(shù)學(xué)是世界上最簡潔的語言驮履,但是太多的公式難免看的人心慌;其次公式在hexo+...
    Helen_Cat閱讀 2,639評論 0 13
  • 這篇純屬天天晚上敷面膜的時(shí)候看到了前幾天自己打印的攻略(想要我自己做的攻略的同學(xué)可以在這篇文章評論里留下郵箱哈哈廉嚼,...
    Anna_Tian7閱讀 674評論 0 2
  • 五月枇杷始透黃玫镐, 天然綠色味如糖。 迎來詩友開心詠怠噪, 樂得愚翁勸品嘗恐似。
    艾思閱讀 2,393評論 50 57
  • 我們就是自己生命的巫師,我們給自己搭建了一個(gè)幻想世界傍念,然后在現(xiàn)實(shí)中讓這個(gè)幻想慢慢實(shí)現(xiàn)矫夷。
    米米心臻閱讀 91評論 0 0