前言
人工智能和機(jī)器學(xué)習(xí)是我們上一期看書的主題。 在厚著臉皮問一位在倫敦只有過一次火鍋之緣的DeepMind的研究者薦書以后, 在他善意無私推薦的幾本書里面, 我們選擇了The Master Algorithm by Pedro Domingos, 直譯過來, 大致是大師算法, 但是按照中文的語言習(xí)慣, 我認(rèn)為翻譯成萬能算法更為合適, 就如同一把萬能鑰匙一樣, 萬能算法能打開所有知識(shí)以及解決方法的大門。本書還有一個(gè)副標(biāo)題 How the quest for the ultimate learning machine will remake our world 對(duì)終極算法的追求如何重塑我們的世界。

作者Pedro Domingos是機(jī)器學(xué)習(xí)領(lǐng)域里的專家。這本書出版于15年9月, 是專門寫給非專業(yè)的人士看的。盡管如此,這本書幾乎是我們讀過的書里面對(duì)我而言難度最高的書了。我自己有一定的神經(jīng)生理,生物學(xué),心理學(xué),和醫(yī)學(xué)統(tǒng)計(jì)背景,也因?yàn)楣ぷ鞯年P(guān)系主導(dǎo)參與過工作流程電子化過程中前期的流程設(shè)計(jì)過程,這是在閱讀這本書里比較對(duì)應(yīng)的地方。 也可以比較自信地說閱讀難度不在于英文本身, 而是由于我本身非工科出身,缺的幾學(xué)期高數(shù)課, 以及科學(xué)思維和素養(yǎng)上的差異。??好在這本書本身就是寫給我這樣的廣大非專業(yè)的人看的,機(jī)器學(xué)習(xí)在發(fā)展過程中也有很多跨學(xué)科的交叉。 作者在省略繁重的數(shù)學(xué)運(yùn)算之后, 試圖用最直白淺顯的方式介紹機(jī)器學(xué)習(xí),時(shí)不時(shí)還有一些俏皮話和各種梗,就如同彩蛋一樣非常有趣。 如果你覺得我有的地方說得不清楚,甚至講錯(cuò)的地方,第一個(gè)可能真的就是我本身專業(yè)水平有限,第二個(gè)就是從英文到中文的過程中,我也經(jīng)歷了語言的轉(zhuǎn)換。同樣我們之前也經(jīng)常遇到這種情況,閱讀的時(shí)候看的英文, 討論的時(shí)候用中文, 大家就有點(diǎn)兒舌頭捋不直甚是搞笑。既然是交流討論,互相學(xué)習(xí)為主,那么也沒有必要吹毛求疵,交流過程中有進(jìn)步就好。
因?yàn)槠年P(guān)系, 我會(huì)把本書的閱讀筆記分開發(fā)布在這個(gè)平臺(tái)。 我最初想一篇文章就搞定了, 結(jié)果發(fā)現(xiàn)字?jǐn)?shù)太多, 想的是分上下兩篇,結(jié)果現(xiàn)在我也不知道會(huì)分成幾篇了, 寫完了為止吧……
正文
無論我們看見與否,愿意接受與否, 機(jī)器學(xué)習(xí)都已經(jīng)在現(xiàn)代生活中無處不在, 不管你用百度還是谷歌, 亞馬遜還是淘寶, 當(dāng)你在網(wǎng)絡(luò)上, 手機(jī)終端輸入搜索關(guān)鍵詞,尋找你想去的地方, 想去的餐館, 想點(diǎn)的外賣, 感興趣的有購(gòu)買意向的物品, 網(wǎng)絡(luò)給你答案的同時(shí), 網(wǎng)絡(luò)的終端也在學(xué)習(xí)什么是你感興趣的, 然后一次次搜索的結(jié)果會(huì)讓你的興趣愛好更加被了解, 以便下次你上網(wǎng)時(shí)推薦給你感興趣的物品或服務(wù)。 這些現(xiàn)象的背后, 都有機(jī)器學(xué)習(xí)的影子。
機(jī)器學(xué)習(xí)也在試圖分解愛情的密碼, 幫人們尋找到能共度短至一晚,長(zhǎng)至一生的意中人。雖然據(jù)我身邊的少部分用戶體驗(yàn)而言,當(dāng)你想要尋找到長(zhǎng)至一生的人生伴侶時(shí), 它更像是排除了許多不適合的人。從一無所知,到知道什么不合適, 這起碼也是種進(jìn)步
。 畢竟短至一晚的參數(shù)可以很少, 而長(zhǎng)至一生的參數(shù)很多,不同的參數(shù)還帶著不同的權(quán)重,什么樣的算法目前都很難不在高維的數(shù)據(jù)空間里迷失掉。。。。 (一本正經(jīng)地討論不正經(jīng)的問題)
通過不同學(xué)科的角度, 作者試圖證明他的猜想,那就是萬能算法的存在。 萬能算法于機(jī)器學(xué)習(xí)的意義, 就如同DNA作為生命科學(xué)的密碼, 大腦于神經(jīng)科學(xué)而言,作者心目中的萬能算法能夠推算出過去,現(xiàn)在,未來的所有知識(shí)。?
“All knowledge_ past, present, and future_ can be derived from data by a single, universal learning algorithm.?”
作者把目前機(jī)器學(xué)習(xí)里面的主要五種算法學(xué)派都梳理了一遍,然后試圖在五種算法里面尋找共性, 或者將五種算法結(jié)合, 創(chuàng)造一種萬能算法。 這五種學(xué)派, 我更愿意謔稱他們?yōu)榱髋?,分別為符號(hào)派(symbolist),聯(lián)結(jié)派(connectionist), 進(jìn)化派(evolutionist), 貝葉斯派(Baysian), 以及比較派(Anologist)。
如同所有的學(xué)科引言都喜歡從討論哲學(xué)開始一樣, 作者一上來讓讀者思考, 你是一個(gè)理性主義者(rationalist) 還是經(jīng)驗(yàn)主義(expiricist)。這里的理性主義者不是像我們平常討論某人理性還是感性。而是哲學(xué)的兩大流派:如何認(rèn)識(shí)這個(gè)世界? 理性主義者認(rèn)為感官是具有欺騙性的, 只有邏輯推理才是通向知識(shí)的唯一途徑 (senses deceive and that logical reasoning is the only sure path to knowledge), 經(jīng)驗(yàn)主義者認(rèn)為所有的推理都是容易出錯(cuò)的, 知識(shí)的獲得來源于觀察和實(shí)驗(yàn)。雖然一個(gè)不相信感官, 一個(gè)相信感官,但是這兩個(gè)哲學(xué)派別都在啟蒙運(yùn)動(dòng)時(shí)大綻光彩。前派建立了微積分和分析幾何,后派奠定了現(xiàn)代科學(xué)觀察實(shí)驗(yàn)研究的基礎(chǔ)。而著名的經(jīng)驗(yàn)主義家大衛(wèi) 休謨(David Hume)提出了一個(gè)如同達(dá)摩克斯劍一樣懸掛于所有知識(shí)之上的問題:?
How can we ever be justified in generalising from what we’ve seen to what we haven’t.?
我們?nèi)绾文軌蜃C實(shí)我們所見過的,也會(huì)適用于我們還沒見過的?
作者說所有學(xué)習(xí)算法,在某種程度上, 都是在試圖回答這個(gè)問題。 我只想說,真的是所有的科學(xué)研究,所謂人生經(jīng)驗(yàn),雞湯文,都要能夠回答這個(gè)問題才能站得住腳。 而我, 在看這本書時(shí), 被這個(gè)問題糾纏了很久, 說實(shí)在的, 我沒法回答。 甚至覺得, 這沒法證明。假如稍微搜一下休謨,也能理解為什么他會(huì)被現(xiàn)代人視為已經(jīng)接近于虛無主義。因?yàn)槿绻銖倪^去的經(jīng)驗(yàn)里面學(xué)習(xí)總結(jié)的所有經(jīng)驗(yàn)其實(shí)都不適用于未來時(shí), 那其實(shí)所有的知識(shí)都是沒有用的。最后作者意譯并簡(jiǎn)寫了牛頓推理四大規(guī)則里的第三條, 算是大致回答了休謨提的問題:
在我們所見的(世界)里面為真的, 在宇宙里也為真。
“Newton’s Principle: Whatever is true of everything we’ve seen is true of everything in the universe. ”
這是牛頓總結(jié)地球上觀察到的引力原理也能夠適用于宇宙時(shí), 所提出的四大規(guī)則中的第三條。(有興趣虐一下腦的人可以搜Newton’s four rules of induction/reasoning)。 在牛頓之后的幾百年里的科學(xué)觀測(cè)都印證了宇宙中的物質(zhì)都適用于牛頓定律。作者說這條規(guī)定也如同機(jī)器學(xué)習(xí)領(lǐng)域的第一條不成文的規(guī)定, 科學(xué)界的研究都是在這個(gè)框架以內(nèi)開展的。 作者也俏皮地說到想象如果有一個(gè)特別多變?nèi)涡缘挠钪娌贿m用于這條定律, 那么這個(gè)宇宙就不是我們所在的宇宙了。
符號(hào)學(xué)派的概念(Concept)與規(guī)則(set of rules)
符號(hào)學(xué)派的核心觀念就是所有的智慧都能簡(jiǎn)化成可操作的符號(hào)。就如同數(shù)學(xué)和物理通過數(shù)字和符號(hào)來代表及運(yùn)算自然界,甚至社會(huì)運(yùn)作的規(guī)律, 符號(hào)學(xué)派的機(jī)器學(xué)習(xí)者也試圖用符號(hào)和邏輯運(yùn)算來解決機(jī)器學(xué)習(xí)的問題。
簡(jiǎn)單地來說, 符號(hào)學(xué)派的幾個(gè)基本元素就是概念(concepts)和規(guī)則(set of rules), 決策樹 (decison tree)是其中一種比較直觀表示邏輯關(guān)系和規(guī)則的方式。
概念需要由一系列的規(guī)則來定義, 然后規(guī)則的運(yùn)行需要用邏輯推理的(logic reasoning)真與假來支撐。 規(guī)則制定的過程中值得注意兩類問題, 一是blindness(失明), 二是hallucination(幻覺) or overfitting。 blindness很形象, 就是設(shè)定的規(guī)則只適用于用于制定規(guī)則的對(duì)象里,假如制定一個(gè)識(shí)別垃圾郵件的規(guī)則是跟之前看到的垃圾郵件一模一樣, 那下次這個(gè)程序看見了其它的垃圾郵件,但是發(fā)垃圾郵件的從售房廣告變成了彩票廣告或者其它廣告,或者換了一個(gè)租房廣告,那么這個(gè)程序就無法識(shí)別稍微有點(diǎn)變化其它類似垃圾廣告。 Hallucination or overfitting是我比較感興趣的, 因?yàn)樗谏钪懈鼰o處不見, 但是更容易被忽視。overfitting我沒有找到合適的詞翻譯, 網(wǎng)上的翻譯’過擬合’也太過于專業(yè)化了。 (插一句有時(shí)候會(huì)覺得英文的文章比翻譯的中文更好懂的其中一個(gè)原因可能就是英文里本來用很簡(jiǎn)單的詞形容的一個(gè)概念, 到了中文里會(huì)用不符合日常語言習(xí)慣的過于高深晦澀的詞翻譯。overfit用英文我不用有專業(yè)知識(shí)也很好懂, 用過擬合, 作為母語中文的人我只能說這什么鬼。)
作者舉了一個(gè)很具有種族色彩的例子形容overfitting:一個(gè)家里有拉丁保姆帶著的白人小孩兒,因?yàn)樾?,還沒有沒見過其它職業(yè)的拉丁人。 偶然見到了一個(gè)拉丁小孩兒以后, 指著拉丁小孩兒喊’嬰兒保姆’。??當(dāng)一個(gè)小孩兒這樣行為的時(shí)候, 我們并不會(huì)認(rèn)為她是種族歧視者, 而只是因?yàn)槟挲g小,認(rèn)識(shí)有限, 認(rèn)為長(zhǎng)得像拉丁人的就是保姆,盡管拉丁人里面也有從事很多其它工作的。 但是成年人更容易被認(rèn)為成年的自以為是而產(chǎn)生錯(cuò)誤的結(jié)論。比如我們常見的地圖炮攻擊,地域歧視,標(biāo)簽化,各種婊等無差別人身攻擊。
完全精確的理論和推算在科學(xué)以及機(jī)器學(xué)習(xí)中都是很難實(shí)現(xiàn)的。 研究者們接受的程度就是足夠好就夠。?
因?yàn)閯?chuàng)造一個(gè)能夠解釋所有已發(fā)生的現(xiàn)象的理論是一件很容易的事,所以只能夠做到這點(diǎn),這個(gè)理論還不夠好。這個(gè)理論必須也能夠做出新的預(yù)測(cè), 這個(gè)理論只有被新的證據(jù)證實(shí)以后,這個(gè)理論才能夠被接受。 這種接受也只是暫時(shí)的,因?yàn)樾碌淖C據(jù)仍然可能證實(shí)這個(gè)理論為偽。在機(jī)器學(xué)習(xí)中的blindness和hallucination被叫做bias(偏差), variance(方差)。 坦白說當(dāng)年上統(tǒng)計(jì)的時(shí)候, 偏差好理解,方差特別不符合母語里面的表達(dá)習(xí)慣,但是英文的bias和variance就很好理解。 偏差bias就比如你的手表十次里面,正常應(yīng)該10點(diǎn)的時(shí)候,總是指示9點(diǎn),那么偏差就很大,方差就相對(duì)小。方差variance就是十次考試?yán)锩妫粫?huì)兒考90分,一會(huì)兒考70分點(diǎn), 一會(huì)兒又是60分,但是十次下來的平均數(shù),都是80分,每次考試和十次考試的平均分的差別很大,成績(jī)不穩(wěn)定,那就是方差大。同樣的,如果你的成績(jī)每次都是80分上下5分左右,然后程序預(yù)測(cè)你的考試結(jié)果一會(huì)兒100,一會(huì)兒30,一會(huì)兒60,雖然預(yù)測(cè)的平均結(jié)果還是80分,但是預(yù)測(cè)的方差很大,也不夠精確。 好的預(yù)測(cè)應(yīng)該是偏差和方差都較小。
決策樹(Decision tree)
當(dāng)有一系列的邏輯推理就可以用決策樹來表示。 邏輯推理以及決策樹這大概是我認(rèn)識(shí)的工程師們,尤其電腦工程師們最愛的方法。 (我認(rèn)識(shí)的程序員數(shù)量有限, 如果你大概不屬于這類, 請(qǐng)自動(dòng)屏蔽我這句話而不要來噴我)。 一個(gè)簡(jiǎn)單的決策樹, 就如同你想抱怨一個(gè)產(chǎn)品打客服電話的時(shí)候,聽到的永遠(yuǎn)先是錄音的聲音:
?咨詢問題1,請(qǐng)按1; 咨詢問題2, 請(qǐng)按2; 咨詢問題3, 請(qǐng)按3;… … 其他請(qǐng)按0。當(dāng)你好不容易聽到你想聽到的內(nèi)容并且按了相應(yīng)按鍵時(shí), 接下來第二輪, 咨詢問題A,請(qǐng)按1; 咨詢問題B, 請(qǐng)按2; 咨詢問題C, 請(qǐng)按3... …。
符號(hào)學(xué)的局限
20世紀(jì)七八十年代的時(shí)候, 符號(hào)學(xué)曾有過蓬勃的發(fā)展, 然而很快就遇見了瓶頸,因?yàn)榘涯硨W(xué)科領(lǐng)域?qū)<业闹R(shí)進(jìn)行提取, 按特定規(guī)律編碼是一件費(fèi)時(shí)費(fèi)力效率低的時(shí),且結(jié)果并不見得好。 當(dāng)問題變得復(fù)雜時(shí), 決策樹也變得極其繁瑣, 從而導(dǎo)致運(yùn)算效率低下。
由因到果相對(duì)容易推導(dǎo), 但是由果向因反向推導(dǎo)時(shí),造成一種結(jié)果的卻有可能由多種原因, 同時(shí)內(nèi)部的干擾因素可能會(huì)有多種, 如何排除干擾因素本身就很復(fù)雜。從一只貓的圖像一直放大到多個(gè)像素容易, 但是單看多個(gè)像素就想推測(cè)出來這是貓還是狗還是別的什么, 就不是一件容易的事情了。?
現(xiàn)實(shí)中的概念在定義時(shí)很難非此即彼去定義, 而是存在很多灰色領(lǐng)域。 醫(yī)生在診斷疾病的時(shí)候, 一些癥狀相對(duì)重要, 一些癥狀相對(duì)不重要, 一些教科書上說某種疾病可能會(huì)具有的癥狀可能在某位病人身上根本不明顯。 這是為什么臨床的書本學(xué)習(xí), 背定義背癥狀, 到了臨床上嚴(yán)格地在每一位病人身上找完美符合癥狀的醫(yī)生, 估計(jì)很難再臨床干下去。?
聯(lián)結(jié)派Connectionist 對(duì)符號(hào)學(xué)的一大批判也源于此。 Connectionist認(rèn)為能用邏輯規(guī)律定義的概念只是水面上的冰山一角,水面以下無法用推理推測(cè)出來的還有極大一部分, 也就是我們已熟知的潛意識(shí)。 就算把邏輯所知的所有拼接起來,也無法組成一個(gè)有意義的科學(xué)家,因?yàn)樗狈ψ钪匾囊徊?---大腦??茖W(xué)家們可以通過逆向工程,?即通過觀察一輛車的內(nèi)部是如何運(yùn)作來試圖建造一輛同樣運(yùn)行的車。同樣的,聯(lián)結(jié)派希望通過觀察了解大腦是如何運(yùn)作的,從而試圖在計(jì)算機(jī)上模擬大腦的運(yùn)作過程, 于是阿爾法狗就在這樣的想法下誕生了... ...
未完待續(xù)... ...