機器學習和分類算法我總結(jié)了三條定律,銘記在心可少走很多彎路:
第一定律(不可比較定律):算法沒有絕對的好壞。
初學者常犯的一個錯誤就是過度醉心于研究和運用比較“先進”的算法??傆X得Naive Bayes不夠帥,非得上Logistic回歸;或者覺得BP神經(jīng)網(wǎng)絡(luò)不夠NB,非得搞支持向量機才覺得過癮。
然并卵。
殘酷的真相是,哪怕是再可靠、再嚴謹、再NB的期刊上的paper說某某算法效果顯著,閱讀時都需要加一個狀語從句,“在paper作者所用的數(shù)據(jù)集上”。換言之,每年雪花一樣的paper多數(shù)都是為了灌水而精心選擇實驗條件做出來的,對于你的問題、你的數(shù)據(jù),通常沒有什么效果。
算法和姑娘一樣,是沒有辦法進行絕對的比較的。
沒有好的算法,只有合適的算法。也就是說,算法所應(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ù)判算法的有效性。
科學=探索。這就是科研和工程最大的區(qū)別。
科研解決的是不確定能否解決的問題。需要的不斷的試錯。
如果這樣也就罷了。
為什么說算法連科學都算不上呢。因為科學的一個重要特性就是可證偽性。而算法是不能證偽的。
不靈驗就是不適用,靈驗了就是算的準。靈驗之前不知道準不準,靈驗之后就說準準準。
關(guān)鍵是,為什么不適用十有八九說不上來。
算命的說法是心不誠。算法的說法是data nature不合適。
嘿嘿,開個玩笑。
第三定律(不可預(yù)測定律):模型只是刻畫過去,而非描繪未來。
我們還常常犯的一個錯誤就是誤以為模型是能夠預(yù)測未來的。
其實模型只不過是對歷史數(shù)據(jù)的統(tǒng)計刻畫。
歷史數(shù)據(jù)不過是歷史的表象。
歷史有沒有本質(zhì)呢?
叔本華的意見是沒有。
黑格爾的意見是有。
人的歸因能力是洞察本質(zhì)的要件。
而算法沒有歸因能力。
再NB的算法也只能計算相關(guān)性,而無法計算因果性。
休謨說,這世界上沒有因果性。
他是對的,也是錯的。
因果性只存在于主觀中。沒有了主觀,就沒有了因果。
而算法沒有主觀。
所以算法無法計算因果性。
所以算法沒有歸因能力。
所以算法無法洞察本質(zhì)。
所以模型只能刻畫表象。
所以,一個刻畫歷史表象的模型是否能夠在未來依舊正確刻畫事實呢?
這完全取決于未來是否會不斷重復(fù)歷史。
而歷史給我們最大的借鑒,就是歷史幾乎完全不可借鑒。[*]
只有洞察本質(zhì)的人才能把系統(tǒng)進行分類,以確認模型是否以及如何運用。
我們面對的,有三類系統(tǒng):
一類是,完全不可重復(fù)的。比如扔硬幣。下一次正反面的概率和上一次以及全部歷史毫無關(guān)系。
另一類是,完全可重復(fù)的。比如小球掉落。掉落時間和重力加速度、距離的關(guān)系符合牛頓公式。這個是完全可以重復(fù)的實驗。
而還有一大類是,介于兩者之間的。比如股市漲落。股市漲落是完全隨機的嗎?不是。是能夠用歷史預(yù)測的嗎?也不是。這類復(fù)雜系統(tǒng)的問題,是目前我們面對的最復(fù)雜的問題之一。
不做進一步展開。
簡單總結(jié)一下,三條定律:
第一定律(不可比較定律):算法沒有絕對的好壞。
第二定律(不可判定定律):算法的有效性無法預(yù)判。
第三定律(不可預(yù)測定律):模型只是刻畫過去,而非描繪未來。
對于自然,對于主客觀的問題,我們要保持敬畏心。對于我們?nèi)祟惖闹R水平和能力的極度有限,要保持謙卑心。敬畏和謙卑不是畏縮,而是更加穩(wěn)健地前行。
沒有銀彈。No silver bullet.
[*] 注:此句應(yīng)刪除。這是對黑格爾的謬傳。
原發(fā)微信公眾號startupmost《最創(chuàng)業(yè)》 1441900800