人工智慧與機器學習

Posted by Mr. Thursday

人工智慧(Artificial Intelligence)簡稱A.I.。在一些電影裡面,我們可能會看到具有智慧的機器人,和人類一樣可以說話,能夠幫忙人類工作,有時候還會出現統治人類的劇情。其實能夠創造出一部機器,具有人類的智慧,對我們來說即使不是最好的,至少也是好壞參半。有了人工智慧,一些比較枯燥乏味,卻又需要人類的能力才能完成的工作,就可以交給機器來處理。至於人工智慧衍生出來的失業問題、倫理問題、甚至人類將來安危的問題,雖然不容易解決,但是就現階段人工智慧的發展,也許要下一個世代,才需要煩惱這些問題了,目前人工智慧的產品還沒有到讓人類面臨危機的地步。

人工智慧

Alan Turing於1950年在一篇文章(Computing Machinery and Intelligence)提出了AI的願景。其中也包括了有名的Turing Test一個具有智慧的機器,和一位的人類,放在一個布幕裡面。布幕裡面的人分別和機器以及人類交談,如果分不出哪一個是機器,哪一個是人類的話,那部機器就有人工智慧了

人工智慧的誕生則是在1956年於Dartmouth CollegeJohn McCarthy召集一些專家,共同討論人工智慧的議題。之後有符號系統,邏輯推理系統等發展。應用的問題包含下棋、通過人類的智力測驗、以及機器手臂等等。不過後來1970年代從小問題推廣到大問題的時候,才發現人工智慧並沒有像最早發展的時候那麼有希望,像是機器翻譯系統,翻出來的結果可能令人無法接受等等。中間Marvin Minsky也證明了類神經網路,無法達到傳統布林運算的能力。直到後來類神經網路有了新的發展,才重新受到矚目。

ANN

上面是一張類神經網路的圖。類神經網路模擬人類的大腦,圓圈代表神經元,箭頭代表神經連結。類神經網路就是經由左邊的輸入,以及中間神經鍵結強度的調整,來學習如何產生右邊的輸出學習後的類神經網路,就能夠對不同的輸入,產生正確的輸出了。

機器學習

人工智慧在1970年代受到打擊之後,開始有新的研究方法出現。像是專家系統把問題限定一個小範圍的領域。另外還要結合統計、機率、資訊理論等方法,來研究AI,讓AI變成一門科學(science)。在這之前,也有一種分類,把AI劃分成Weak AIStrong AI。Weak AI並不是說功能比較弱,而是指某個系統表現出人類的智力就好,不管底層系統是否真的有人類的智力。Strong AI則是希望建構出來的系統即使不是用細胞做的,他的架構卻是和人類相當,真的具有人類智慧。Weak AI的可以由機器學習(Machine Learning)來代表。只要給定問題的範圍訓練的資料(training data),就可以由資料中選擇特徵(feature selection),然後建構資料的模型(model selection),最後把這個模型當成學習的成果,拿來做預測(prediction)。舉例來說:如果我們有一堆大頭照,想要分辨是男生還是女生。我們就讓機器先專注在臉的大小,以及頭髮的長短上面,這就是選擇特徵(feature selection)。之後我們根據某些數學理論,像是統計裡面的迴歸分析,用x軸代表頭髮長短,用y軸代表臉型大小。接者根據迴歸分析的公式,求出一條直線。如下圖

regression

這張是一個示意圖,我們先不管圖上的文字說明和直線的方向。先看看這個直線,平面上每個點代表一張照片,頭髮長度和臉的面積分別成為x座標和y座標,直線則是根據統計迴歸的方法,求出一條直線,讓每一個點到這條直線的距離總合最小,也就是說,如果用其他直線,每一個點到那一條直線的距離總合會比較大,代表錯誤(error)比較多。因此這條直線,就是根據我們已經有的資料,求出來的一個模型(model),讓預測的錯誤(error)最小。之後如果有新的資料(新的照片),我們就去看裡面的頭髮長度和臉的大小,然後變成平面上的一個資料點。如果這個資料點落在直線的右手邊,我們就預測這一張大頭照是女生,反之則預測為男生。

機器學習算是比較務實的方式,來達到人工智慧的效果。不過長久來看,會有一些困難發生:(1)在不同的問題領域,要如何選擇適當的特徵來學習,也就是feature selection的問題。(2)問題範圍變大以後,如何調整原來的學習方法,取得具有代表性的資料。(以上面辨識男女生的例子來說,如果是用外國人的照片來訓練機器,要如何把訓練出來的模型model用在華人的臉部辨識上面)(3)有些問題不管參數怎麼調整,現有的模型總是無法達到100%的正確率

機器學習的方法就如同有個用來做心理治療的系統Eliza,他可以讓人看起來像是有一位真的人在說話,但是實際上後面的機器並沒有”真正”了解我們打進去的意思,裡面的機器學習方法是根據一些關鍵字(keyword)建立一些規則(rule)的模型(model),譬如說我打”I am very bad“,他就回答”How long have you been very bad?”,我打”I am very nice“,他就回答”How long have you been very nice?”。有間公司Cyc就針對這部分挑戰,因為他們是做語意推理的人工智慧系統,用邏輯規則來表達語意上(semantic)的問題。OpenCyc是免費的工具,各位也不妨使用看看。

目前機器學習的方法,除了基本的統計分析以外,之前提到的類神經網路也是。另外一個主要的方法就是規則式(rule-based)系統,使用邏輯命題來表示人類的知識,像是”天下雨則地面會溼”、”天下雨人們會撐雨傘”等等。不過規則式系統也有他的困難:(1)要維持系統裡面所有的規則成立(satisfiability問題)且互相不衝突(consistency),以及後來學習的規則是否會推翻之前學習過的規則(monotone),有時候計算複雜度很大,計算很費時。(2)例外情況的處理,常常發生在規則在類別繼承的情況,譬如說”鳥會飛”、”企鵝是鳥”、”企鵝不會飛”。這個例子就讓研究者頭痛了一陣子。(3)面對不確定(uncertainty)的環境,無法有確定的規則的時候,只好求助機率的方法。因此在類神經網路、規則式系統以外,近年來有機率模型的學習方法出現,最常見的就是應用貝式定理(Bayes’ Theorem),把訓練的資料帶入計算,得到事後機率(posterior probability),如下圖所示:

bayes' theorem

計算出來的事後機率,就可以拿來預測新的資料。因此從最早的下棋問題,到現在的語音辨識、圖片辨識、影像辨識,機器學習都讓人類具有更大的能力,可以處理更多的資訊。機率學習出來的模型,都是期望值最好的結果。一些衡量學習方法好壞的標準也慢慢出現,像是ROC curve等等。Google的文件搜尋技術,也都是應用機器學習的最好例子。

不過Strong AI所擔心的問題還是存在。因此,未來是否有機會,有比現在機器學習更好的學習方法,讓電腦不管是範圍更大的問題,或是目前還沒辦法解決的領域,都能夠由人工智慧代勞,讓人類更輕鬆。計算神經是其中一種方法,希望能夠在類神經網路上面加進更多近代生物學上面的發現,我自己也還不知道是否100%有希望,只有一些直覺認為這個方向有機會改進目前的學習方法。如果計算神經真的有用,那就算是我的直覺就沒有錯了!下回將從計算神經繼續介紹,希望本篇機器學習的介紹,能夠成為各位讀者在電腦科學(Computer Science)的基礎概論。

總結

  1. Strong AI要求機器具有人類智力,Weak AI要求機器表現出人類智力即可。
  2. 機器學習目前有很多成功的應用,但是是屬於Weak AI的方法。
  3. 機器學習包括類神經網路、規則式系統、統計方法以及機率方法和更多。

延伸閱讀

[googlevideo=http://video.google.com/videoplay?docid=-7704388615049492068]

喜歡這篇文章嗎? 分享出去給作者一點鼓勵吧!