《智能時代 - 大數據與智能革命重新定義未來》讀書筆記

很適合作為引入的一個問題是「為什麼大數據的英文是 Big Data 而不是 Large Data ?」,之所以用 Big 而非 Large 是因為 Large 僅僅形容數量巨大,僅僅是量變並不能承載起大數據之大。大數據的 Big 不僅指數據量的巨大,也意味著從數據的搜集,理論分析,存儲,計算處理以及最重要的對待大數據的觀念上都有著全面的不同。

這本書的結構也由此話題展開,前九章為大數據的全面認知變化做了內容鋪墊,介紹了數據的重要性,數據分析的方式以及數據是如何改變人工智慧的發展方式的。緊接著焦點集中到大數據本身,解釋大數據的特性和本質。然後視角再次橫跨整個歷史進程,大叔開始用歷史事實支撐他關於大數據是可以和工業革命相比的新一輪變革的論述。最後是聚焦大數據時態下的新挑戰和展望。全書結構非常像一篇論文,introduction 介紹重要性, related work 鋪墊下文, system overview 介紹並論證觀點, future work 展望未來。不愧是 PhD 出身,這樣的結構讓文章思路非常清晰,也很適合寫讀書筆記,哈哈哈哈。

雖然是讀書筆記,為了避免內容繁雜流於形式,我盡量從個人角度介紹有意思的部分。為了以後查閱方便,筆記結構也會盡量清晰。

數據相關性

數據有多重要就不贅述了。比較有意思的是數據的相關性。多數時候我們是利用數據的直接關係,古人記錄了若干年裡每一年的天數推出閏年,用過去的天數推斷未來的天數,這是直接推斷。而用數據做間接推斷,用一種數據變數推斷另一種變數的情況則比較少,大叔舉了日本人通過油田照片預測產量和 Google 利用搜索趨勢預測流感的例子,這些例子里人們都是利用沒有直接關係的一種變數推斷另一種變數,因為它們有著潛在的相關性。

簡單模型取代複雜模型

另一個重要的數據分析工具是統計學,在無法及時統計出所有數據的情況下利用概率抽樣推斷整體的數據分布曾經是很多行業做決策的方式。大叔認為當數據量增大到一定程度時夠給統計學帶來巨大變化:數據量足夠大的情況下幾個簡單的模型可以取代一個複雜的模型。這一觀點也在後文中反覆出現。

大數據時態下的人工智慧

接下來的部分老大哥開始聊人工智慧,看似和前面銜接不是很順暢,其實人工智慧的發展可以看做是數據推動發展最好的例子。這其實也解釋了一些我一直存在的疑問,比如為何雖然人工智慧在理論上沒有大的進步,實際應用卻有了爆髮式增長;李飛飛創辦 ImageNet 背後的智慧。

機器智能的定義和圖靈測試就不多說了。老大哥介紹了一下人工智慧的幾個流派:「飛鳥派」選擇的是讓機器盡量按照人的思路去做,就像造飛機的最初路線是模仿鳥煽動翅膀一樣,很明顯老大哥是不贊同這一派的,所以也舉了幾個例子嘲諷了一番。人工智慧的第二大流派利用統計學和大數據,不求讓機器模仿人的思路,只要效果達到我們的要求就行。簡單講不管你是怎麼學下棋的,你是把對手下過的棋都背下來還是左右互搏無師自通,只要能打贏人類就算滿足要求。典型的例子是 Fred Jelinek 做機器翻譯的方法,他並不像人類學習語言那樣分析發音,分析語法,而把它當做一個通信問題用大量數據加以訓練。這樣的方式讓翻譯準確率有了顯著提升。這思路也和前文提到的 「數據量足夠大的情況下幾個簡單的模型可以取代一個複雜的模型」一致。

量大、多維度、完備性

到這裡,焦點終於回到我們的主角 「大數據」 本身。怎樣算大數據呢?很明顯不只是體量大,如果只是知道全世界所有人的生日,量雖然很大,價值卻不大。老哥認為除了體量大之外,大數據應該還具有多維度和完備性。這個很有意思,大數據需要包含盡量多元的信息,這也可以從信息學的角度解釋,一億個人的生日最多分布在一年的 365 天里,信息量確實不大,但如果知道一億人每人在哪出生,信息量就大了很多,因為地理位置的範圍更大(例子有些粗暴,大概是這個理)。大數據的第三個性質是完備性,也就是它需要覆蓋所有可能的情況。對於高度依賴數據的系統,比如機器翻譯,只有當訓練數據包含所有情況時它才能夠應對未開可能出現的所有場景。為什麼需要完備性,老哥後面也會從資訊理論的角度做解釋。

同樣吸引我的還有老哥哥引用的另一些專家的觀點,雖然老哥不贊同,我覺得其實還挺有道理的。大數據的特點可以用三個 V 概括:Vast, Variety, Velocity。第一個 vast 指的就是體量大,第二個 variety 也比較好理解,數據需要有很大的包容性,需要包含盡量多元的信息。最後一個 velocity 很重要,經常容易被忽視,這也是目前大數據框架發展的一個趨勢。最開始的分散式計算框架 Hadoop MapReduce 的處理能力很強,相比 Spark ,它的相對成本也更低(因為更多使用的是磁碟而不是內存),但速度會慢很多。而實時性在大數據處理中是非常有價值的,敏捷開發,快速迭代都需要快速的數據支撐,因此有了比它快幾十倍(也貴很多)的 Spark,有了很多實時處理框架比如 Heron, Flink 等等。

什麼都是數據,你全家都是數據

有了這個基本觀點之後,老哥開始用數據同理證明很多問題,比如下象棋,如果知道所有可能性就能輕鬆戰勝人類,比如 Google 利用數據里的所有可能性來完善用戶的搜索體驗等等。

機械思維

這時候就得升華一下了,為啥數據這麼厲害,只是舉幾個例子是不夠的,我們需要往前看,往前看五十年不夠,一百年也不夠,我們需要一路看到公元前古希臘那會兒。歐幾里得用幾條公理奠定了幾乎整個自然科學的基礎,然後在此基礎上各個學科建立了自己的理論體系。牛頓用數學公式破解了千百年的自然之迷,力,運動,光都被公式統一起來,由此機械思維的發展路線逐漸清晰,人類用幾個相對簡單的公式解釋了絕大部分原來看不懂的事情。這裡需要區分一下這裡的 「機械思維」 和我們批評人時用的 「機械思維」。這裡的機械思維指的是利用確定的公式和因果關係指導人的行為,比如流水線就是一個機械思維的產物,每個環節被分成最小塊,然後單獨優化,哪個環節效率不夠高就加人手加工具。

機械思維的高潮是工業革命,人們用機械思維指導了工業革命,提高了生產效率,進而用機械思維指導對人的管理。

不確定性與資訊理論

然而並非一切都是確定的,當我們的認知發展到一定程度,就會意識到世界是充滿不確定性的。宏觀的例子比如股市走向完全是概率事件,沒有任何狀態是完全確定的;微觀的例子比如電子運動,量子力學的測不準原理。因此機械思維就不再適用了。

這時候咋辦呢,咱總得遵循些什麼吧,這時候老哥提到資訊理論。它原本用來度量信息量,為啥它跟不確定性有關呢,因為我們知道的信息越多,那個東西的不確定性就越小,資訊理論被用來幫助消除不確定性。所以大叔覺得資訊理論不只是關於信息的理論,而是可以用來像機械思維一樣指導我們認知不確定世界的重要工具。

資訊理論我不是很懂 (雖然本科學過一點點,除了老師不開心的表情其他的完全不記得了 :),有興趣的話可以仔細研究一下,這裡需要提到一個重要的概念:互信息。前面的內容里我們知道利用相關性可以做很多預測,但如何度量兩件事的相關性呢?互信息就是用來度量兩件事情的相關性。比如 「天陰了」 和 「今天要下雨」 這兩件事之間相關性很強,互信息就很大,而 「天陰了」 和 「作業做不完了」 之間關係就很弱,互信息也很小。

再來解釋一下大數據的本質

這麼一番分析之後大叔就從理論層面用歷史發展支撐了他的新觀點:資訊理論是在機械思維之後更適合被用來支撐我們認知世界和發展技術的理論。我們必須承認這是一個不確定性的世界,而數據可以幫助我們消除這其中的不確定性,絕大部分的智能問題都是消除不確定性的問題,比如圖像識別里,哪張是老王的臉,可能是一百個人里的任何一個,通過一次次學習之後我們知道他有一個大頭小眼睛,帶一副眼鏡,這樣不確定就小很多了。所以大數據在幫助我們認知世界的過程中有很重要的作用,我們也可以通過前面探討的理論分析大數據的本質特點:量大,多維度和完備性。

首先是量大,如果數據量不夠大時我們採集的數據樣本不一定能代表整體趨勢,同時按照前文的觀點,只有數據量大到一定程度時才會產生質變,讓幾個簡單的模型替代複雜的模型。然後是數據的多維度,老哥從 「互信息」 和 「交叉驗證」 兩個角度證明了這個問題。互信息被用來衡量信息之間的相關性,當數據的維度多的時候我們就更容易找到更大的互信息,也就意味著更多的相關性。同時因為有多個維度的數據,我們也可以用其中的一部分數據推測一件事情,另一部分數據來驗證這件事情,比如 「天陰了」 可以被用來預測 「要下雨」,如果我們還有關於空氣濕度的數據,就可以用來驗證這個推測。最後是數據的完備性,當我們沒有大數據時,很多小概率時間就會預測不到,因為我們拿到的小數據本身就不包含這些情況,同時模型也沒有考慮到這些情況。如果我們有完備的大數據,這些數據包含幾乎所有情況,就可以預測更多情況。

因果關係和強相關關係

看到這裡基本就能感受到,老哥的 「資訊理論時代」 和之前的 「機械思維時代」 的核心區別就在於機械思維是用確定的因果關係 (大部分情況下表現成我們用到的公式)來解決問題,而資訊理論時代用相關關係來解決問題 (因為世界是不確定的,很難有直接的因果關係)。所以這一章老哥單獨對比這兩種關係同時講了很多例子,這裡就不重複了。

再往後就是一些具體應用和展望,我就不一一解釋了。不管怎樣,如果覺得這篇筆記有一定作用記得一定要讀原著,如果有任何新發現記得找我討(si)論(bi)。


推薦閱讀:

2016之尾,2017之初
無可救藥
有些事真的很不明白了

TAG:讀書筆記 | 隨想 | 大數據 |