機器是如何學習推理的?

蘇寧影片雲發表於2019-01-07

機器是如何學習推理的?

寫在前面

本文作者憑藉其天馬行空的腦回路,用最深入淺出,清晰化的文字邏輯,講明白了雲端計算、大資料和人工智慧三者之間的關係。

故事裡面三個角色:

兼具經濟效益與情懷的雲端計算;努力把資訊變為智慧的大資料;模擬人類大腦工作方式,學會推理的人工智慧。

三個從出身開始就註定“量子糾纏”的夥伴,他們之間相親相愛,相輔相成的跌宕故事,獻給非專業技術背景,但是需要了解行業的你。

  • 來源:劉超的通俗雲端計算(popsuper1982) 劉超,《Lucene應用開發揭秘》作者

大資料和雲端計算註定“糾纏不清”?

終於有人把雲端計算、大資料和人工智慧講明白了!

四、人工智慧擁抱大資料

1機器什麼時候才能懂人心

雖說有了大資料,人的慾望卻不能夠滿足。雖說在大資料平臺裡面有搜尋引擎這個東西,想要什麼東西一搜就出來了。但也存在這樣的情況:我想要的東西不會搜,表達不出來,搜尋出來的又不是我想要的。

例如音樂軟體推薦了一首歌,這首歌我沒聽過,當然不知道名字,也沒法搜。但是軟體推薦給我,我的確喜歡,這就是搜尋做不到的事情。當人們使用這種應用時,會發現機器知道我想要什麼,而不是說當我想要時,去機器裡面搜尋。這個機器真像我的朋友一樣懂我,這就有點人工智慧的意思了。

人們很早就在想這個事情了。最早的時候,人們想象,要是有一堵牆,牆後面是個機器,我給它說話,它就給我回應。如果我感覺不出它那邊是人還是機器,那它就真的是一個人工智慧的東西了。

2讓機器學會推理

怎麼才能做到這一點呢?人們就想:我首先要告訴計算機人類的推理的能力。你看人重要的是什麼?人和動物的區別在什麼?就是能推理。要是把我這個推理的能力告訴機器,讓機器根據你的提問,推理出相應的回答,這樣多好?

其實目前人們慢慢地讓機器能夠做到一些推理了,例如證明數學公式。這是一個非常讓人驚喜的一個過程,機器竟然能夠證明數學公式。但慢慢又發現其實這個結果也沒有那麼令人驚喜。因為大家發現了一個問題:數學公式非常嚴謹,推理過程也非常嚴謹,而且數學公式很容易拿機器來進行表達,程式也相對容易表達。

然而人類的語言就沒這麼簡單了。比如今天晚上,你和你女朋友約會,你女朋友說:如果你早來,我沒來;你等著,如果我早來;你沒來,你等著!這個機器就比較難理解了,但人都懂。所以你和女朋友約會,是不敢遲到的。

3教給機器知識

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

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

後來發現這個不行,太難總結了,語言表達千變萬化。就拿主謂賓的例子,很多時候在口語裡面就省略了謂語,別人問:你誰啊?我回答:我劉超。但你不能規定在語音語義識別時,要求對著機器說標準的書面語,這樣還是不夠智慧,就像羅永浩在一次演講中說的那樣,每次對著手機,用書面語說:請幫我呼叫某某某,這是一件很尷尬的事情。

人工智慧這個階段叫做專家系統。專家系統不易成功,一方面是知識比較難總結,另一方面總結出來的知識難以教給計算機。因為你自己還迷迷糊糊,覺得似乎有規律,就是說不出來,又怎麼能夠透過程式設計教給計算機呢?

4算了,教不會你自己學吧

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

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

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

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

機器是如何學習推理的?

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

例如取圓周率 3.1415926,對應的詞語是:堅強,路,飛,自由,雨,埋,迷惘。稍微連線和潤色一下:

堅強的孩子,

依然前行在路上,

張開翅膀飛向自由,

讓雨水埋葬他的迷惘。

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

然而統計學習比較容易理解簡單的相關性:例如一個詞和另一個詞總是一起出現,兩個詞應該有關係;而無法表達複雜的相關性。並且統計方法的公式往往非常複雜,為了簡化計算,常常做出各種獨立性的假設,來降低公式的計算難度,然而現實生活中,具有獨立性的事件是相對較少的。

5模擬大腦的工作方式

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

機器是如何學習推理的?

人類的腦子裡面不是儲存著大量的規則,也不是記錄著大量的統計資料,而是透過神經元的觸發實現的,每個神經元有從其它神經元的輸入,當接收到輸入時,會產生一個輸出來刺激其它神經元。於是大量的神經元相互反應,最終形成各種輸出的結果。

例如當人們看到美女瞳孔會放大,絕不是大腦根據身材比例進行規則判斷,也不是將人生中看過的所有的美女都統計一遍,而是神經元從視網膜觸發到大腦再回到瞳孔。在這個過程中,其實很難總結出每個神經元對最終的結果起到了哪些作用,反正就是起作用了。

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

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

機器是如何學習推理的?

於是將n個神經元透過像一張神經網路一樣連線在一起。n這個數字可以很大很大,所有的神經元可以分成很多列,每一列很多個排列起來。每個神經元對於輸入的權重可以都不相同,從而每個神經元的公式也不相同。當人們從這張網路中輸入一個東西的時候,希望輸出一個對人類來講正確的結果。

例如上面的例子,輸入一個寫著2的圖片,輸出的列表裡面第二個數字最大,其實從機器來講,它既不知道輸入的這個圖片寫的是2,也不知道輸出的這一系列數字的意義,沒關係,人知道意義就可以了。正如對於神經元來說,他們既不知道視網膜看到的是美女,也不知道瞳孔放大是為了看的清楚,反正看到美女,瞳孔放大了,就可以了。

對於任何一張神經網路,誰也不敢保證輸入是2,輸出一定是第二個數字最大,要保證這個結果,需要訓練和學習。畢竟看到美女而瞳孔放大也是人類很多年進化的結果。學習的過程就是,輸入大量的圖片,如果結果不是想要的結果,則進行調整。

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

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

6沒道理但做得到

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

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


機器是如何學習推理的?

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

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

7人工智慧的經濟學解釋

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

機器是如何學習推理的?

我們把每個神經元當成社會中從事經濟活動的個體。於是神經網路相當於整個經濟社會,每個神經元對於社會的輸入,都有權重的調整,做出相應的輸出,比如工資漲了、菜價漲了、股票跌了,我應該怎麼辦、怎麼花自己的錢。這裡面沒有規律麼?肯定有,但是具體什麼規律呢?很難說清楚。

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

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

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

然而基於統計的規律總結表達相對比較粗糙。比如經濟學家看到這些統計資料,可以總結出長期來看房價是漲還是跌、股票長期來看是漲還是跌。例如,如果經濟總體上揚,房價和股票應該都是漲的。但基於統計資料,無法總結出股票,物價的微小波動規律。

基於神經網路的微觀經濟學才是對整個經濟規律最最準確的表達,每個人對於自己在社會中的輸入進行各自的調整,並且調整同樣會作為輸入反饋到社會中。想象一下股市行情細微的波動曲線,正是每個獨立的個體各自不斷交易的結果,沒有統一的規律可循。

而每個人根據整個社會的輸入進行獨立決策,當某些因素經過多次訓練,也會形成宏觀上統計性的規律,這也就是宏觀經濟學所能看到的。例如每次貨幣大量發行,最後房價都會上漲,多次訓練後,人們也就都學會了。

8人工智慧需要大資料

然而,神經網路包含這麼多的節點,每個節點又包含非常多的引數,整個引數量實在是太大了,需要的計算量實在太大。但沒有關係,我們有大資料平臺,可以匯聚多臺機器的力量一起來計算,就能在有限的時間內得到想要的結果。

人工智慧可以做的事情非常多,例如可以鑑別垃圾郵件、鑑別黃色暴力文字和圖片等。這也是經歷了三個階段的:

  • 第一個階段依賴於關鍵詞黑白名單和過濾技術,包含哪些詞就是黃色或者暴力的文字。隨著這個網路語言越來越多,詞也不斷地變化,不斷地更新這個詞庫就有點顧不過來。

  • 第二個階段時,基於一些新的演算法,比如說貝葉斯過濾等,你不用管貝葉斯演算法是什麼,但是這個名字你應該聽過,這個一個基於機率的演算法。

  • 第三個階段就是基於大資料和人工智慧,進行更加精準的使用者畫像和文字理解和影像理解。

由於人工智慧演算法多是依賴於大量的資料的,這些資料往往需要面向某個特定的領域(例如電商,郵箱)進行長期的積累,如果沒有資料,就算有人工智慧演算法也白搭,所以人工智慧程式很少像前面的IaaS和PaaS一樣,將人工智慧程式給某個客戶安裝一套,讓客戶去用。因為給某個客戶單獨安裝一套,客戶沒有相關的資料做訓練,結果往往是很差的。

但云計算廠商往往是積累了大量資料的,於是就在雲端計算廠商裡面安裝一套,暴露一個服務介面,比如您想鑑別一個文字是不是涉及黃色和暴力,直接用這個線上服務就可以了。這種形勢的服務,在雲端計算裡面稱為軟體即服務,SaaS (Software AS A Service)

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

五、基於三者關係的美好生活

終於雲端計算的三兄弟湊齊了,分別是IaaS、PaaS和SaaS。所以一般在一個雲端計算平臺上,雲、大資料、人工智慧都能找得到。一個大資料公司,積累了大量的資料,會使用一些人工智慧的演算法提供一些服務;一個人工智慧公司,也不可能沒有大資料平臺支撐。

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

蘇寧旗下子品牌蘇寧影片雲已累計服務客戶超過3000個;蘇寧影片雲憑藉PPTV 十年媒體技術和服務經驗,融合流媒體技術、P2P、CDN 分發、海量儲存、安全策略等構建的專注影片領域的一站式SaaS 服務平臺。蘇寧影片雲集影片雲直播、雲點播、雲上傳、雲轉碼、雲端儲存、雲統計等功能於一體,多平臺全方位支援客戶各種影片場景的業務需求。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559352/viewspace-2374724/,如需轉載,請註明出處,否則將追究法律責任。

相關文章