機(jī)器學(xué)習(xí)算法領(lǐng)域里,有一個(gè)頗受爭(zhēng)議的觀(guān)點(diǎn):機(jī)器學(xué)習(xí)算法不需要數(shù)學(xué),因?yàn)楹芏嗨惴ǘ挤庋b好了,調(diào)個(gè)包就能用,并不需要大量的數(shù)學(xué)知識(shí)。
對(duì)此我先拋出個(gè)人的愚見(jiàn):機(jī)器學(xué)習(xí)算法從業(yè)者的確不需要花費(fèi)大量的時(shí)間在數(shù)學(xué)上,相比于數(shù)學(xué)的研究,掌握調(diào)參的技巧更加重要,更具有實(shí)踐意義。然而,數(shù)學(xué)絕非一無(wú)是處。同樣是做機(jī)器學(xué)習(xí)算法,數(shù)學(xué)更好的人可以做出更加高效、更加簡(jiǎn)潔的模型。
機(jī)器學(xué)習(xí)算法
調(diào)參和優(yōu)化,在機(jī)器學(xué)習(xí)算法里面非常重要。接觸一個(gè)場(chǎng)景,根據(jù)需求去做算法,你發(fā)現(xiàn)準(zhǔn)確度不好、loss很高等很多問(wèn)題,這個(gè)時(shí)候哪怕你擁有非常深厚的數(shù)學(xué)功底,也未必能夠找到問(wèn)題出在哪里。當(dāng)然,數(shù)學(xué)知識(shí)會(huì)引導(dǎo)你找到一個(gè)大致的解決問(wèn)題的方向,但不會(huì)告訴你解決問(wèn)題的具體方法。所以如何獲取解決問(wèn)題的方法?靠的是經(jīng)驗(yàn)。哪怕只會(huì)調(diào)包,做得多了也能積累出經(jīng)驗(yàn)。所以數(shù)學(xué)功底好的人,真不必瞧不上那些玩調(diào)包的人,因?yàn)檎撜覇?wèn)題的經(jīng)驗(yàn),不一定誰(shuí)更技高一籌。
工業(yè)界里模型并沒(méi)有那么多,而能調(diào)整的參數(shù)也沒(méi)有那么多。對(duì)于數(shù)學(xué)能力不是很強(qiáng)的機(jī)器學(xué)習(xí)算法工程師來(lái)說(shuō),這絕對(duì)是一件好事。因?yàn)榫退銛?shù)學(xué)知識(shí)不強(qiáng),具備一定的調(diào)參經(jīng)驗(yàn),也能做出不錯(cuò)的效果。就拿工業(yè)界常用的Regression算法來(lái)講,這個(gè)算法真的比其他算法好嗎?倒也不是。出眾的算法,大多都是因?yàn)樗臃€(wěn)定,更加易于解釋和說(shuō)明。
機(jī)器學(xué)習(xí)算法
當(dāng)然,很多人都在說(shuō)機(jī)器學(xué)習(xí)算法想要入門(mén),必須具有相當(dāng)強(qiáng)的數(shù)學(xué)基礎(chǔ)。類(lèi)似的言論不知道勸退了多少年輕人,因?yàn)閿?shù)學(xué)這門(mén)學(xué)科對(duì)于很多人而言簡(jiǎn)直就是噩夢(mèng)般的存在。大家一看,數(shù)學(xué)要求那么高,還是算了吧。為什么大家都在說(shuō)數(shù)學(xué)對(duì)于算法工程師的重要性呢?這里面是否高估了數(shù)學(xué)的重要性呢?存在這樣一個(gè)大家都不愿意放在臺(tái)面上說(shuō)的問(wèn)題:科班出身的怕被人搶了飯碗,所以一定會(huì)說(shuō)這一行門(mén)檻很高,對(duì)于數(shù)學(xué)要求很高。
對(duì)于數(shù)學(xué)一竅不通的人要做機(jī)器學(xué)習(xí)算法,那是行不通的。但是,大家也不必高估數(shù)學(xué)對(duì)于算法的重要性,如果有人告訴你想搞算法必須要精通各種高深的數(shù)學(xué)理論,你也是不必相信的,合理看待數(shù)學(xué)對(duì)于算法的作用就好了。