正文

人工智能掃盲帖

(2017-12-18 11:54:34) 下一個

最近朋友閑談,常常談到AI將會改變世界,紛紛表示,要讓孩子早些學AI,以免輸在起跑線上。我這個二把刀“科學家”,也常常(錯誤地)被請教AI如何。我的確不是AI的專家,隻是20年前,上大學的時候,自己開發過人工神經網絡的應用,近年也偶爾應用機器學習算法,所以冒膽寫了個掃盲帖。您看著順眼,讚一下當賞錢;您看著哪裏錯了,指正我就好了,但別罵我:)

我們所說的AI,也就是人工智能,到底是什麽,我們有能用它來做什麽?人工智能應該是一個大眾都能理解的術語---基本上就是電腦可以幹人腦的活,可以思考,可以分析。人工智能的優勢在於電腦比人腦算得快,電腦記性好,不會忘事。

人工智能聽起來很好,可是人工智能到底怎麽實現的呢?歸根到底,還是數學和數據,外加上越來越快的計算機。人們研究一個現象,一個事物,一個問題,往往都從前因和後果進行分析。從開發數學模型的角度來看,前因,就是模型的輸入,後果,就是模型的輸出。開發模型的本質,就是建立前因(輸入)和後果(輸出)的關係。比如說,地上有一塊石頭,你踢了一腳,石頭一下子飛起來。要是想知道,你用了多大勁,石頭飛多遠,我們肯定會用牛頓的力學方程,比如F=ma去分析。通過一係列的聯立方程,可以建立一個你用的力氣(F)和石頭飛的距離(S)之間的數學模型。當我們研究簡單的問題的時候,物理模型或者化學模型,能夠幫我們連接前因(輸入)和後果(輸出)。也就是說,我們很清楚,有了前因,必然會有這樣的後果。這種簡單問題,我們不需要人工智能。我們在中學學得數學和物理知識,就能夠解決問題了。

當問題變得更複雜一些,比如說,我們想了解今年糧食的產量,會涉及到很多個因素。挑幾個重要的,可以假設平均氣溫(T),平均降水(P)和平均日照(S)會影響糧食產量(Y)。考慮到問題的複雜性,如果我們把所有的物理,化學,生物的知識考慮進去,我們沒辦法完美地建立一個基於規律的模型。為了解決問題,大家往往考慮統計模型。統計模型隻關心輸入和輸出的數量上的聯係,而不考慮他們之間存在著怎樣的物理,化學和生物規律。這樣,我們建議一個統計模型 Y = a1 * T + a2 * P + a3 * S。我們在應用這個模型之前,得先去確定模型中的參數a1, a2, 和a3。這樣我們需要數據。通過數據,來確定模型參數,在人工智能裏麵,叫做訓練模型。這個問題,也不複雜,有了高中和一些大學的數學知識,就可以解決這樣的問題了。但是,要注意,因為我們不是百分百清楚,前因是怎樣導致後果的,我們隻能靠著數據來訓練模型。所以,我們需要數據。模型越複雜,我們需要的數據越多。

現實生活中,有很多非常複雜的問題。比如說,炒股票,炒黃金。影響黃金價格的因素實在太多,而因素之間,又是相互作用的。對著這相互作用,我們大概其懂點,又不全懂。我們很可能確定幾十個會影響黃金股票價位的因素,怎樣把這些因素和黃金股票的未來價格聯係在一起呢。我們沒辦法建立一個基於因果關係的模型,因為因素太多了,好多相互之間的因果關係,我們也不那麽清楚。當然,你可以考慮建立一個統計模型,很可惜,統計模型往往要求因素之間是相互獨立的。我們麵臨的問題,明顯不符合這個條件。那麽,有沒有一種方法,或者模型,能夠自己去處理因素之間的相互作用,同時又能夠用於預報股票價錢呢?

在已過的20年裏,蓬勃發展的人工神經網絡,就能幹這樣複雜的工作。人工神經網絡,模擬人類(或者動物)的神經元,通過神經元之間或強或弱的相互作用,來模擬複雜因素之間,或者是牽製,或者是促進的相互關係。一個神經網絡模型,裏麵有大量的神經元,分在不過的邏輯層次裏麵,不同層次之間的神經元又兩兩相連,每一個連接之間的強度,都是一個參數,需要通過訓練來確定。一個神經網絡的規模越大,神經元越多,訓練時候所需的數據越大。之所以現在人工神經網絡應用越來越廣泛,就是因為在其應用領域所積累的數據越來越多,滿足了訓練神經網絡的需要。穀歌的alpha go,用的就是人工神經網絡模型,估計是用幾十萬個棋局來訓練出來的。

說到底,人工智能,和前麵提到的中學生和大學生建立的物理模型和統計模型一樣,都是在找前因(輸入)和後果(輸出)之間的關係。隻是人工智能,可以處理非常複雜,因素眾多的前因和後果。人工智能的背後,其實就是機器學習(machine learning)和大數據。兩者缺一不可。機器學習,研究的是怎樣用計算機來建立前因和後果之間的關係。大數據,是為了訓練機器學習的模型和算法。一旦機器學習的模型通過大數據訓練好了,就可以用來做預報,指導業務操作了。

我們上學學知識,知識多了,好多問題我們就可以看明白了,看透了。人工智能,是通過數據來學知識,通過大量數據,讓電腦搞清楚了前因後果之間的來龍去脈,針對一個輸入,就能產生一個輸出,以至於,電腦學會了下圍棋。說一千道一萬,人工智能解決的還是人們關心和思考的前因和後果之間的聯係。現在的機器學習技術,還有大數據積累,能讓我們考慮更加複雜的問題罷了。在考慮人工智能的應用的時候,我們必須要考慮大數據。在這一行業,如果沒有大數據,我們就算開發除了模型,也沒辦法訓練他,然後應用它。至於機器學習的算法,我們跟風穀歌,站在巨人的肩膀上,暫時應該是夠用了。



 

[ 打印 ]
閱讀 ()評論 (11)
評論
兵團農工 回複 悄悄話 閻立華 2017-12-18 19:49:12 回複 悄悄話 用傳統統計模型作用於大數據也叫AI,這個AI比較低能。
AlphaZero不參照任何曆史數據,靠規則左右互搏,自己造數據,這個想法就石破天驚了。——————-好像是一個台灣學者為主的團隊做出來的。這是一大突破
老馬識途 回複 悄悄話 建議帖主讀一下數理邏輯中的G?del定理(1st Order Predicate Logic Incompleteness Theorem)。
武勝 回複 悄悄話 回複 '王有財' 的評論 : 指教不敢當,隻是討論。不確定事件指的就是變數會複雜得不可能控製的情況。除了概率事件,還有動態並發事件中時序的不可預測性。
閻立華 回複 悄悄話 用傳統統計模型作用於大數據也叫AI,這個AI比較低能。
AlphaZero不參照任何曆史數據,靠規則左右互搏,自己造數據,這個想法就石破天驚了。
王有財 回複 悄悄話 回複 '武勝' 的評論 : 謝謝指教。關於不確定性的現象,我偶爾會多琢磨一下。從因果關係上講,真的會有不確定性的事件嗎?我們用隨機數學理論,去模擬那些不確定的事件,好多時候,是我們缺乏充分的機理性知識。對於某個發生的事件,我們可能沒有機會了解到所有的誘發因素,以及這些因素之間的關係,所以沒辦法開發機理模型,隻能用隨機模型去模擬,去解釋不確定性。如果我們完全了解建模對象所有的輸入和輸出,以及內部的係統變量與變化機理,我們完全可以建立一個確定性的模型。世界上很可能沒有隨機事件,所有現象,都有前因後果,否則能量,動量,和質量守恒都會出問題。所謂隨機模型,隻是我們在認知不全麵的情形下,解決問題的一種方法,希望通過隨機模型,抓住主要控製因素。
武勝 回複 悄悄話 回複 '王有財' 的評論 : 雖然不確定性模型問題的因果關係具有不確定性,但它有統計規律性。一種模型方法是隨機神經網絡。
叼蟲小雞 回複 悄悄話 其實用統計預測的方式去發展人工智能本身在人工智能研究領域就有很大的爭議,這樣做到底能不能真正實現普通人所認為的有邏輯和推理能力的終極人工智能。比如,你能通過統計我Smart Phone數據,大約幾點上班幾點下班,因此你能先告知我根據交通狀況,幾點應出門上班或回家走哪條路。這不是真正的智能或者說跟智能沒有太大的關係。當然這麽做,有時確實能為人們帶來方便,如果你不在乎你的隱私數據被侵犯的話。

AlphaGo就是利用統計來學習挑戰人類的,由於機器有近乎無限的計算能力和存儲能力,所以再高明的棋手,隻要你想贏棋,你基本就不可能戰勝機器,因為你的目的定了,機器的統計數據一定能戰勝你。這就好比在一條平坦的馬路上你和汽車賽跑,你不可能贏。但是如果要跟據實時情況來決定往哪個方向才是目的地,則你就可能跑贏汽車。 現在穀歌用AlphaGo去開發醫療診斷,個人覺得這是很適宜AlphaGo的所謂“人工智能”方向。

離開紮實的數學和物理去談
王有財 回複 悄悄話 回複 '武勝' 的評論 : 這些挑戰,需要AI專家去解決了。 我很好奇,怎樣通過數據學習,來訓練一個不確定性的模型。指點一下?
武勝 回複 悄悄話 Google是很強,但要說跟風它的算法就“夠用了”,這個有點說大了。AlphaGo成功,但它的開發主管哈沙比斯表示這這隻是一個確定性模型問題,還有許多不確定性模型問題等待挑戰。
elmonte 回複 悄悄話 明白了,謝謝!
菜絲 回複 悄悄話 寫的好!
登錄後才可評論.