編輯導語:在以前,經常能看到大街上有老人擺著小攤子,身邊掛著“算命”的旗子,在那個時候,算命更像是一種手藝。進入了21世紀之後,現代人普遍都相信科學,大街上算命的大師也少了。事實上,現在的算命已經不只是一門手藝,而成了一門產業,也是一種“算法”。
算法代表了科學,迷信意味著愚昧,這很容易區分,也沒什麼好區分的。作為數據工作者,這本應該就是板上釘釘的事情,根本沒有什麼好爭辯的。但是,請你看下去,你會開始疑惑,然後開始懷疑人生。
一、奇怪的迷信傳統
我描述一些迷信傳統,你猜猜是哪個群體做的事情:
在做某件事情之前48小時內,關鍵人物不許出現;
在某件事進行的適合,要把一枚硬幣放在指定地方;
不允許在某一天做這種事情;
關鍵人物出發之前,男士要在汽車後輪小便,女士則提前尿在容器裡撒到汽車後輪;
正式開始之前,每個人都要佩戴護身符。
你也許會說,這是邪教吧?這麼邪性?
那麼我告訴你,這是美國、蘇聯的宇航員上太空之前的一些傳統。就連中國宇航員楊利偉、翟志剛他們登艙之前,也都喝摻了酒的水,當壯行酒。
不僅是宇航員,神舟五號上天的時候,所有人都要喝酒壯行。你說,這群人都是什麼人?稱他們為世界上最頂尖的科學家不過分吧?為什麼他們都搞看上去沒啥用的迷信呢?
二、算法為什麼準?
算法是什麼?
用最簡單的二元分類器來說:就是一個能把輸入的數據區分為是/否的自動分類器。只要你輸入的數據在範圍之內,就會像下面的硬幣分類器一樣,更像1角的會滾到1角的盒子裡,更像5角的會滾到5角的盒子裡。
但是很多時候,輸出的結果並不會按照我們期望的那樣,也會搞錯了。算法工程師大多數時候就是在提升準確率,算法中有2個重要的指標,叫做“精準率”和“召回率”。
準確率就是這個算法模型一共預測準了多少個案例的程度(1角硬幣到1角盒子,5角硬幣到5角盒子的情況,佔所有硬幣的比),召回率就是1角硬幣到1角盒子佔所有1角硬幣的比。
所以算法優化的過程就是不斷提升準確率和召喚率的過程,算法工程師的工作就是在不斷的調整參數,讓1角硬幣滾到1角盒子裡。
有些算法的過程我們是能理解並且控制的,比如決策樹及其衍生GBDT、XGBoot等。舉個例子:相親中,“合則約見”的決策樹長這樣,寫出來的算法也是這樣子的:
這個算法是個人都能看到懂,符合當前條件再看下一個條件,不符合就拉倒。這些所有的邏輯都是我們自己定義的。機器忠實的按照這個模型比對每一個個體,這樣就把所有的個體都打上了“見”或者“不見”的標籤。
但是也有很多算法是我們看不太懂的,比如K-means、神經網絡,K-means是一個聚類算法,就是把所有的相親對象歸歸堆。
比如我們已經有所有人的月薪和顏值數據,用K-means聚3類的話,算法會隨機給出3組值,比如(月薪5000,顏值90)、(月薪9000,顏值60)、(月薪20000,顏值40),然後計算所有人的與這三個值之間的最短距離,更新K值,然後不斷重複直到觸發停止條件。
請注意初始的3組值是隨機的,也就是說,算法是在猜。所以每次執行K-means,大概率結果是會不一樣的。
如果說K-means是在猜,那好歹我們還能總結一下這幾類都有啥特徵。比如顏值高但是工資低的,可以叫好看組;顏值中等,月薪也中等的,可以叫實用組,顏值低但是月薪高的,可以叫有錢組等。
但是神經網絡就是真的扯了,我們完全不能理解為什麼得出這個結果。
神經網絡分為三個層,輸入、隱藏、輸出,其中隱藏層又可以拆成N層,它會計算每一個路徑通到最後的成功概率,然後不斷的優化路徑,達到最優化的效果。
所以神經網絡有個好處,就是自適應和自學習,迭代N次之後就會出現類似於人類蹣跚學步的效果,所以都叫它“人工智能”算法。
圍棋界扛把子機器人阿法狗就是神經網絡的升級版本,投餵了大量棋譜+超強算力的綜合體,現在有些人在下圍棋的時候會感覺出來對方是一個“人工智能”。
因為人工智能棋手會下出一些我們不能理解的手法,從這個角度上來說,算法本質上就是在亂來,如果死了就結束,重新再來一次,僅此而已。
所以你看,從決策樹到K-means到神經網絡,算法越來越複雜,越來越不能理解,越來越亂來,越來越像是在瞎猜瞎撞,這哪裡像科學啊!這比算命還扯好麼?
三、算命為什麼準?
歲數越大,越信命。算法跑的越多,越覺得麻衣神相、算命有道理,比如《麻衣神相》有雲:
一取威儀:如虎下山,百獸自驚。如鷹升騰,狐兔自戰。不怒而威,不但在眼,亦觀顴骨神氣取之。
二看精神:身如萬斟之舟,駕於巨浪之中,搖而不動,引之不來, 坐臥起居,神氣清靈…如此相者,不大貴亦當小貴,富亦可許,不可妄談定。
《柳莊神相》有雲:
把這些話轉換一下,跟算法的邏輯是一樣一樣的。先獲取信息,然後根據相書上已經建好的模型,直接套用即可得出結果。
看上去好像有點扯?NONONONO!其實不僅是看相是這樣,算命也是這樣,需要很多信息其實都是話套話套出來的。算命師必備技能是觀察技巧和話術技巧,那些算命的口訣只是工具而已,怎麼說都有理。
比如:凡是很窮但是穿襪子的,必然是家中落寞之人,為啥?
因為古時候真正的窮苦人家是不會穿襪子的,這在算法中就叫特徵啊!所以算命就會很準,因為在不停的收集信息,然後根據書上的和算命先生的經驗,綜合起來的模型,得出一個非常靠譜的結論,自然就很準了。
比如“父在母先亡”。如果來算命的人想算父母,用這句就能應對所有情況:
對方說:父母尚在呢,怎麼解?好解啊,人總要死的麼,反正是一個先死一個後死。
對方說:父母早亡,怎麼解?一樣啊,反正一先死一個後死。
對方說:是爸爸先死的,怎麼解?一樣啊,父在母先,亡。你看,對上了。
對方說:是媽媽先死的,怎麼解?一樣啊,父在,母先亡。你看,還是對上了。
是不是覺得我在瞎扯?中國的算命就是迷信,就是在瞎扯是不是?好,咱再看一個例子:《Lie To ME!》
這是一部美劇:內容我不多說,超級經典的一部美劇,不過我們只需要看第一季的第一集就行。片中的萊特曼博士根本不需要嚴刑拷打或者識謊儀,只需要雲淡風輕的聊幾句,就能知道罪犯那句話是真的,那句話是假的。
他靠的是微表情。是不是感覺神叨叨的,跟跳大神也差不多了?聊了不到10句話,看了幾眼,就能知道他想知道的一切?這樣太扯了吧?
其實,我們想象一下算法的邏輯,微表情識謊與算法的邏輯是一致的。
博士自己構建了一個模型,輸入信息是語氣、表情、肢體動作等等細微的信息,模型是不同情況下的不同表現代表什麼意義,輸出結果就是這句話是真的還是假的。
四、結語
你看多有意思啊?科學和迷信貌似就這樣完美的結合了?但是,為什麼?
其實我更願意這麼理解迷信和算法:我們對這個世界的一切認識,其實都是一種解釋。迷信也好,算法也好,運氣也好,命運也好,都是我們自己理解世界、理解複雜事務的一種解釋。
我們無法理解為什麼有人買彩票就能中獎,如同一隻螞蟻不明白為什麼旁邊的那隻螞蟻突然被踩死一樣。螞蟻可能會把無聊的小孩當成命運,因為它理解不了人類的行為。
如同我們不能理解也不知道如何提升去太空的成功概率,那麼就找一個自己能解釋的事情去解釋就好了。
我們同樣不能完全理解這個世界,只能用看上去很合理的方式去解釋,比如壯行酒、朝輪胎撒泡尿、幸運數字等等。
算法就一定科學嗎?迷信就一定不科學嗎?科學就一定是解釋這個世界唯一途徑嗎?再想想螞蟻,它們是不是也有自己的一套科學理論,來解釋他們看到的世界呢?
作者:大數據架構師,國藥國華大數據總監,擅長BI、數倉、數據中臺產品規劃領域,公眾號:大數據架構師
本文由 @大數據架構師 原創發佈於人人都是產品經理。未經許可,禁止轉載
題圖來自 Pexels,基於 CC0 協議
轉載請超鏈接註明:頭條資訊 » 算法在左,迷信向右
免責聲明 :非本網註明原創的信息,皆為程序自動獲取互聯網,目的在於傳遞更多信息,並不代表本網贊同其觀點和對其真實性負責;如此頁面有侵犯到您的權益,請給站長發送郵件,並提供相關證明(版權證明、身份證正反面、侵權鏈接),站長將在收到郵件24小時內刪除。