終於有人把雲計算、大數據和人工智慧講明白了

2019-02-15 00:29:15

上文我們主要講了雲計算,接下來我們將繼續講解雲計算、大數據和人工智慧三者之間的相互關係。

大數據擁抱雲計算

在 PaaS 層中一個複雜的通用套用就是大數據平台。大數據是如何一步一步融入雲計算的呢?

01

數據不大也包含智慧

一開始這個大數據並不大。原來才有多少數據?現在大家都去看電子書,上網看新聞了,在我們 80 後小時候,信息量沒有那么大,也就看看書、看看報,一個星期的報紙加起來才有多少字?

如果你不在一個大城市,一個普通的學校的圖書館加起來也沒幾個書架,是後來隨著信息化的到來,信息才會越來越多。

首先我們來看一下大數據裡面的數據,就分三種類型:

其實數據本身不是有用的,必須要經過一定的處理。例如你每天跑步帶個手環收集的也是數據,網上這么多網頁也是數據,我們稱為 Data。

數據本身沒有什麼用處,但數據裡面包含一個很重要的東西,叫做信息(Information)。

數據十分雜亂,經過梳理和清洗,才能夠稱為信息。信息會包含很多規律,我們需要從信息中將規律總結出來,稱為知識(Knowledge),而知識改變命運。

信息是很多的,但有人看到了信息相當於白看,但有人就從信息中看到了電商的未來,有人看到了直播的未來,所以人家就牛了。

如果你沒有從信息中提取出知識,天天看朋友圈也只能在網際網路滾滾大潮中做個看客。

有了知識,然後利用這些知識去套用於實戰,有的人會做得非常好,這個東西叫做智慧(Intelligence)。

有知識並不一定有智慧,例如好多學者很有知識,已經發生的事情可以從各個角度分析得頭頭是道,但一到實幹就歇菜,並不能轉化成為智慧。

而很多的創業家之所以偉大,就是通過獲得的知識套用於實踐,最後做了很大的生意。

所以數據的套用分這四個步驟:數據、信息、知識、智慧。

最終的階段是很多商家都想要的。你看我收集了這么多的數據,能不能基於這些數據來幫我做下一步的決策,改善我的產品。

例如讓用戶看視頻的時候旁邊彈出廣告,正好是他想買的東西;再如讓用戶聽音樂時,另外推薦一些他非常想聽的其他音樂。

用戶在我的套用或者網站上隨便點點滑鼠,輸入文字對我來說都是數據,我就是要將其中某些東西提取出來、指導實踐、形成智慧,讓用戶陷入到我的套用裡面不可自拔,上了我的網就不想離開,手不停地點、不停地買。

很多人說雙十一我都想斷網了,我老婆在上面不斷地買買買,買了 A 又推薦 B,老婆大人說,“哎呀,B 也是我喜歡的啊,老公我要買”。

你說這個程式怎么這么牛,這么有智慧,比我還了解我老婆,這件事情是怎么做到的呢?

02

數據如何升華為智慧

數據的處理分以下幾個步驟,完成了才最後會有智慧:

數據收集

首先得有數據,數據的收集有兩個方式:

數據傳輸

一般會通過佇列方式進行,因為數據量實在是太大了,數據必須經過處理才會有用。可系統處理不過來,只好排好隊,慢慢處理。

數據存儲

現在數據就是金錢,掌握了數據就相當於掌握了錢。要不然網站怎么知道你想買什麼?

就是因為它有你歷史的交易數據,這個信息可不能給別人,十分寶貴,所以需要存儲下來。

數據處理和分析

上面存儲的數據是原始數據,原始數據多是雜亂無章的,有很多垃圾數據在裡面,因而需要清洗和過濾,得到一些高質量的數據。

對於高質量的數據,就可以進行分析,從而對數據進行分類,或者發現數據之間的相互關係,得到知識。

比如盛傳的沃爾瑪超市的啤酒和尿布的故事,就是通過對人們的購買數據進行分析,發現了男人一般買尿布的時候,會同時購買啤酒。

這樣就發現了啤酒和尿布之間的相互關係,獲得知識,然後套用到實踐中,將啤酒和尿布的櫃檯弄的很近,就獲得了智慧。

數據檢索和挖掘

檢索就是搜尋,所謂外事不決問 Google,內事不決問百度。內外兩大搜尋引擎都是將分析後的數據放入搜尋引擎,因此人們想尋找信息的時候,一搜就有了。

另外就是挖掘,僅僅搜尋出來已經不能滿足人們的要求了,還需要從信息中挖掘出相互的關係。

比如財經搜尋,當搜尋某個公司股票的時候,該公司的高管是不是也應該被挖掘出來呢?

如果僅僅搜尋出這個公司的股票發現漲的特別好,於是你就去買了,其時其高管發了一個聲明,對股票十分不利,第二天就跌了,這不坑害廣大股民么?所以通過各種算法挖掘數據中的關係,形成知識庫,十分重要。

03

大數據時代,眾人拾柴火焰高

當數據量很小時,很少的幾台機器就能解決。慢慢的,當數據量越來越大,最牛的伺服器都解決不了問題時,怎么辦呢?

這時就要聚合多台機器的力量,大家齊心協力一起把這個事搞定,眾人拾柴火焰高。

對於數據的收集:就 IoT 來講,外面部署著成千上萬的檢測設備,將大量的溫度、濕度、監控、電力等數據統統收集上來;就網際網路網頁的搜尋引擎來講,需要將整個網際網路所有的網頁都下載下來。

這顯然一台機器做不到,需要多台機器組成網路爬蟲系統,每台機器下載一部分,同時工作,才能在有限的時間內,將海量的網頁下載完畢。

對於數據的傳輸:一個記憶體裡面的佇列肯定會被大量的數據擠爆掉,於是就產生了基於硬碟的分散式佇列,這樣佇列可以多台機器同時傳輸,隨你數據量多大,只要我的佇列足夠多,管道足夠粗,就能夠撐得住。

對於數據的存儲:一台機器的檔案系統肯定是放不下的,所以需要一個很大的分散式檔案系統來做這件事情,把多台機器的硬碟打成一塊大的檔案系統。

對於數據的分析:可能需要對大量的數據做分解、統計、匯總,一台機器肯定搞不定,處理到猴年馬月也分析不完。

於是就有分散式計算的方法,將大量的數據分成小份,每台機器處理一小份,多台機器並行處理,很快就能算完。

例如著名的 Terasort 對 1 個 TB 的數據排序,相當於 1000G,如果單機處理,怎么也要幾個小時,但並行處理 209 秒就完成了。

所以說什麼叫做大數據?說白了就是一台機器乾不完,大家一起乾。

可是隨著數據量越來越大,很多不大的公司都需要處理相當多的數據,這些小公司沒有這么多機器可怎么辦呢?

04

大數據需要雲計算,雲計算需要大數據

說到這裡,大家想起雲計算了吧。當想要幹這些活時,需要很多的機器一塊做,真的是想什麼時候要就什麼時候要,想要多少就要多少。

例如大數據分析公司的財務情況,可能一周分析一次,如果要把這一百台機器或者一千台機器都在那放著,一周用一次非常浪費。

那能不能需要計算的時候,把這一千台機器拿出來;不算的時候,讓這一千台機器去乾別的事情?

誰能做這個事兒呢?只有雲計算,可以為大數據的運算提供資源層的靈活性。

而雲計算也會部署大數據放到它的 PaaS 平台上,作為一個非常非常重要的通用套用。

因為大數據平台能夠使得多台機器一起乾一個事兒,這個東西不是一般人能開發出來的,也不是一般人玩得轉的,怎么也得雇個幾十上百號人才能把這個玩起來。

所以說就像資料庫一樣,還是需要有一幫專業的人來玩這個東西。現在公有雲上基本上都會有大數據的解決方案了。

一個小公司需要大數據平台的時候,不需要採購一千台機器,只要到公有雲上一點,這一千台機器都出來了,並且上面已經部署好了的大數據平台,只要把數據放進去算就可以了。

雲計算需要大數據,大數據需要雲計算,二者就這樣結合了。

人工智慧擁抱大數據

01

機器什麼時候才能懂人心

雖說有了大數據,人的欲望卻不能夠滿足。雖說在大數據平台裡面有搜尋引擎這個東西,想要什麼東西一搜就出來了。

但也存在這樣的情況:我想要的東西不會搜,表達不出來,搜尋出來的又不是我想要的。

例如音樂軟體推薦了一首歌,這首歌我沒聽過,當然不知道名字,也沒法搜。但是軟體推薦給我,我的確喜歡,這就是搜尋做不到的事情。

當人們使用這種套用時,會發現機器知道我想要什麼,而不是說當我想要時,去機器裡面搜尋。這個機器真像我的朋友一樣懂我,這就有點人工智慧的意思了。

人們很早就在想這個事情了。最早的時候,人們想像,要是有一堵牆,牆後面是個機器,我給它說話,它就給我回應。

如果我感覺不出它那邊是人還是機器,那它就真的是一個人工智慧的東西了。

02

讓機器學會推理

怎么才能做到這一點呢?人們就想:我首先要告訴計算機人類推理的能力。你看人重要的是什麼?人和動物的區別在什麼?就是能推理。

要是把我這個推理的能力告訴機器,讓機器根據你的提問,推理出相應的回答,這樣多好?

其實目前人們慢慢地讓機器能夠做到一些推理了,例如證明數學公式。這是一個非常讓人驚喜的一個過程,機器竟然能夠證明數學公式。

但慢慢又發現這個結果也沒有那么令人驚喜。因為大家發現了一個問題:數學公式非常嚴謹,推理過程也非常嚴謹,而且數學公式很容易拿機器來進行表達,程式也相對容易表達。

然而人類的語言就沒這么簡單了。比如今天晚上,你和你女朋友約會,你女朋友說:如果你早來,我沒來,你等著;如果我早來,你沒來,你等著!

這個機器就比較難理解了,但人都懂。所以你和女朋友約會,是不敢遲到的。

03

教給機器知識

因此,僅僅告訴機器嚴格的推理是不夠的,還要告訴機器一些知識。但告訴機器知識這個事情,一般人可能就做不來了。可能專家可以,比如語言領域的專家或者財經領域的專家。

語言領域和財經領域知識能不能表示成像數學公式一樣稍微嚴格點呢?例如語言專家可能會總結出主謂賓定狀補這些語法規則,主語後面一定是謂語,謂語後面一定是賓語,將這些總結出來,並嚴格表達出來不就行了嗎?

後來發現這個不行,太難總結了,語言表達千變萬化。就拿主謂賓的例子,很多時候在口語裡面就省略了謂語,別人問:你誰啊?我回答:我劉超。

但你不能規定在語音語義識別時,要求對著機器說標準的書面語,這樣還是不夠智慧型,就像羅永浩在一次演講中說的那樣,每次對著手機,用書面語說:請幫我呼叫某某某,這是一件很尷尬的事情。

人工智慧這個階段叫做專家系統。專家系統不易成功,一方面是知識比較難總結,另一方面總結出來的知識難以教給計算機。

因為你自己還迷迷糊糊,覺得似乎有規律,就是說不出來,又怎么能夠通過編程教給計算機呢?

04

算了,教不會你自己學吧

於是人們想到:機器是和人完全不一樣的物種,乾脆讓機器自己學習好了。

機器怎么學習呢?既然機器的統計能力這么強,基於統計學習,一定能從大量的數字中發現一定的規律。

其實在娛樂圈有很好的一個例子,可窺一斑:

有一位網友統計了知名歌手在大陸發行的 9 張專輯中 117 首歌曲的歌詞,同一詞語在一首歌出現只算一次,形容詞、名詞和動詞的前十名如下表所示(詞語後面的數字是出現的次數):

如果我們隨便寫一串數字,然後按照數位依次在形容詞、名詞和動詞中取出一個詞,連在一起會怎么樣呢?

例如取圓周率 3.1415926,對應的詞語是:堅強,路,飛,自由,雨,埋,迷惘。

稍微連線和潤色一下:

是不是有點感覺了?當然,真正基於統計的學習算法比這個簡單的統計複雜得多。

然而統計學習比較容易理解簡單的相關性:例如一個詞和另一個詞總是一起出現,兩個詞應該有關係;而無法表達複雜的相關性。

並且統計方法的公式往往非常複雜,為了簡化計算,常常做出各種獨立性的假設,來降低公式的計算難度,然而現實生活中,具有獨立性的事件是相對較少的。

05

模擬大腦的工作方式

於是人類開始從機器的世界,反思人類的世界是怎么工作的。

人類的腦子裡面不是存儲著大量的規則,也不是記錄著大量的統計數據,而是通過神經元的觸發實現的。

每個神經元有從其他神經元的輸入,當接收到輸入時,會產生一個輸出來刺激其他神經元。於是大量的神經元相互反應,最終形成各種輸出的結果。

例如當人們看到美女瞳孔會放大,絕不是大腦根據身材比例進行規則判斷,也不是將人生中看過的所有的美女都統計一遍,而是神經元從視網膜觸發到大腦再回到瞳孔。

在這個過程中,其實很難總結出每個神經元對最終的結果起到了哪些作用,反正就是起作用了。

於是人們開始用一個數學單元模擬神經元。

這個神經元有輸入,有輸出,輸入和輸出之間通過一個公式來表示,輸入根據重要程度不同(權重),影響著輸出。

於是將 n 個神經元通過像一張神經網路一樣連線在一起。n 這個數字可以很大很大,所有的神經元可以分成很多列,每一列很多個排列起來。

每個神經元對於輸入的權重可以都不相同,從而每個神經元的公式也不相同。當人們從這張網路中輸入一個東西的時候,希望輸出一個對人類來講正確的結果。

例如上面的例子,輸入一個寫著 2 的圖片,輸出的列表裡面第二個數字最大,其實從機器來講,它既不知道輸入的這個圖片寫的是 2,也不知道輸出的這一系列數字的意義,沒關係,人知道意義就可以了。

正如對於神經元來說,他們既不知道視網膜看到的是美女,也不知道瞳孔放大是為了看的清楚,反正看到美女,瞳孔放大了,就可以了。

對於任何一張神經網路,誰也不敢保證輸入是 2,輸出一定是第二個數字最大,要保證這個結果,需要訓練和學習。

畢竟看到美女而瞳孔放大也是人類很多年進化的結果。學習的過程就是,輸入大量的圖片,如果結果不是想要的結果,則進行調整。

如何調整呢?

就是每個神經元的每個權重都向目標進行微調,由於神經元和權重實在是太多了,所以整張網路產生的結果很難表現出非此即彼的結果,而是向著結果微微地進步,最終能夠達到目標結果。

當然,這些調整的策略還是非常有技巧的,需要算法的高手來仔細的調整。正如人類見到美女,瞳孔一開始沒有放大到能看清楚,於是美女跟別人跑了,下次學習的結果是瞳孔放大一點點,而不是放大鼻孔。

06

沒道理但做得到

聽起來也沒有那么有道理,但的確能做到,就是這么任性!

神經網路的普遍性定理是這樣說的,假設某個人給你某種複雜奇特的函式,f(x):

不管這個函式是什麼樣的,總會確保有個神經網路能夠對任何可能的輸入 x,其值 f(x)(或者某個能夠準確的近似)是神經網路的輸出。

如果在函式代表著規律,也意味著這個規律無論多么奇妙,多么不能理解,都是能通過大量的神經元,通過大量權重的調整,表示出來的。

07

人工智慧的經濟學解釋

這讓我想到了經濟學,於是比較容易理解了。

我們把每個神經元當成社會中從事經濟活動的個體。於是神經網路相當於整個經濟社會,每個神經元對於社會的輸入,都有權重的調整,做出相應的輸出。

比如工資漲了、菜價漲了、股票跌了,我應該怎么辦、怎么花自己的錢。這裡面沒有規律么?肯定有,但是具體什麼規律呢?很難說清楚。

基於專家系統的經濟屬於計畫經濟。整個經濟規律的表示不希望通過每個經濟個體的獨立決策表現出來,而是希望通過專家的高屋建瓴和遠見卓識總結出來。但專家永遠不可能知道哪個城市的哪個街道缺少一個賣甜豆腐腦的。

於是專家說應該產多少鋼鐵、產多少饅頭,往往距離人民生活的真正需求有較大的差距,就算整個計畫書寫個幾百頁,也無法表達隱藏在人民生活中的小規律。

基於統計的巨觀調控就靠譜多了,每年統計局都會統計整個社會的就業率、通脹率、GDP 等指標。這些指標往往代表著很多內在規律,雖然不能精確表達,但是相對靠譜。

然而基於統計的規律總結表達相對比較粗糙。比如經濟學家看到這些統計數據,可以總結出長期來看房價是漲還是跌、股票長期來看是漲還是跌。

如果經濟總體上揚,房價和股票應該都是漲的。但基於統計數據,無法總結出股票,物價的微小波動規律。

基於神經網路的個體經濟學才是對整個經濟規律最最準確的表達,每個人對於自己在社會中的輸入進行各自的調整,並且調整同樣會作為輸入反饋到社會中。

想像一下股市行情細微的波動曲線,正是每個獨立的個體各自不斷交易的結果,沒有統一的規律可循。

而每個人根據整個社會的輸入進行獨立決策,當某些因素經過多次訓練,也會形成巨觀上統計性的規律,這也就是總量經濟學所能看到的。

例如每次貨幣大量發行,最後房價都會上漲,多次訓練後,人們也就都學會了。

08

人工智慧需要大數據

然而,神經網路包含這么多的節點,每個節點又包含非常多的參數,整個參數量實在是太大了,需要的計算量實在太大。

但沒有關係,我們有大數據平台,可以匯聚多台機器的力量一起來計算,就能在有限的時間內得到想要的結果。

人工智慧可以做的事情非常多,例如可以鑑別垃圾郵件、鑑別黃色暴力文字和圖片等。

這也是經歷了三個階段的:

由於人工智慧算法多是依賴於大量的數據的,這些數據往往需要面向某個特定的領域(例如電商,信箱)進行長期的積累。

如果沒有數據,就算有人工智慧算法也白搭,所以人工智慧程式很少像前面的 IaaS 和 PaaS 一樣,將人工智慧程式給某個客戶安裝一套,讓客戶去用。

因為給某個客戶單獨安裝一套,客戶沒有相關的數據做訓練,結果往往是很差的。

但云計算廠商往往是積累了大量數據的,於是就在雲計算廠商裡面安裝一套,暴露一個服務接口。

比如您想鑑別一個文本是不是涉及黃色和暴力,直接用這個線上服務就可以了。這種形勢的服務,在雲計算裡面稱為軟體即服務,SaaS (Software AS A Service)

於是人工智慧程式作為 SaaS 平台進入了雲計算。

基於三者關係的美好生活

終於雲計算的三兄弟湊齊了,分別是 IaaS、PaaS 和 SaaS。所以一般在一個雲計算平台上,雲、大數據、人工智慧都能找得到。

一個大數據公司,積累了大量的數據,會使用一些人工智慧的算法提供一些服務;一個人工智慧公司,也不可能沒有大數據平台支撐。

所以,當雲計算、大數據、人工智慧這樣整合起來,便完成了相遇、相識、相知的過程。

相關文章
精选文章