• 沒有找到結果。

淺說人工智能之數學方法 陳泳昌

School Mathematics Newsletter  Issue No. 23

7. 淺說人工智能之數學方法

School Mathematics Newsletter  Issue No. 23

在中學推行人工智能教育,必須顧及學生能力,不能揠苗 助長;然而數學教師亦未嘗不可輔助配合,替學生打好根 基,為香港培育創新科技人才。本文試舉數項人工智能所 運用之數學方法,有些方法稍為超出中學數學教育的範疇,

教師閱畢本文,或可視作持續進修,文中提及一些有關人 工智能的實際應用,亦可作為談助,提高學生學習數學之 興趣。

線性代數

在中學數學教育,矩陣往往是用來求解線性方程組,然而 事實上,很多實用問題均能用矩陣表示。且舉一例:表一 是六間物業的資料(包括面積

x

1、房數

x

2、層數

x

3、樓齡

x

4、樓價

y),我們希望建立一線性模型以預測樓價,其中

1、2、3、4是模型參數,表示

x

1

x

2

x

3

x

4的權重(Weight)。 用0表示線性模型的截距(Intercept,又稱偏置項 Bias,即 不包含任何自變量的常數項),又設

x

0恆等於1,如此整個 線性模型可統一格式,寫成

y = 

0

x

0 + 1

x

1 + 2

x

2 + 3

x

3 +

4

x

4

x

0 面積 x1 房數 x2 層數 x3 樓齡 x4 樓價 y 物業甲 1 2104 5 1 45 460 物業乙 1 1416 3 2 40 232 物業丙 1 1534 3 2 30 315 物業丁 1 852 2 1 36 178 物業戊 1 564 2 1 15 250 物業己 1 745 3 2 20 220 表一:物業資料及價格數據

School Mathematics Newsletter  Issue No. 23

上述線性模型可用矩陣表示,設 X 是物業資料矩陣,是

模型參數矩陣,Y 是樓價矩陣:

建立樓價預測模型,即是找出模型參數矩陣,以使 X儘 量接近Y(X是矩陣乘法)。用正規方程(Normal Equation)

可求出,公式是  = (XTX)-1XTY(篇幅所限,容筆者省去 公式證明),其中XT是X 的轉置矩陣(Transpose),X-1是 X 的逆矩陣(Inverse)。如上例,可得:

即樓價預測模型是

y = 234.2603 + 0.1978x

1 + 29.5394x264.0579x3 – 6.0921x4。上例旨在說明矩陣有多方面用途,不 單是為了令算式看起來更簡潔而已。一些計算軟件(例如 MATLAB,以及 Python 的 NumPy 套件)能專門處理矩陣 運算,若電腦程式使用這些套件,運算速度可大幅提升。

上 文 所 論 的 樓 價 預 測 模 型 , 其 實 是 線 性 回 歸 (Linear Regression)問題。一些人工智能教材以此為引子(例如見 周志華,2016,53 頁),這是因為處理線性回歸的數學手

School Mathematics Newsletter  Issue No. 23

法,堪可用於人工智能方面。首先,人工智能須要進行大 量矩陣運算。例如人工神經網絡(Artificial Neural Network)

雖早於1950 年代提出,但此後數十年間,一般研究大多限 於3 至 4 層的淺層網絡,學者嘗試研究深層網絡時遇到不 少困難,其中之一是當時電腦硬件尚未足以應付計算需求。

後來發現人工神經網絡和電腦圖像處理之算法有相通之 處,二者皆須處理大量的矩陣運算。2012 年,以 Alex Krizhevsky 為 首 的 多 倫 多 大 學 團 隊 借 用 圖 形 處 理 器

(Graphical Processing Unit,GPU,是專門處理圖像的晶片)

以加速訓練深層網絡,參加ImageNet 大規模視覺識別競賽

(ImageNet Large Scale Visual Recognition Competition,

ILSVRC)並獲得冠軍(Krizhevsky et al., 2012),自此運用 GPU 晶片以加速矩陣運算,已成為現代人工智能系統不可 或缺的技術。

多元微積分

上文談到可用正規方程求出線性模型的參數,然而此方法 不一定實際可行。這是因為正規方程須要計算逆矩陣,某 一矩陣M 的逆矩陣,等於 M 的伴隨矩陣(Adjoint Matrix)

除以M 的行列式(Determinant)。如果 M 的行列式十分接

近 0,逆矩陣算法須要除以一個接近 0 的數,計算可能出

現困難。另外,逆矩陣算法十分繁複,如果矩陣十分龐大

(例如有數十萬間物業資料),即使用電腦計算,亦會耗費

不少時間。因此要找出線性模型的參數,我們可用梯度下 降法(Gradient Descent),具體算法是:

1.

隨機選取數字(任選皆可),作為模型參數的估計值(用 表

School Mathematics Newsletter  Issue No. 23 示);

2.

定義誤差函數,例如可用均方誤差(Mean Square Error);

3.

計算此模型的預測樓價(用 表示),即 = X ;

4.

計算預測樓價 與實際數據 Y 的誤差;

5.

根據誤差,調整模型參數估計值 ;

6.

重覆步驟 3 至 5,使總誤差值不斷減小,達致最優化,即預

測樓價 逐漸逼近實際數據 Y, 逐漸逼近用正規方程求出 的模型參數。

換言之,我們希望用迭 代 法 (Iterative Method),找出一模型 參數組合,令誤差函數 達致最小值。步驟5 是 這迭代法的要點,要找 到誤差函數的極小值,

我們調整模型參數估 計值 的方向,須與 誤差函數當前點的梯

度(Gradient)方向相反。見圖一,我們任意選取的一點,

誤差較大,誤差函數的梯度為負數,所以模型參數 的調 整方向為正數。由於要計算誤差函數的梯度,這就須要使 用微分法,本文只略示大概,詳細算法不贅。

中學數學教育只考慮一元函數的微分,然而上文談及的線 性模型參數共有0、1、…、4,誤差函數亦是由0、1、…、

4組成,因此我們便要運用偏微分(Partial Differentiation)

誤差

圖一:梯度下降法

School Mathematics Newsletter  Issue No. 23

以求多元函數的梯度。偏微分其實不難理解,例如有一函 數

z = x

3

y

2 + 4xy + x,其中 x 和 y 皆為自變量,若求 z 關於

x 的偏微分(用 表示)

,則視

y 為常數,因此

;與之相若,求

z 關於 y 的偏微分,則視 x 為常數,

即 。

梯度下降是一重要算法,在不同場合均有實際應用。於人 工智能方面,訓練人工神經網絡,本質同樣是運用梯度下 降,不斷調整網絡的參數,以令誤差函數達致最小值,即 預 測 值 與 實 際 數 據 最 密 合 。 這 套 反 向 傳 播 算 法

(Backpropagation)是 Geoffrey Hinton 在 1986 年提倡

(Rumelhart et al., 1986),至今仍是人工智能的核心算法之

一。由於有GPU 加速矩陣運算,加上其他種種算法改進,

人工神經網絡可以不斷擴張,現今已出現數百層甚至一千 餘層的網絡。2012 年 Alex Krizhevsky 團隊勝出 ILSVRC 競 賽後,深層神經網絡成為主流技術,此後歷屆ILSVRC 競 賽優勝團隊所使用的人工神經網絡,其參數數量有幾千萬

甚至逾一億之多(見表二)。換言之,訓練人工神經網絡,

便是運用多元微積分及梯度下降,以解決一個牽涉幾千萬 至一億餘個變量的最優化問題。

ILSVRC 競賽年份 人工神經網絡名稱 參數 2012 AlexNet 62,378,344 2014 GoogLeNet 6,998,552

2014 VGG16 138,357,544

School Mathematics Newsletter  Issue No. 23

ILSVRC 競賽年份 人工神經網絡名稱 參數

2014 VGG19 143,667,240

2015 ResNet50 25,610,216 2015 ResNet101 44,654,504 2015 ResNet152 60,344,232

表二:著名人工神經網絡的參數數量

概率

機器學習(Machine Learning)是人工智能的一個重要分支,

希望電腦分析數據後,自行掌握規律並能作出準確預測,

上文談及的人工神經網絡,便是屬於機器學習的範疇。要 作出事件預測,便須處理概率。

機 器 學 習 的 其 中 一 項 重 要 應 用 , 是 為 資 料 作 分 類

(Classification),入門教材一般會用 MNIST 手寫數字資 料集(LeCun et al., 1998)作示範。這個資料集(見圖二)

提供60000 張手寫數字圖像作模型訓練,另有 10000 張圖 像作模型測試。我

們讓電腦自行分析 訓練集內 60000 張 圖像後建立模型,

希望這模型能準確 推 知 測 試 集 內 10000 張 圖 像 是 對 應何種數字。模型 訓練完成後,我們

輸入一張手寫數字圖像,電腦便會給出10個數字 p0

p

1、…、

圖二:MNIST 手寫數字資料集

(圖片出處:維基百科)

School Mathematics Newsletter  Issue No. 23

p

9,分別代表這圖像對應數字 0 至 9 的概率。例如一張圖 像似1 又似 7,那麼電腦分析後便會給出 10 個概率,p1

p

7的數值應該較高,其他

p 值則較低。由於已知 MNIST 手

寫數字資料集只有數字0 至 9 的圖像,因此 p0 + p1 +…+ p9

= 1。這類問題稱為多類別分類(Multi-class Classification), 即是有眾多互斥類別(Mutually Exclusive Class),我們希 望求出資料屬於各種類別的可能性。

除 此 之 外 , 又 有 所 謂 多 標 籤 分 類 (Multi-label Classification),這些標籤是各自獨立,並不互斥。且舉一 例,我們希望人工智能系統把報刊新聞分類,標籤有三:

科技新聞、財經新聞和體育新聞。有些新聞固然可以明確 分類為科技、財經或體育其中一類,但亦有新聞可能科技、

財經二者相關(例如科技公司的股價表現);財經、體育二

者相關(例如某一公開上市球會的財務狀況);科技、體育

二者相關(例如運動科學);三者皆相關(例如運用高科技

舉辦盛大運動會,帶來可觀的財政回報)又或三者皆無關

(例如時事新聞)。人工智能系統分析報刊新聞後,便會給

3 個數字 pt

p

f

p

s,分別代表科技、財經、體育標籤的 概率,例如有關科技公司股價的報刊新聞,pt

p

f的數值

應該較高,ps的數值則較低。然而與多類別分類不同,多

標籤分類的各項概率皆各自獨立,總和不一定是1。

由此可見概率計算對人工智能系統之重要性。上例所談只 是十分基本的概率應用,中學數學教育亦談及條件概率

(Conditional Probability)和貝葉斯定理(Bayes’ theorem), 這些概率知識在不少人工智能研究皆派上用場。例如有關

School Mathematics Newsletter  Issue No. 23

寫作或翻譯的人工智能系統,每寫一個字,皆須考慮上下 文脈絡,而不是隨機寫作。人工智能當中一些有關自然語 言處理(Natural Language Processing,NLP)的研究課題,

是探討如何創立語言模型(Language Model),即是設定短 語或句子的概率分佈。假如給出某一句子的前半部 (用事

件 A 表示),這些概率分佈可以幫助我們預測其下一個字

或下半部句子(用事件B 表示)。此類人工智能研究,就涉

及條件概率之應用,即已知事件A 發生的情況下,計算事

件B 發生的概率。

統計

機器學習本質上是由已知求未知,即是讓電腦先分析現有 數據,建立模型後,希望用這模型處理新的數據,亦有準 確的預測。要評估這些模型,可以使用統計學的置信區間

(Confidence Interval)。例如一些人工智能的研究項目,提 出某一模型的預測準確度若干,亦會給出預測準確度的 95%置信區間,如此我們便有更全面的評估。

另一方面,近年人工智能系統的重大成就,是建基於大量 的數據分析。但假如我們首次接觸某個數據集,便把數據 直接輸入電腦,進行機器學習,效果不一定理想,這是因 為我們對這些數據完全陌生。此時首要工作,是運用各種

統計工具(例如最大值、最小值、平均數、中位數等等),

結合各種統計學圖表,把數據呈現眼前,使我們對數據有 一基本理解,知道應該運用何種手法進行機器學習,才有 理想效果。這步驟稱為探索性數據分析(Exploratory Data Analysis,EDA)。

相關文件