機(jī)器學(xué)習(xí)菜鳥最常犯的5個(gè)錯(cuò)誤,以及如何避免
選文|Aileen
翻譯|姜范波
校對|周沖
我常幫助菜鳥們學(xué)習(xí)機(jī)器學(xué)習(xí)。
但是我看到,他們在思維模式上和行動(dòng)上,經(jīng)常犯同樣的錯(cuò)誤。
本文我要指出他們經(jīng)常栽跟頭的5個(gè)地方。
我發(fā)自肺腑地相信,對于應(yīng)用機(jī)器學(xué)習(xí),任何人都可以學(xué),并且學(xué)得很好。
希望你能夠意識到自己已經(jīng)毫無懸念地掉進(jìn)了以下的某個(gè)坑里,然后果斷采取行動(dòng),回到正路上。
讓我們開始吧。
不要從理論開始
傳統(tǒng)的方法教機(jī)器學(xué)習(xí)是自下而上的——
step1:努力學(xué)習(xí)數(shù)學(xué)。
step2:努力學(xué)習(xí)機(jī)器學(xué)習(xí)理論。
step3:努力從頭開始實(shí)現(xiàn)算法。
stepX???(等等等等,自行腦補(bǔ)。。。)
終于,開始使用機(jī)器學(xué)習(xí)(你的目標(biāo)在此!)
這條路漫長,艱難。
然而,這是為想要摘金奪銀的學(xué)術(shù)界大神們設(shè)計(jì)的。
你,只想要一個(gè)結(jié)果的吃瓜群眾,湊什么熱鬧!
陷阱
如果你有以下想法或者說法,你已不幸落井——
- 我得先完成這門線性代數(shù)的課才行。
- 我得回學(xué)校先讀個(gè)博士學(xué)位。
- 我得先啃完這本教科書。
出路
耗費(fèi)4年在數(shù)學(xué)或者深?yuàn)W的算法上,能將你帶到目標(biāo)么?
更大的可能是然并卵。你停步不前。或者知難而退。反正離你的目標(biāo)不會(huì)越來越近。
出路是——立正,稍息,向后轉(zhuǎn)!
如果機(jī)器學(xué)習(xí)的價(jià)值在于準(zhǔn)確的預(yù)測,那么要學(xué)的就是如何將問題模式化并做出準(zhǔn)確的預(yù)測。就從這開始。
然后把這件事兒弄好,好得不要不要的!
在你需要的時(shí)候,去閱讀、截取、武裝理論知識,但僅限于為你的目標(biāo)服務(wù),僅限于這樣做會(huì)使你傳遞出更大價(jià)值。
不要去學(xué)所有的機(jī)器學(xué)習(xí)
機(jī)器學(xué)習(xí)浩瀚無邊啊。
它是計(jì)算機(jī)的自動(dòng)學(xué)習(xí)過程,與人工智能多有交集。
從機(jī)器人的深?yuàn)W學(xué)習(xí)理論算起,這個(gè)領(lǐng)域真的很大。
大得你無法一一收入囊中。
陷阱
如果你有下面的想法,你已不幸落井——
- 我得學(xué)會(huì)某個(gè)網(wǎng)頁上提到的所有新技術(shù)。
- 我得學(xué)會(huì)計(jì)算機(jī)視覺,自然語言處理,語音處理,等。
- 首先。我得學(xué)會(huì)所有的所有。
出路
找個(gè)小旮旯,集中于此。
進(jìn)一步縮小范圍。
機(jī)器學(xué)習(xí)最有價(jià)值的部分是預(yù)測性建模。從數(shù)據(jù)創(chuàng)建模型進(jìn)行預(yù)測。
從這里開始。
接下來,集中在某種與你最相關(guān),或者你最感興趣的模型。
然后死纏爛打。
也許你選擇了某種技術(shù),比如深度學(xué)習(xí)。也許你選擇了某種問題,比如推薦系統(tǒng)。
也許你還沒拿定主意,那么就選一個(gè)先。學(xué)好它?;蛘呋揪?。
然后,轉(zhuǎn)戰(zhàn)到另一個(gè)領(lǐng)域。
不要在算法上虛度光陰
機(jī)器學(xué)習(xí)確實(shí)關(guān)乎算法。
好多好多好多算法。
每個(gè)算法都是一個(gè)復(fù)雜的系統(tǒng)
是一個(gè)學(xué)習(xí)的小宇宙,有它自己的生態(tài)系統(tǒng)。
在算法的世界里你會(huì)迷路。所有人都會(huì)。
那些人叫做學(xué)術(shù)界。
陷阱
如果你有下面的說法,那么你已不幸落井——
- 我得弄明白它怎么工作的,在我使用它之前。
- 我得深入理解超參數(shù)先。
- 我調(diào)參的時(shí)候得解釋清楚因果關(guān)系。
出路
算法不是結(jié)果。它們是得到結(jié)果的方法。
實(shí)際上,機(jī)器學(xué)習(xí)算法只是一堆商品。換掉它們。試用幾十個(gè)。拿一些出來調(diào)調(diào)參數(shù)。接著換。一個(gè)更好的結(jié)果會(huì)讓你對算法更有感覺,但是要知道什么時(shí)候止步。系統(tǒng)化這個(gè)過程。設(shè)計(jì)調(diào)參實(shí)驗(yàn),讓它們自動(dòng)執(zhí)行和分析。
機(jī)器學(xué)習(xí)無外乎算法的正確應(yīng)用。但是應(yīng)用機(jī)器學(xué)習(xí)不只是在算法里虛度光陰。集中火力在每個(gè)項(xiàng)目要得到的結(jié)果,即一系列的預(yù)測,或者一個(gè)可以得到這些預(yù)測的模型。
不要從頭開始實(shí)現(xiàn)一切
從頭開始實(shí)現(xiàn)算法,你可以學(xué)到很多。
有時(shí)候你甚至需要去實(shí)現(xiàn)一項(xiàng)技術(shù)
因?yàn)闆]有合適的,
或者找不到現(xiàn)成的實(shí)現(xiàn)方案。
但是,一般來說,你不必如此,你也不該如此。
你的實(shí)現(xiàn)可能糟透了。抱歉——
它可能有小錯(cuò)誤。
它可能很慢。
它可能太占內(nèi)存。
它可能處理不好邊界情形。
它甚至可能壓根兒就錯(cuò)了。
陷阱
如果有以下情形,不幸你已落井——
- 你在寫代碼導(dǎo)入CSV文件(到底怎么回事!)
- 你在寫代碼做一個(gè)標(biāo)準(zhǔn)的算法,比如線性回歸
- 你在寫代碼做交叉驗(yàn)證或者超參數(shù)調(diào)節(jié)。
出路
停下來!
使用一個(gè)通用的,已知是正確的,成千上萬的程序猿都在用的庫來處理邊界情形。
使用一個(gè)高度優(yōu)化的庫,哪怕最后一個(gè)循環(huán),最后一個(gè)字節(jié)都已經(jīng)擠干凈,最小限度占用內(nèi)存。
使用圖形化的用戶界面,避免不必要的編程。
每次你想要用的時(shí)候都實(shí)現(xiàn)所有一切,對機(jī)器學(xué)習(xí)菜鳥而言,是一個(gè)非常慢的方法。
如果你想學(xué)習(xí)實(shí)現(xiàn),那么,誠實(shí)一點(diǎn),把它和學(xué)習(xí)利用應(yīng)用機(jī)器學(xué)習(xí)來傳遞價(jià)值區(qū)分開來。
不要總是換工具
有很多非常偉大的機(jī)器學(xué)習(xí)工具。
實(shí)際上,偉大的工具,連同數(shù)據(jù)和高性能硬件,
是機(jī)器學(xué)習(xí)得以復(fù)興的原因。
但是,當(dāng)你遇到接踵而至的新工具時(shí)
你就掉進(jìn)流連忘返的坑里了。
陷阱
如果你有如下情形,不幸你已落井——
- 使用你聽說過的新工具。
- 發(fā)現(xiàn)你每周或每月都在學(xué)習(xí)新的工具或者語言。
- 學(xué)一個(gè)庫,見新思遷,半途而廢。
出路
學(xué)習(xí)和使用新工具。
但是要有策略。
把新工具整合到解決問題的系統(tǒng)過程里。
如果你選好一個(gè)主打平臺(tái)并堅(jiān)守不移,你會(huì)高效得多。至少堅(jiān)持到你能擅長或者精通一個(gè)。
推薦3個(gè)平臺(tái):
· Weka Workbench
· Python Ecosystem
· R platform
你的領(lǐng)域內(nèi)還會(huì)有其它的平臺(tái)和專業(yè)工具,堅(jiān)持到底是愛好者與專業(yè)人士的區(qū)別。
總結(jié)
本文你見識了我所見識到的機(jī)器學(xué)習(xí)菜鳥常犯的5大錯(cuò)誤。重要的事再說一遍,它們是:
1. 不要從理論開始
2. 不要去學(xué)機(jī)器學(xué)習(xí)的所有東西
3. 不要在算法里虛度光陰
4. 不要從頭實(shí)現(xiàn)一切
5. 不要總是換工具。
【本文是51CTO專欄機(jī)構(gòu)大數(shù)據(jù)文摘的原創(chuàng)譯文,微信公眾號“大數(shù)據(jù)文摘( id: BigDataDigest)”】