機(jī)器學(xué)習(xí)和分類算法我總結(jié)了三條定律,銘記在心可少走很多彎路:
第一定律(不可比較定律):算法沒有絕對的好壞贸伐。
初學(xué)者常犯的一個錯誤就是過度醉心于研究和運用比較“先進(jìn)”的算法蹦肴。總覺得Naive Bayes不夠帥扇苞,非得上Logistic回歸据某;或者覺得BP神經(jīng)網(wǎng)絡(luò)不夠NB橡娄,非得搞支持向量機(jī)才覺得過癮。
然并卵癣籽。
殘酷的真相是挽唉,哪怕是再可靠、再嚴(yán)謹(jǐn)才避、再NB的期刊上的paper說某某算法效果顯著橱夭,閱讀時都需要加一個狀語從句,“在paper作者所用的數(shù)據(jù)集上”桑逝。換言之棘劣,每年雪花一樣的paper多數(shù)都是為了灌水而精心選擇實驗條件做出來的,對于你的問題楞遏、你的數(shù)據(jù)茬暇,通常沒有什么效果。
算法和姑娘一樣寡喝,是沒有辦法進(jìn)行絕對的比較的糙俗。
沒有好的算法,只有合適的算法预鬓。也就是說巧骚,算法所應(yīng)用于的數(shù)據(jù)的特性往往更關(guān)鍵。正如姑娘所嫁的你是什么人品、什么條件往往更關(guān)鍵一樣劈彪。這就是俗話說的竣蹦,看飯下菜。比如垃圾郵件分類沧奴,樸素貝葉斯就非常棒了痘括。
不要追求所謂“更好”的算法。工程實踐上滔吠,往往是體系結(jié)構(gòu)纲菌、運算能力決定了對于算法的選擇。就像不要盲目追求你消受不起的姑娘疮绷。比如搜索引擎的CPC廣告翰舌,Logistic回歸就是比SVM更好的選擇,因為其求解速度更快冬骚、更容易并行化灶芝。
簡言之,數(shù)據(jù)比算法重要唉韭。工程性能比算法性能重要。
第二定律(不可判定定律):算法的有效性無法預(yù)判犯犁。
有句玩笑話属愤,算法如算命。
有個老教授的笑話說酸役,他每天早上起來就找個數(shù)據(jù)集跑一遍算法住诸,看看是否撞大運得到了好的結(jié)果。
這反應(yīng)了一個現(xiàn)實涣澡,就是對于算法的科研(以發(fā)paper為目的的)是很原始的“體力活”——拿一個新算法贱呐,然后不斷找新的數(shù)據(jù)集去實驗,運氣好碰到一類數(shù)據(jù)集有好的效果入桂,就能發(fā)一篇不錯的paper奄薇。
也就是說,給出一個算法抗愁,再給出一個數(shù)據(jù)集馁蒂,我們能夠肯定這個算法對于這個數(shù)據(jù)集是有效(判真)的唯一方法就是拿這個算法跑一遍這個數(shù)據(jù)。沒有一個簡單蜘腌、方便沫屡、精確的方法能夠預(yù)判算法的有效性。
科學(xué)=探索撮珠。這就是科研和工程最大的區(qū)別沮脖。
科研解決的是不確定能否解決的問題。需要的不斷的試錯。
如果這樣也就罷了勺届。
為什么說算法連科學(xué)都算不上呢驶俊。因為科學(xué)的一個重要特性就是可證偽性。而算法是不能證偽的涮因。
不靈驗就是不適用废睦,靈驗了就是算的準(zhǔn)。靈驗之前不知道準(zhǔn)不準(zhǔn)养泡,靈驗之后就說準(zhǔn)準(zhǔn)準(zhǔn)嗜湃。
關(guān)鍵是,為什么不適用十有八九說不上來澜掩。
算命的說法是心不誠购披。算法的說法是data nature不合適。
嘿嘿肩榕,開個玩笑刚陡。
第三定律(不可預(yù)測定律):模型只是刻畫過去,而非描繪未來株汉。
我們還常常犯的一個錯誤就是誤以為模型是能夠預(yù)測未來的筐乳。
其實模型只不過是對歷史數(shù)據(jù)的統(tǒng)計刻畫。
歷史數(shù)據(jù)不過是歷史的表象乔妈。
歷史有沒有本質(zhì)呢蝙云?
叔本華的意見是沒有。
黑格爾的意見是有路召。
人的歸因能力是洞察本質(zhì)的要件勃刨。
而算法沒有歸因能力。
再NB的算法也只能計算相關(guān)性股淡,而無法計算因果性身隐。
休謨說,這世界上沒有因果性唯灵。
他是對的贾铝,也是錯的。
因果性只存在于主觀中埠帕。沒有了主觀忌傻,就沒有了因果。
而算法沒有主觀搞监。
所以算法無法計算因果性水孩。
所以算法沒有歸因能力。
所以算法無法洞察本質(zhì)琐驴。
所以模型只能刻畫表象俘种。
所以秤标,一個刻畫歷史表象的模型是否能夠在未來依舊正確刻畫事實呢?
這完全取決于未來是否會不斷重復(fù)歷史宙刘。
而歷史給我們最大的借鑒苍姜,就是歷史幾乎完全不可借鑒。[*]
只有洞察本質(zhì)的人才能把系統(tǒng)進(jìn)行分類悬包,以確認(rèn)模型是否以及如何運用衙猪。
我們面對的,有三類系統(tǒng):
一類是布近,完全不可重復(fù)的垫释。比如扔硬幣。下一次正反面的概率和上一次以及全部歷史毫無關(guān)系撑瞧。
另一類是棵譬,完全可重復(fù)的。比如小球掉落预伺。掉落時間和重力加速度订咸、距離的關(guān)系符合牛頓公式。這個是完全可以重復(fù)的實驗酬诀。
而還有一大類是脏嚷,介于兩者之間的。比如股市漲落瞒御。股市漲落是完全隨機(jī)的嗎然眼?不是。是能夠用歷史預(yù)測的嗎葵腹?也不是。這類復(fù)雜系統(tǒng)的問題屿岂,是目前我們面對的最復(fù)雜的問題之一践宴。
不做進(jìn)一步展開。
簡單總結(jié)一下爷怀,三條定律:
第一定律(不可比較定律):算法沒有絕對的好壞阻肩。
第二定律(不可判定定律):算法的有效性無法預(yù)判。
第三定律(不可預(yù)測定律):模型只是刻畫過去运授,而非描繪未來烤惊。
對于自然,對于主客觀的問題吁朦,我們要保持敬畏心柒室。對于我們?nèi)祟惖闹R水平和能力的極度有限,要保持謙卑心逗宜。敬畏和謙卑不是畏縮雄右,而是更加穩(wěn)健地前行空骚。
沒有銀彈。No silver bullet.
[*] 注:此句應(yīng)刪除擂仍。這是對黑格爾的謬傳囤屹。
原發(fā)微信公眾號startupmost《最創(chuàng)業(yè)》 1441900800