算法在左,迷信向右
編輯導(dǎo)語(yǔ):在以前,經(jīng)常能看到大街上有老人擺著小攤子,身邊掛著“算命”的旗子,在那個(gè)時(shí)候,算命更像是一種手藝。進(jìn)入了21世紀(jì)之后,現(xiàn)代人普遍都相信科學(xué),大街上算命的大師也少了。事實(shí)上,現(xiàn)在的算命已經(jīng)不只是一門(mén)手藝,而成了一門(mén)產(chǎn)業(yè),也是一種“算法”。
算法代表了科學(xué),迷信意味著愚昧,這很容易區(qū)分,也沒(méi)什么好區(qū)分的。作為數(shù)據(jù)工作者,這本應(yīng)該就是板上釘釘?shù)氖虑?,根本沒(méi)有什么好爭(zhēng)辯的。但是,請(qǐng)你看下去,你會(huì)開(kāi)始疑惑,然后開(kāi)始懷疑人生。
一、奇怪的迷信傳統(tǒng)
我描述一些迷信傳統(tǒng),你猜猜是哪個(gè)群體做的事情:
- 在做某件事情之前48小時(shí)內(nèi),關(guān)鍵人物不許出現(xiàn);
- 在某件事進(jìn)行的適合,要把一枚硬幣放在指定地方;
- 不允許在某一天做這種事情;
- 關(guān)鍵人物出發(fā)之前,男士要在汽車(chē)后輪小便,女士則提前尿在容器里撒到汽車(chē)后輪;
- 正式開(kāi)始之前,每個(gè)人都要佩戴護(hù)身符。
你也許會(huì)說(shuō),這是邪教吧?這么邪性?
那么我告訴你,這是美國(guó)、蘇聯(lián)的宇航員上太空之前的一些傳統(tǒng)。就連中國(guó)宇航員楊利偉、翟志剛他們登艙之前,也都喝摻了酒的水,當(dāng)壯行酒。
不僅是宇航員,神舟五號(hào)上天的時(shí)候,所有人都要喝酒壯行。你說(shuō),這群人都是什么人?稱(chēng)他們?yōu)槭澜缟献铐敿獾目茖W(xué)家不過(guò)分吧?為什么他們都搞看上去沒(méi)啥用的迷信呢?
二、算法為什么準(zhǔn)?
算法是什么?
用最簡(jiǎn)單的二元分類(lèi)器來(lái)說(shuō):就是一個(gè)能把輸入的數(shù)據(jù)區(qū)分為是/否的自動(dòng)分類(lèi)器。只要你輸入的數(shù)據(jù)在范圍之內(nèi),就會(huì)像下面的硬幣分類(lèi)器一樣,更像1角的會(huì)滾到1角的盒子里,更像5角的會(huì)滾到5角的盒子里。
但是很多時(shí)候,輸出的結(jié)果并不會(huì)按照我們期望的那樣,也會(huì)搞錯(cuò)了。算法工程師大多數(shù)時(shí)候就是在提升準(zhǔn)確率,算法中有2個(gè)重要的指標(biāo),叫做“精準(zhǔn)率”和“召回率”。
準(zhǔn)確率就是這個(gè)算法模型一共預(yù)測(cè)準(zhǔn)了多少個(gè)案例的程度(1角硬幣到1角盒子,5角硬幣到5角盒子的情況,占所有硬幣的比),召回率就是1角硬幣到1角盒子占所有1角硬幣的比。
所以算法優(yōu)化的過(guò)程就是不斷提升準(zhǔn)確率和召喚率的過(guò)程,算法工程師的工作就是在不斷的調(diào)整參數(shù),讓1角硬幣滾到1角盒子里。
有些算法的過(guò)程我們是能理解并且控制的,比如決策樹(shù)及其衍生GBDT、XGBoot等。舉個(gè)例子:相親中,“合則約見(jiàn)”的決策樹(shù)長(zhǎng)這樣,寫(xiě)出來(lái)的算法也是這樣子的:
這個(gè)算法是個(gè)人都能看到懂,符合當(dāng)前條件再看下一個(gè)條件,不符合就拉倒。這些所有的邏輯都是我們自己定義的。機(jī)器忠實(shí)的按照這個(gè)模型比對(duì)每一個(gè)個(gè)體,這樣就把所有的個(gè)體都打上了“見(jiàn)”或者“不見(jiàn)”的標(biāo)簽。
但是也有很多算法是我們看不太懂的,比如K-means、神經(jīng)網(wǎng)絡(luò),K-means是一個(gè)聚類(lèi)算法,就是把所有的相親對(duì)象歸歸堆。
比如我們已經(jīng)有所有人的月薪和顏值數(shù)據(jù),用K-means聚3類(lèi)的話(huà),算法會(huì)隨機(jī)給出3組值,比如(月薪5000,顏值90)、(月薪9000,顏值60)、(月薪20000,顏值40),然后計(jì)算所有人的與這三個(gè)值之間的最短距離,更新K值,然后不斷重復(fù)直到觸發(fā)停止條件。
請(qǐng)注意初始的3組值是隨機(jī)的,也就是說(shuō),算法是在猜。所以每次執(zhí)行K-means,大概率結(jié)果是會(huì)不一樣的。
如果說(shuō)K-means是在猜,那好歹我們還能總結(jié)一下這幾類(lèi)都有啥特征。比如顏值高但是工資低的,可以叫好看組;顏值中等,月薪也中等的,可以叫實(shí)用組,顏值低但是月薪高的,可以叫有錢(qián)組等。
但是神經(jīng)網(wǎng)絡(luò)就是真的扯了,我們完全不能理解為什么得出這個(gè)結(jié)果。
神經(jīng)網(wǎng)絡(luò)分為三個(gè)層,輸入、隱藏、輸出,其中隱藏層又可以拆成N層,它會(huì)計(jì)算每一個(gè)路徑通到最后的成功概率,然后不斷的優(yōu)化路徑,達(dá)到最優(yōu)化的效果。
所以神經(jīng)網(wǎng)絡(luò)有個(gè)好處,就是自適應(yīng)和自學(xué)習(xí),迭代N次之后就會(huì)出現(xiàn)類(lèi)似于人類(lèi)?ài)橎菍W(xué)步的效果,所以都叫它“人工智能”算法。
圍棋界扛把子機(jī)器人阿法狗就是神經(jīng)網(wǎng)絡(luò)的升級(jí)版本,投喂了大量棋譜+超強(qiáng)算力的綜合體,現(xiàn)在有些人在下圍棋的時(shí)候會(huì)感覺(jué)出來(lái)對(duì)方是一個(gè)“人工智能”。
因?yàn)槿斯ぶ悄芷迨謺?huì)下出一些我們不能理解的手法,從這個(gè)角度上來(lái)說(shuō),算法本質(zhì)上就是在亂來(lái),如果死了就結(jié)束,重新再來(lái)一次,僅此而已。
所以你看,從決策樹(shù)到K-means到神經(jīng)網(wǎng)絡(luò),算法越來(lái)越復(fù)雜,越來(lái)越不能理解,越來(lái)越亂來(lái),越來(lái)越像是在瞎猜瞎撞,這哪里像科學(xué)啊!這比算命還扯好么?
三、算命為什么準(zhǔn)?
歲數(shù)越大,越信命。算法跑的越多,越覺(jué)得麻衣神相、算命有道理,比如《麻衣神相》有云:
一取威儀:如虎下山,百獸自驚。如鷹升騰,狐兔自戰(zhàn)。不怒而威,不但在眼,亦觀顴骨神氣取之。
二看精神:身如萬(wàn)斟之舟,駕于巨浪之中,搖而不動(dòng),引之不來(lái), 坐臥起居,神氣清靈…如此相者,不大貴亦當(dāng)小貴,富亦可許,不可妄談定。
《柳莊神相》有云:
把這些話(huà)轉(zhuǎn)換一下,跟算法的邏輯是一樣一樣的。先獲取信息,然后根據(jù)相書(shū)上已經(jīng)建好的模型,直接套用即可得出結(jié)果。
看上去好像有點(diǎn)扯?NONONONO!其實(shí)不僅是看相是這樣,算命也是這樣,需要很多信息其實(shí)都是話(huà)套話(huà)套出來(lái)的。算命師必備技能是觀察技巧和話(huà)術(shù)技巧,那些算命的口訣只是工具而已,怎么說(shuō)都有理。
比如:凡是很窮但是穿襪子的,必然是家中落寞之人,為啥?
因?yàn)楣艜r(shí)候真正的窮苦人家是不會(huì)穿襪子的,這在算法中就叫特征??!所以算命就會(huì)很準(zhǔn),因?yàn)樵诓煌5氖占畔ⅲ缓蟾鶕?jù)書(shū)上的和算命先生的經(jīng)驗(yàn),綜合起來(lái)的模型,得出一個(gè)非??孔V的結(jié)論,自然就很準(zhǔn)了。
比如“父在母先亡”。如果來(lái)算命的人想算父母,用這句就能應(yīng)對(duì)所有情況:
- 對(duì)方說(shuō):父母尚在呢,怎么解?好解啊,人總要死的么,反正是一個(gè)先死一個(gè)后死。
- 對(duì)方說(shuō):父母早亡,怎么解?一樣啊,反正一先死一個(gè)后死。
- 對(duì)方說(shuō):是爸爸先死的,怎么解?一樣啊,父在母先,亡。你看,對(duì)上了。
- 對(duì)方說(shuō):是媽媽先死的,怎么解?一樣啊,父在,母先亡。你看,還是對(duì)上了。
是不是覺(jué)得我在瞎扯?中國(guó)的算命就是迷信,就是在瞎扯是不是?好,咱再看一個(gè)例子:《Lie To ME!》
這是一部美?。簝?nèi)容我不多說(shuō),超級(jí)經(jīng)典的一部美劇,不過(guò)我們只需要看第一季的第一集就行。片中的萊特曼博士根本不需要嚴(yán)刑拷打或者識(shí)謊儀,只需要云淡風(fēng)輕的聊幾句,就能知道罪犯那句話(huà)是真的,那句話(huà)是假的。
他靠的是微表情。是不是感覺(jué)神叨叨的,跟跳大神也差不多了?聊了不到10句話(huà),看了幾眼,就能知道他想知道的一切?這樣太扯了吧?
其實(shí),我們想象一下算法的邏輯,微表情識(shí)謊與算法的邏輯是一致的。
博士自己構(gòu)建了一個(gè)模型,輸入信息是語(yǔ)氣、表情、肢體動(dòng)作等等細(xì)微的信息,模型是不同情況下的不同表現(xiàn)代表什么意義,輸出結(jié)果就是這句話(huà)是真的還是假的。
四、結(jié)語(yǔ)
你看多有意思???科學(xué)和迷信貌似就這樣完美的結(jié)合了?但是,為什么?
其實(shí)我更愿意這么理解迷信和算法:我們對(duì)這個(gè)世界的一切認(rèn)識(shí),其實(shí)都是一種解釋。迷信也好,算法也好,運(yùn)氣也好,命運(yùn)也好,都是我們自己理解世界、理解復(fù)雜事務(wù)的一種解釋。
我們無(wú)法理解為什么有人買(mǎi)彩票就能中獎(jiǎng),如同一只螞蟻不明白為什么旁邊的那只螞蟻突然被踩死一樣。螞蟻可能會(huì)把無(wú)聊的小孩當(dāng)成命運(yùn),因?yàn)樗斫獠涣巳祟?lèi)的行為。
如同我們不能理解也不知道如何提升去太空的成功概率,那么就找一個(gè)自己能解釋的事情去解釋就好了。
我們同樣不能完全理解這個(gè)世界,只能用看上去很合理的方式去解釋?zhuān)热鐗研芯?、朝輪胎撒泡尿、幸運(yùn)數(shù)字等等。
算法就一定科學(xué)嗎?迷信就一定不科學(xué)嗎?科學(xué)就一定是解釋這個(gè)世界唯一途徑嗎?再想想螞蟻,它們是不是也有自己的一套科學(xué)理論,來(lái)解釋他們看到的世界呢?
作者:大數(shù)據(jù)架構(gòu)師,國(guó)藥國(guó)華大數(shù)據(jù)總監(jiān),擅長(zhǎng)BI、數(shù)倉(cāng)、數(shù)據(jù)中臺(tái)產(chǎn)品規(guī)劃領(lǐng)域,公眾號(hào):大數(shù)據(jù)架構(gòu)師
本文由 @大數(shù)據(jù)架構(gòu)師 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來(lái)自 Pexels,基于 CC0 協(xié)議
我可不可以理解為不同時(shí)期對(duì)世界的認(rèn)知,沒(méi)有正確與否,只有合理不合理
對(duì)于人類(lèi)來(lái)說(shuō),是這樣的。不過(guò)誰(shuí)又能說(shuō)的準(zhǔn)呢?沒(méi)準(zhǔn)算命是另一種更簡(jiǎn)單且準(zhǔn)確的建模呢?
確實(shí),好像你說(shuō)也對(duì)
有點(diǎn)東西
有一個(gè)地方存疑:召回率應(yīng)該是1角硬幣進(jìn)入5角盒子占所有1角硬幣的比例。你看對(duì)嗎?
TP: 將正類(lèi)預(yù)測(cè)為正類(lèi)數(shù) 40
FN: 將正類(lèi)預(yù)測(cè)為負(fù)類(lèi)數(shù) 20
召回率(recall) = TP/(TP+FN) 。
XGboost
有意思,哈哈哈