機器學習與人工神經網路(一)

(Source: By Tej3478 via Wikimedia Commons)
(Source: By Tej3478 via Wikimedia Commons)

■人工智慧(artificial intelligence, AI)是當今電腦科學最熱門的學門,其中最重要的領域之一是人工神經網絡,讓我們一窺究竟。

撰文|陳奕廷

1940年代,數位電子計算機剛被發明不久時,人工智慧就已被提出。陸陸續續地,科學家和工程師製作出許多不同的程式,可以解決五花八門的問題,甚至在棋類和遊戲上表現比人類還要優異。但是這些程式有一個共通點:程式設計者必須要對特定問題進行深度的分析,歸納出一套準則讓電腦來運作。但當問題變得更難,除了電腦計算能力有限之外,程式設計者也難以歸納出一套規則處理極度複雜的問題。近年來,機器學習 (Machine Learning) 中的「人工神經網絡 (Artificial Neural Network)」因能解決這個困境而變得越來越流行。除了在影像辨識、語言翻譯和預測未來等諸多應用上表現卓越成就之外,也在生物、醫學上對科學做出貢獻。讓我們來看看它是怎麼運作的。

●什麼是機器學習?

美國卡內基梅隆大學電腦科學系教授Tom Mitchell在其著作Machine Learning中定義到:「若一個電腦程式能在執行任務T(Task)時,透過執行的經驗E (Experience)而使其表現P (performance) 有所成長,我們稱這個電腦程式具有學習的能力。」其實人類的學習過程也是一樣。當我們學習一個技能時,我們透過不斷的練習讓技巧更上層樓。因此很自然地,達到機器學習的其中一個方法是模仿大腦的運作。這種機器學習法被稱為「人工神經網絡」。

大腦內的神經網絡主要由神經元和突觸組成。神經元具有階級性,階級間的神經元靠著不同強度的鍵結連結。當我們看到一塊又白又綠的東西,視網膜上的感光細胞將電訊號傳給視神經,經過周圍神經系統,最後傳入中樞神經,由大腦來判斷這是稿紙還是綠豆糕。

●人工神經網絡:以手寫辨識為例

相同地,人工神經網路由多層神經元互相連結而成。圖一是處理手寫數字辨識的人工神經網路結構,分為三個階級。第一個階級是輸入層,1個神經元對應到1個照片像素,共784個神經元[註1]。第二個階級是隱藏層,這個階級夾在輸入和輸出中間不和外界做溝通,而只是將輸入層神經元的訊號整理出15個特徵[註2]。第三個階級是輸出層,共有10個神經元,分別代表阿拉伯數字0到9。當我們將一張照片放到輸入層,神經元們會通過彼此的鍵結一層一層傳下去。到了輸出層中,訊號最強的那個神經元即是照片中的數字。在這個例子中,輸入層就像是視神經元,而輸出層就像大腦。

圖一、手寫辨識的人工神經網路結構。假設一張照片有784個像素,每個像素分配一個神經元,因此第一層共有784個神經元。[註1] (圖片來源:參考資料
圖一、手寫辨識的人工神經網路結構。假設一張照片有784個像素,每個像素分配一個神經元,因此第一層共有784個神經元。[註1] (圖片來源:參考資料)

也許你已經發現,這個神經網路最關鍵的地方在於找出神經元間的連結,而正是機器學習發揮功用的地方!首先,我們給每一個連結一個0到1之間的數值,代表它聯繫的兩個神經元間的鍵結強度。0是完全分開;1是完全相連。第二,我們蒐集大量的手寫數字(例如一萬張手寫照片)。第三,我們一點一點地改變各連結的強度,最終會找出一組連結強度使神經網路能從這一萬張照片辨識出最多正確的數字。通過這三個步驟我們完成了一個準確率能高達96%以上的人工神經網路。在這個例子中,辨認出照片的數字是它的任務T,而正確率是P。神經元觀看一萬張照片(E)時不斷調整神經網路連結,使得正確率P提高。依照前段定義,這確確實實是一種機器學習法。

傳統演算法在處理一樣的問題時,必須先透過邏輯思考分析各個數字的特徵,再透過複雜的影像處理得到照片中的特徵並依此決定數字。相較之下,人工神經網路的算法不需要分析數字的形狀。我們只要給電腦夠多的資料,它會自動從中學習出最好的神經網路連接方式並找出各個數字的特徵,大大簡化了程式設計的過程。再者,尋找神經元連接方式的過程中,電腦幾乎搜尋所有的可能性,能找到純靠邏輯思考難以想到的特徵,提高辨識率。此外,這個算法其實跟數字一點關係都沒有。如果今天我們想要改做注音符號辨識,除了改變神經元數目之外,基本上不用對算法做更改。相較只能辨識數字的傳統演算法,人工神經網路更具有普遍性。

這個方法當然也有缺點。在圖一中一共有十萬個連結。若每一個連結都要嘗試一百個數值以找出最佳解的話,總共要做一千萬次神經元間的運算。幸運的是,有許多科學家致力於加速這個過程,讓它在現實應用中變的可行。除此之外,這個大量的運算只有在尋找神經元連結時需要被做一次,在應用中我們僅需把之前算好的數值拿來用就可以了。

神經元網路在電腦科學中,無論是學界或是業界正如火如荼地發展。科技公司們除了積極發展人工智慧外,Google最近也推出最新雲端計算平台幫助小公司或個體戶架設自己的人工智慧。之後我們還會繼續陸續看到更先進的神經元網路和機器學習的方法!

 

--
[註1]美國國家標準局提供手寫數字的資料庫,照片規格為28*28=784像素。
[註2] 15個神經元僅為一個例子,它可以是任何數字。

參考資料:Michael A. Nielsen, Neural Networks and Deep Learning, Determination Press, (2015)

--
作者:陳奕廷,台大物理系學士,史丹佛大學應用物理系博士班就讀中。對各領域的科學都非常好奇,歡迎互相交流。

 

加入好友

8,968 人瀏覽過