機(jī)器學(xué)習(xí)面試之有必要手推SVM嗎(1)忍啤?


1 單刀直入,先回答有必要嗎仙辟?

最近和許多朋友交流同波,發(fā)現(xiàn)當(dāng)前機(jī)器學(xué)習(xí)應(yīng)聘時(shí),手推SVM這道題已經(jīng)越來越像快速排序一樣叠国,成為必點(diǎn)菜了未檩。

那么,手推SVM是不是必要的呢粟焊?正反雙方各執(zhí)一詞冤狡,正方說孙蒙,手推SVM才能看出應(yīng)聘者的理論基礎(chǔ),反方說悲雳,現(xiàn)實(shí)中挎峦,SVM限于性能,應(yīng)用面很小合瓢,尤其是現(xiàn)在xgboost, lightGBM等高性能的boosting框架的盛行坦胶,更讓SVM成為了好看不好用的東西。能說清楚基礎(chǔ)原理就可以了晴楔,沒必要手推顿苇。

我的觀點(diǎn)是:如果你是應(yīng)聘者,不要思考這個(gè)問題税弃,趕緊多推幾遍SVM纪岁,爭取達(dá)到閉眼也能推出來的地步,因?yàn)槟銢]有選擇则果,假如你跟面試官說蜂科,這個(gè)沒必要推,實(shí)際中用的不多短条,估計(jì)你的面試也玄了,因?yàn)槊嬖嚬俨恢滥闶钦f真的還是在為自己不會(huì)找理由才菠。

如果你是面試官茸时,我的建議是不要問了,至少不要推導(dǎo)SVM了赋访,大家都是被資本剝削可都,你不過是找一個(gè)同事,有大把的問題可以問出應(yīng)聘者能否勝任公司的崗位蚓耽,只要技術(shù)水平夠渠牲,性情相投就可以了。如果你也問步悠,等你跳槽時(shí)签杈,自己還是要付出精力去臨時(shí)背背那些推導(dǎo),這叫作繭自縛鼎兽。

在這里插個(gè)小曲答姥。我第一次面試時(shí)和當(dāng)時(shí)公司的技術(shù)總監(jiān)聊了小一個(gè)小時(shí)的曾國藩,一見如故谚咬,后來我提出薪資要求鹦付,總監(jiān)說你剛從體制里面出來,不了解現(xiàn)在互聯(lián)網(wǎng)薪資行情择卦,要的太低了敲长,我會(huì)跟HR說在你的要求上乘以1.5的郎嫁。

我覺得這才是一個(gè)技術(shù)人應(yīng)有的行為準(zhǔn)則!無產(chǎn)階級(jí)何必為難無產(chǎn)階級(jí)祈噪,只要你覺得這個(gè)人技術(shù)水平能勝任崗位泽铛,就可以了。雖然我后來沒有去那家公司钳降,但我至今仍然從內(nèi)心感謝那位總監(jiān)厚宰。

不過客觀講,機(jī)器學(xué)習(xí)暴漲的需求面前遂填,大家實(shí)戰(zhàn)經(jīng)驗(yàn)都有限铲觉,可用來測(cè)試面試者實(shí)際經(jīng)驗(yàn)的問題不好找,為降低招聘風(fēng)險(xiǎn)吓坚,問一下理論推導(dǎo)撵幽,也是權(quán)宜之計(jì)。

2 步步為營礁击,怎么搞定SVM的推導(dǎo)盐杂?

那么,怎么能夠快速地哆窿,長久地記住SVM的推導(dǎo)呢链烈?

看到身邊不少朋友采用的辦法就是一遍又一遍的抄,抄熟之后就開始自己一遍又一遍的默寫挚躯。個(gè)人覺得這樣做是必要的强衡,但不是最重要的,最重要的是獲得intuition码荔,即對(duì)每一步推導(dǎo)背后的意圖建立起自己的感覺漩勤,這樣就可以逐漸從背記的狀態(tài)轉(zhuǎn)移到自覺推導(dǎo)的境界。

下面缩搅,我們就嘗試盡可能簡單地快速地推導(dǎo)一遍SVM越败,但是重點(diǎn)不是推導(dǎo),而是試圖根據(jù)我的理解硼瓣,說明每一步推導(dǎo)背后的動(dòng)機(jī)究飞。理解清楚后,相信推導(dǎo)就是順理成章了堂鲤。

3 SVM的基本思想

SVM的基本思想非常直觀噪猾。設(shè)想一個(gè)多維平面上散落著正樣本和負(fù)樣本,如果能找到一個(gè)超平面筑累,恰好能將正負(fù)樣本分開袱蜡,那么這個(gè)超平面就可以用來對(duì)樣本進(jìn)行分類。如下圖所示:


來自wikipedia

我們的目標(biāo)是找到圖中的H3慢宗。那么坪蚁,很自然地奔穿,我們就會(huì)產(chǎn)生兩個(gè)問題:

1 如果這樣的超平面確實(shí)存在,那么如何找到它敏晤?

2 如果這樣的超平面不存在贱田,那么如何找一個(gè)盡可能將正負(fù)樣本分開的超平面?

以上兩個(gè)問題就是SVM要解決的核心問題嘴脾!所有關(guān)于SVM的知識(shí)都可以歸為為了解決兩個(gè)問題中的一個(gè)男摧。

有了問題,就好比有了靶子译打,后面的推導(dǎo)都是沖著靶子去的耗拓,這樣就更能理解推導(dǎo)的原理了。圍繞問題去學(xué)習(xí)奏司,是我推崇的學(xué)習(xí)方法乔询,它的好處有二,一是更能調(diào)動(dòng)主觀能動(dòng)性韵洋,因?yàn)槟憧梢跃蛦栴}進(jìn)行很多自己的思考竿刁,二是能讓知識(shí)更加模塊化,便于完善知識(shí)結(jié)構(gòu)搪缨。

4?由易到難食拜,先解決第一個(gè)問題

對(duì)第一個(gè)問題的解決,實(shí)際上就會(huì)得到SVM的基本型副编,即線性可分的SVM监婶。這里請(qǐng)注意,第一個(gè)問題的假設(shè)是這樣的超平面是存在的齿桃,或者說,樣本是線性可分的煮盼,這一點(diǎn)需要牢記在心短纵。要解決這個(gè)問題,我們可以進(jìn)一步細(xì)化出2個(gè)問題:

1僵控、如何衡量一個(gè)超平面是否能將正負(fù)樣本分開

2香到、如何去尋找這樣的超平面

下面的推導(dǎo)基本上是按照以上三個(gè)問題的順序進(jìn)行的。

(一)從數(shù)學(xué)上表示超平面將正負(fù)樣本分開

一個(gè)超平面可以用如下的式子表示:


ω,b是超平面的參數(shù)报破。

一個(gè)樣本點(diǎn) 到P(xi,yi) 超平面的幾何距離(注意:這里是距離而非間隔)為:


幾何距離

理解這個(gè)公式需要回憶一下線性代數(shù)知識(shí)悠就,當(dāng)然,你也可以直接承認(rèn)這個(gè)公式充易,接受它就可以了梗脾。

如果你還是無法接受,歡迎到我的語雀上看本文的詳細(xì)版本盹靴,那里有簡單的推導(dǎo)炸茧。地址是:

https://www.yuque.com/liwenju/kadtqt/hmmeha

若該超平面能將正負(fù)樣本分開瑞妇,也就是正負(fù)樣本完全被超平面隔離開,該情況從數(shù)學(xué)的角度看梭冠,就等同于:

對(duì)任一個(gè)樣本P(xi,yi)辕狰,都有


幾何間隔

這里的distance相比上面的幾何距離,最大區(qū)別是它是有正負(fù)號(hào)的控漠,稱為幾何間隔蔓倍。幾何間隔就是帶符號(hào)的幾何距離,就是這么簡單盐捷。為什么這樣就表示超平面正確區(qū)分了樣本集呢偶翅?我們來具體分析下。

對(duì)于所有的正樣本毙驯,yi=1倒堕,distance(xi,yi)大于0意味著


這意味著xi在超平面正的一側(cè),也就是在法向量ω指向的一側(cè)

同理爆价,對(duì)所有的負(fù)樣本垦巴,yi=-1,也有



這意味著負(fù)樣本都在超平面與法向量ω反向的一側(cè)铭段。

實(shí)際上若超平面對(duì)任一樣本滿足distance(xi,yi)<0骤宣,也同樣可以證明超平面將正負(fù)樣本分開了。不過序愚,上面的表示并沒有失去一般性憔披,因?yàn)樗^的正負(fù)樣本不過是我們的標(biāo)記而已。我們此時(shí)完全可以將正的標(biāo)記為負(fù)的爸吮,將負(fù)的標(biāo)記為正的芬膝,這樣,能將正負(fù)樣本分開的超平面形娇,對(duì)任意一個(gè)樣本锰霜,就重新滿足了distance(xi,yi)>0這一條件。

問題解決桐早。

(二)將數(shù)學(xué)表示轉(zhuǎn)化為最優(yōu)化問題

上面癣缅,我們已經(jīng)得到結(jié)論:將正負(fù)樣本分開的超平面等價(jià)于:

對(duì)任一樣本(xi,yi),均有distance(xi,yi)>0

顯然哄酝,這樣的超平面如果存在友存,那一定會(huì)有無數(shù)多個(gè),也就是說陶衅,如果一個(gè)超平面將正負(fù)樣本分開了屡立,我們只要將這個(gè)超平面進(jìn)行極微小的旋轉(zhuǎn),那么搀军,旋轉(zhuǎn)得到的超平面仍然可以將正負(fù)樣本分開侠驯。所以抡秆,我們不能滿足于找到一個(gè)將正負(fù)樣本分開的超平面,而是要尋找其中最好的那個(gè)吟策。我們希望找到的超平面儒士,不僅能將樣本集分開,而且分得越開越好檩坚!

那么問題來了着撩,如何度量超平面將樣本集分開的程度?很簡單匾委,對(duì)于一個(gè)特定的超平面拖叙,對(duì)所有的樣本,最小的distance越大赂乐,表示它將該樣本集分得越開薯鳍。據(jù)此,我們可以將問題轉(zhuǎn)化成一個(gè)最優(yōu)化的問題挨措,即尋找能將樣本集分得最開的超平面挖滤。

用數(shù)學(xué)表示就是:



圖片發(fā)自簡書App

(三)求解上面的最優(yōu)化問題

我們解決一個(gè)問題,有一類思路就是對(duì)問題進(jìn)行轉(zhuǎn)換浅役,不停地轉(zhuǎn)換斩松,直到轉(zhuǎn)換成一個(gè)熟悉的,已有解決方案的問題觉既。為了求解上面的最優(yōu)化問題惧盹,我們需要對(duì)上面的問題進(jìn)一步進(jìn)行轉(zhuǎn)換。所以瞪讼,讓我們繼續(xù)轉(zhuǎn)換上面的問題吧钧椰。

這里我們先要區(qū)分開超平面本身和超平面的表示ω,b。對(duì)一個(gè)超平面符欠,我們肯定能找到一對(duì)ω,b來從數(shù)學(xué)上表示它嫡霞,但是,當(dāng)我們等倍數(shù)縮放ω,b時(shí)背亥,縮放后的新的ωn,bn仍然表示原來的超平面。

假設(shè)對(duì)某一個(gè)特定的超平面ω,b悬赏,我們已經(jīng)找到了使得里面的min取得最小值的的(xj狡汉,yj),其最小值為


按道理闽颇,我們現(xiàn)在應(yīng)該進(jìn)行外層的求最大化過程了盾戴。但是,對(duì)不同的超平面兵多,里面的min所對(duì)應(yīng)的xj, yj是各不相同的尖啡,這給我們帶來麻煩橄仆。這個(gè)怎么破?方法是這樣的衅斩。我們看最小值的分子部分


顯然它的值是大于0的盆顾,因?yàn)槲覀兊某霭l(fā)點(diǎn)就是從將正負(fù)樣本分開的超平面中選取分得最開的那個(gè)超平面,這是我們問題的前提假設(shè)畏梆。

既然它是大于0的您宪,那么,對(duì)這個(gè)特定的超平面奠涌,我們一定能通過等倍數(shù)縮放ω,b使得



這樣一來船老,里面的min就變成了



這就是說掩幢,對(duì)所有的超平面ω,b,只要我們都用它們某個(gè)特定的表示,即某個(gè)特定的ω,b值罗捎,里面的min就總是



這個(gè)特定的表示就是使得對(duì)取得最小值的yj有



那么對(duì)于其他的樣本點(diǎn)xi,yi,顯然就有



因?yàn)閤j,yj作為取得最小值的點(diǎn)仍秤,其值為1蛋褥,其他的樣本點(diǎn)自然是大于等于1了。



被稱作樣本點(diǎn)對(duì)超平面的函數(shù)間隔峦椰。這才是函數(shù)間隔上場(chǎng)的時(shí)間龄寞,特別不喜歡那些一上來就定義函數(shù)間隔和幾何間隔,然后就一陣推導(dǎo)汤功,總讓人覺得隔靴搔癢似的物邑。

至此,我們找到一個(gè)將里面的min消去的辦法滔金,即將所有超平面的表示加以限制色解,使得這個(gè)表示滿足

對(duì)所有的樣本



并且這個(gè)等號(hào)是可以取到的。

此時(shí)餐茵,內(nèi)層的min就是


我們的問題就轉(zhuǎn)化成了這樣:


s.t.?



Note:

1科阎,我們之所以選擇使得對(duì)所有樣本函數(shù)間隔大于等于1的超平面表示,完全是為了形式上的簡潔忿族。

也可以選大于等于0.5的超平面表示锣笨,這時(shí)里面的min就成了



形式上顯然沒那么簡潔了,因?yàn)榉帜钢械?對(duì)解決問題一點(diǎn)用也沒有道批。

2错英,表面看,我們要最大化的目標(biāo)中已經(jīng)沒有了b隆豹。但實(shí)際上椭岩,我們知道,b已經(jīng)成為了約束條件的一部分,如果b的取值破壞了約定條件判哥,那是不可以的献雅!

好了,到此為止塌计,我們已經(jīng)成功地從尋找最大間隔超平面這一思想出發(fā)挺身,經(jīng)過層層轉(zhuǎn)化,得到了一個(gè)純粹形式的數(shù)學(xué)問題夺荒。剩下的路程就進(jìn)入了數(shù)學(xué)的領(lǐng)地了瞒渠。

具體的推導(dǎo)需要很多的數(shù)學(xué)公式,但是地鐵上用手機(jī)很難搞技扼,暫時(shí)按下伍玖,回頭補(bǔ)上。

至于對(duì)那些線性不可分的樣本集剿吻,即對(duì)本文開頭提出的第二個(gè)問題窍箍,后續(xù)會(huì)繼續(xù)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末丽旅,一起剝皮案震驚了整個(gè)濱河市椰棘,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌榄笙,老刑警劉巖邪狞,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異茅撞,居然都是意外死亡帆卓,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門米丘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來剑令,“玉大人,你說我怎么就攤上這事拄查∮踅颍” “怎么了?”我有些...
    開封第一講書人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵堕扶,是天一觀的道長碍脏。 經(jīng)常有香客問我,道長稍算,這世上最難降的妖魔是什么典尾? 我笑而不...
    開封第一講書人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮邪蛔,結(jié)果婚禮上急黎,老公的妹妹穿的比我還像新娘。我一直安慰自己侧到,他們只是感情好勃教,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著匠抗,像睡著了一般故源。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上汞贸,一...
    開封第一講書人閱讀 49,007評(píng)論 1 284
  • 那天绳军,我揣著相機(jī)與錄音,去河邊找鬼矢腻。 笑死门驾,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的多柑。 我是一名探鬼主播奶是,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼竣灌!你這毒婦竟也來了聂沙?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤初嘹,失蹤者是張志新(化名)和其女友劉穎及汉,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體屯烦,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡坷随,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了漫贞。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片甸箱。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖迅脐,靈堂內(nèi)的尸體忽然破棺而出芍殖,到底是詐尸還是另有隱情,我是刑警寧澤谴蔑,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布豌骏,位于F島的核電站,受9級(jí)特大地震影響隐锭,放射性物質(zhì)發(fā)生泄漏窃躲。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一钦睡、第九天 我趴在偏房一處隱蔽的房頂上張望蒂窒。 院中可真熱鬧,春花似錦、人聲如沸洒琢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽衰抑。三九已至象迎,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間呛踊,已是汗流浹背砾淌。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留谭网,地道東北人汪厨。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像愉择,于是被迫代替她去往敵國和親骄崩。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

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