人工智慧擁抱大數據(系列之六)

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

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

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

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

2讓機器學會推理

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

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

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

3教給機器知識

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

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

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

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

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

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

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

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

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

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

人工智能擁抱大數據(系列之六)

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

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

堅強的孩子,

依然前行在路上,

張開翅膀飛向自由,

讓雨水埋葬他的迷惘。

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

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

5模擬大腦的工作方式

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

人工智能擁抱大數據(系列之六)

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

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

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

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

人工智能擁抱大數據(系列之六)

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

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

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

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

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

6沒道理但做得到

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

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

人工智能擁抱大數據(系列之六)

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

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


分享到:


相關文章: