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 =
0x
0 + 1x
1 + 2x
2 + 3x
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.5394x2 – 64.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
3y
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)。