如何看待「機(jī)器學(xué)習(xí)不需要數(shù)學(xué),很多算法封裝好了,調(diào)個(gè)包就行」這種說法?
不抖機(jī)靈,想從接觸過機(jī)器學(xué)習(xí)學(xué)術(shù)圈但已投身工業(yè)界的角度來回答。
我認(rèn)為:大部分機(jī)器學(xué)習(xí)從業(yè)者不需要過度的把時(shí)間精力放在數(shù)學(xué)上,而該用于熟悉不同算法的應(yīng)用場(chǎng)景和掌握一些調(diào)參技巧。好的數(shù)學(xué)基礎(chǔ)可以使你的模型簡潔高效,但絕非必要的先決條件。
原因如下:
1. 即使你有了一定的數(shù)學(xué)功底,還是不知道怎么調(diào)參或者進(jìn)行優(yōu)化。
這話說的雖然有點(diǎn)自暴自棄,但捫心自問在座的各位,當(dāng)你發(fā)現(xiàn) accuracy 不好、loss 很高、模型已經(jīng) overfitting 了,你唰唰唰列列公式玩玩矩陣就知道問題出在哪里了嗎?不一定。誠然,懂得更多的統(tǒng)計(jì)原理可以幫助推測(cè)問題出在了哪里,你可能換了一個(gè) loss function 或者加了新的 regularizer,但結(jié)果不一定會(huì)更好。
數(shù)學(xué)基礎(chǔ)之于機(jī)器學(xué)習(xí)從業(yè)者很像 debugger 之于碼農(nóng),它給了你方向,但不能保證你一定可以解決問題。那怎么能解決問題?只有經(jīng)驗(yàn)經(jīng)驗(yàn)經(jīng)驗(yàn),別無他法,有時(shí)候甚至靠的是直覺。數(shù)學(xué)基礎(chǔ)是好的內(nèi)功基礎(chǔ),但你調(diào)包調(diào)多了,其實(shí)也慢慢能抓到一些感覺,不必看不起 “調(diào)包俠”。
2. 工業(yè)界可以應(yīng)用的模型是很有限的,可調(diào)的參數(shù)也是有限的。
工業(yè)界選擇模型非??粗乜山忉屝?,效率,以及和整個(gè)系統(tǒng)的整合能力。舉例,在我的工作中,大部分時(shí)間都在使用 Regression 和 Decision Tree 相關(guān)的算法(如 Random Forests)。是因?yàn)檫@兩個(gè)算法***么?不,恰恰是因?yàn)檫@兩個(gè)算法穩(wěn)定及高效,而且容易解釋。對(duì)于這樣的模型,你即使數(shù)學(xué)能力很強(qiáng),能調(diào)整的參數(shù)也是有限的。根據(jù)網(wǎng)上的例子和經(jīng)驗(yàn),大量的工程師可以在數(shù)學(xué)基礎(chǔ)稍弱的情況下做到很好的效果。
3. 數(shù)學(xué) / 統(tǒng)計(jì)知識(shí)已經(jīng)成了既得利益者刻意為外來者建立的一道壁壘。
不知道大家有多少人是從事過 ML 研究的。我個(gè)人的觀察是做出成績的 ML 研究人員是有限的,科班出身的 researcher 更是遠(yuǎn)遠(yuǎn)無法工業(yè)界的空缺。所以大家沒有必要擔(dān)心會(huì)被轉(zhuǎn)行者搶了飯碗,也沒有必要刻意鼓吹一定要懂矩陣,凸優(yōu)化,等數(shù)學(xué)知識(shí)才配做機(jī)器學(xué)習(xí)。大家都是出來賣的,不必互相為難。說來慚愧,在工作中我常常跟老板說這個(gè)人不能用,你要用我這種科班出身的人,但我內(nèi)心是不贊同的。
每當(dāng)我看到知乎上有人問機(jī)器學(xué)習(xí)怎么入門,結(jié)果大家立馬推薦***本就看 PRML 和 Statitical Learning 以及一大堆公開課和數(shù)學(xué)課的時(shí)候,我的內(nèi)心是崩潰的。各位答主的目標(biāo)是把所有人都嚇回去還是秀一下優(yōu)越感?
4. 理論模型和實(shí)際應(yīng)用分的是兩塊不同的蛋糕。
承接第 2,3 點(diǎn),做理論研究的發(fā)力于突破,提出新的模型或者優(yōu)化方法,做應(yīng)用的致力于把模型應(yīng)用于數(shù)據(jù)上,攫取商業(yè)價(jià)值。這兩者不存在利益沖突,做理論的人有自帶正統(tǒng)光環(huán)的優(yōu)勢(shì),所以更該顯得大度一些。只有 “調(diào)包” 的人越來越多,這個(gè)行業(yè)才會(huì)繁榮,因?yàn)樽C明技術(shù)落了地,可以帶來實(shí)際價(jià)值。
5. 行業(yè)的發(fā)展趨勢(shì)是降低工具的使用難度,這讓我們不必反復(fù)造輪子。
亞馬、遜谷歌、微軟等各大平臺(tái)都開放了他們的機(jī)器學(xué)習(xí)工具。以前人們還需要自己寫各種模型,好一些的調(diào)一下 sklearn,但現(xiàn)在 Azure ML Studio 已經(jīng)方便到零代碼了。年初的時(shí)候,我試了一下 ML studio,簡直方便的可怕,完全是圖形拖動(dòng)連接就可以建立模型,那一刻我仿似看到了自己即將失業(yè)。
6. 文藝一點(diǎn)說,我們需要更包容的心態(tài),切勿文人相輕。
想要接觸了解一門學(xué)科,應(yīng)該先有興趣,才有探索的積極性。就像我們***次看到 Hello word 出現(xiàn)的樣子,很多剛?cè)胄械娜?**次看到機(jī)器學(xué)習(xí)能解決實(shí)際問題時(shí),會(huì)產(chǎn)生濃厚的興趣。
我怕的就是所謂的圈內(nèi)人都說你必須要會(huì)矩陣分解,必須要會(huì)用 trace 算導(dǎo)數(shù),必須會(huì)優(yōu)化,才能開始學(xué)習(xí)機(jī)器學(xué)習(xí)。這個(gè)周期太長,很多人連開始的勇氣都沒有~ 我覺得不管怎么樣,要先動(dòng)手做起來,發(fā)現(xiàn)自己的不足,再去補(bǔ)充需要的東西。
既然學(xué)術(shù)是自由的,我們就打開大門,歡迎大家都進(jìn)來坐坐。如果他 / 她不喜歡,歡迎到隔壁串門。但我們不要給自己家門壘了高高的臺(tái)階,說閑人勿進(jìn)。久而久之,難免門可羅雀。
綜上,我覺得應(yīng)用機(jī)器學(xué)習(xí)模型和技巧既不能完全不懂?dāng)?shù)學(xué),兩眼一抹黑,也不該要求每個(gè)從業(yè)者都要精通各種數(shù)學(xué)理論。模型應(yīng)用者要長存對(duì)理論的敬畏之心,不要總想搞個(gè)大新聞?wù)f “機(jī)器學(xué)習(xí)也不過如此”,但做理論的也不必覺得高人一等,別人都是二等公民。
好了,不多說了,我去調(diào)包了 (滑稽)