文章專區

2018-04-01函數、神經網路與深度學習 580 期

Author 作者 蔡炎龍/政治大學應用數學系副教授。
最近人工智慧非常紅,而深度學習則可謂人工智慧的核心。那到底深度學習是什麼呢?外面有很多把人工智慧或深度學習的概念說得很玄的文章,但在這篇文章中,則希望讓大家瞭解深度學習的核心概念。你會發現,其實基本概念非常簡單!而人工智慧到底可以做到什麼,其實也和我們的想像力有關。
 

人工智慧就是學一個函數

這裡說的函數,其實就是數學上所說的函數。你可能會覺得奇怪:學一個函數?學函數能做什麼?我們回想一下函 數f的定義,就是2個集合X、Y之間的對應關係。X是 定義域、Y 是值域,每一個X裡的元素,都要對應到Y 裡的一個元素,而且只能對到一個。這樣說明可能會聽不太懂,換句話說,其實一個函數就是我們所關心的某個問題完整的「解答本」, X 是所有可能的題目(問題), Y 則是所有可能的答案。函數的定義就是讓所有的題目都要有解答,並且是唯一、明確的答案。

在現實生活中可以說處處有我們想知道的函數,為使大家能更瞭解,以下舉幾個例子:

(1)若想要知道某個英文句子中文翻譯是什麼,則利用「翻譯函數」,X是所有可能的英文句子,Y是所有 可能的中文句子。那麼這裡的函數就是輸入英文,
要輸出中文的翻譯。例如:

 
 

(2)若想知道某支股票在未來某一天會漲或是跌,可以把X設為所有股市開盤的日子(不管是現在、過去或未來), Y 是實數的集合(雖然其實不用設那麼 大), 設定出的函數就是:



(3)若有一個交友網,想從裡面的資料中知道某2 位會員是最速配的,這有很多種建函數的方法,其中一種是X 是所有可能的會員配對,Y 可能是0~10 的數字:將0定義為完全不來電,10是完全速配!所呈現函數就會是:




(4)若要透過建立一個圖形辨識系統,辨識照片裡的鳥是什麼鳥。比方說:

利用電腦來分辨照片上分別是什麼品種的鳥。

上述所說的各項例子可以告訴我們,就是把「想知道答案的問題」化成一個函數,如果真能找到這個函數,就可以幫忙解決不管是預測、速配指數還是鳥類辨識等種種問題。而有一個「全能型」的函數學習系統,也就是基本上能化成一個函數的問題,利用一些過去經驗,即部分已知「正確答案」的情況下,就可以如魔術般找到此函數的方法,那就是「神經網路」。而神經網路正是深度學習的基本架構!

不過,真正的函數運用還是與上面所舉得例子有一點不同,那就是函數在輸入、輸出時一定要是一個向量,也就是數字。不過,這也不是個問題,就以上面的例子來說,在鳥類辨識中,輸入的是張照片,而數位相片其實就是由一串數字所組成!那輸出為鳥名怎麼辦呢?這也容易,就 給各種鳥設定一個編號,比方說冠羽畫眉是1號、臺灣藍鵲是2號、五色鳥是3號等。

對於函數設計而言,真正的問題常常是「問問題的方式」。想要知道某個問題的答案,可以透過許多不同的問法,又或說是由不同的方式切入。要「問得好」常常需要經驗、某個領域的專業知識甚至是創意!這個部份其實意外的重要,對於人類而言,好消息是目前這種「問問題」的工作,電腦是不太容易取代人腦的。既然問完問題,接著就要介紹如魔術般的神經網路,到底是如何找到所需的函數!

 

神經網路的基本架構

神經網路只是一個建構函數的方式。當我們問了問題,並準備許多歷史資料當做的「考古題」,希望能訓練神經網路看到新的問題時也可以正確回答:比如說鳥類辨識的神經網路在訓練後,可以正確叫出沒看過的鳥名。……【更多內容請閱讀科學月刊第580期】