學貫中西(3):欣賞AI的推論技能
0 引言
上一期[1] 說明了在人們學習知識的過程中,除了會記憶(背)之外,還會進行歸納、抽象,然后對眼前或腦海里想象的新事物進行推論(如鑒往知來),甚至能舉一反三。本期將以唐詩的4 種平仄韻律為例,與您一起來欣賞AI 的初步推論技能:見微知著。也就是,從部分信息推測(Predict)出全貌。
1 復習:分類型特征編碼
回憶一下,在前2 期[1-2] 里曾經介紹了機器學習的特征(feature)含義;也說明了2 種主要特征:數值型(numerical)與分類型(categorical)特征。其中,分類型特征又可分為:次序型(ordinal)和名目型(nominal)特征。如圖1 所示。
圖1 機器學習的特征含義
例如,有一家房產公司公布了4 套房屋的相關數據,如圖2 所示。
圖2 房產公司的4套房屋數據
其中,每一筆數據都包含了該房屋的4 項特征。現在,從機器學習的視角來敘述這些特征的類型和編碼方式。如圖3 所示。
圖3 特征的類型和編碼方式
其中特征1 屬于名目型特征,包括2 種名目:新(屋)與舊(屋)。適合采用OHE(獨熱)編碼,以[10] 代表新(屋)、以[01] 代表舊(屋)。而特征2 也屬于名目型特征,包括4 種名目:東、西、南、北,也適合采用OHE(one-hot-encoding)編碼,以[1000] 代表東,[0100] 代表西,[0010] 代表南,[0001] 代表北。而特征3 則屬于次序型特征,包括3 種等級:大、中、小,適合采用標簽編碼(label-encoding),以3 代表大,2 代表中,1 代表小。至于特征4,則是您已經很熟悉的數值型特征,表示為一般的浮點數(floating-point)即可。如圖4 所示。
圖4 房屋的4種特征分析
于是,這些房屋的特征數據就能成為機器學習中的樣本數據了,其中涵蓋了華夏文化中的房屋方位的智慧。
2 細說OHE編碼與坐標空間
關于OHE 編碼的使用,大家最常提出的問題是:在華夏的易經八卦智慧里,已經有了二進制(binary)編碼方式,為什么在機器學習領域,這些陰陽五行等知識概念并不采用傳統二進制編碼,而要采用OHE 編碼呢?例如,上述的方位(東西南北),如果采用二進制編碼,可編碼為:
東 ---- > [00] 西 ---- > [01]
南 ---- > [10] 北 ---- > [11]
如果采用OHE 編碼,上述的方位(東西南北)可編碼為:
東 ---- > [1000] 西 ---- > [0100]
南 ---- > [0010] 北 ---- > [0001]
兩者相比,可以看出:后者比較冗長,需要占用更大的內存空間。
現在,來細說其中的緣由。因為在神經網絡模型中,會以數學歐式空間(euclidean space)里的向量(vector)來表示分類型特征。因此,一項特征會對應到歐式空間中的某個點(point)。在機器學習領域,我們常稱之為:把特征向量嵌入(Embedding)到歐式空間中。
一旦嵌入到歐式空間中,就能夠計算出空間中各點之間的距離,然后依據此距離來得知事物之間相似度(similarity),進而支撐神經網絡模型的分類(classification)、回歸(regression)和分群(clustering)等典型算法和功能。
那么,計算距離又與OHE 編碼有何關系呢?答案是:例如上述房屋方位特征的4 個名目(東西南北)之間,并沒有大小或等級之分。所以在歐式空間中,它們相互之間的距離最好是相等的。而OHE 編碼則具有這種特質。來看一個簡單的例子(圖5)。
圖5 飲料的特征分析
這里的冷熱特征包括了3 類:熱、溫、冷,以一維空間的3 個向量來表示,如圖6 所示。
可以看出,其中的“冷”與“溫”2 個向量之間距離為1;而“溫”與“熱”2 個向量之間的距離為1。然而,“冷”與“熱”2 個向量之間的距離是2。如果您覺得這種距離感是合理的(例如,會覺得冷與溫比較相似,冷與熱比較不相似),就可采用標簽編碼,以2 代表“熱”,1 代表“溫”,0 代表“冷”。
圖6 熱、溫、冷的一維空間表示
那么,如果把圖6 更改為圖7,您會覺得這種距離感還是合理的嗎?
圖7 天、地、人的一維空間表示
一般而言,我們通常會認為:天、地、人是三項并立的概念或名目。所以圖7 的距離感并不太合理。此時,就可以采用OHE 編碼,以三維空間的3 個向量來表示,如圖8 所示。
圖8 天、地、人用三維空間的3個向量來表示
這通稱為:把特征嵌入為三維的向量。于是,采用OHE 編碼,如下:
天 ---- > [100] 地 ---- > [010] 人 ---- > [001]
可以看出,圖8 中的3 個點(即向量)之間的距離是相等的,能更精確計算出事物之間的相似度。凡是3項以上的并立名目(如方位、五行、十二生肖等)都適合采用OHE 編碼。
那么,一個比較特別的是:二元(binary)名目,只含有2 項并立的名目,例如:太極圖的陰、陽。此時,2 種嵌入途徑(即編碼方式)皆可。可以采用OHE 編碼嵌入到二維空間:陽→ [10];陰→ [01]。如圖9 所示。
圖9 二元名目可以嵌入到二維空間
圖10 二元名目可以嵌入到一維空間
也可以采用binary 編碼嵌入到一維空間: 陽→[1];陰→ [0]。再如,唐詩韻律的平、仄。此時,2 種嵌入途徑皆可。可以采用OHE 編碼,如圖11 所示。
圖11 唐詩韻律的平、仄可采用OHE編碼
也可以采用binary 編碼,如圖12 所示。
圖12 唐詩韻律的平、仄可采用Binary編碼
對于二元名目型特征,2 種編碼方式皆是適當的。但是后者比較節省空間,所以大多會采用后者(Binary編碼)。
3 欣賞AI推論技能:以唐詩的韻律為例
基于上述的編碼觀念,就可以對五言絕句唐詩的韻律進行編碼,以作為機器學習的材料。于是,把它放在Excel 畫面(圖13)中,成為神經網絡(NN)模型的訓練數據(training data)。按下“學習”按鈕,開始機器學習。
圖13 對五言絕句唐詩的韻律進行編碼
經過數分鐘,訓練完成。這時,AI 模型已經記憶了這些韻律,還能進行簡單的推論。接著進行測試。我們輸入這首詩的前3 段韻律(圖14)。
圖14 前3段的韻律
然后,來檢驗AI 模型是否能把欠缺的最后一段韻律填補起來。請按下“測試”,展開推論,并輸出推論結果(圖15)。
圖15 檢驗AI模型是否能把欠缺的最后一段韻律填補起來
AI 模型填補了最后一段:[0.1, 0.1, 0.9, 0.9, 0.1]。這非常接近于[0,0,1,1,0],代表了[ 平、平、仄、仄、平]的韻律。表示AI 推論得很棒。仔細看看圖16,所輸入的測試數據中有1 個錯別字:春,使我們輸入的編碼是:0(代表平音),也是錯的。此時,AI 模型也有能力偵測出這個錯誤,自動將它更正為:0.8(代表仄音)。
圖16 輸入中有1個錯別字,AI模型也有能力偵測、更正
以上2 個范例展示了AI 的記憶和推論能力。當我們給予正確的測試數據,它能夠進行推論而填補起來。此外,當我們給予少數錯別字時,它也能自動更正,而做出正確的推論。
在欣賞了上述的AI 簡單推論技能之后,如果意猶未盡,可繼續閱讀下一期,將介紹AI 更多精妙的推論技能。
參考文獻:
[1]高煥堂.學貫中西(2):認識AI的記憶(背誦)技能[J].電子產品世界,2021(12):28-30.
[2]高煥堂.學貫中西:讓機器學習華夏智慧[J].電子產品世界,2021(11):17-19.
(本文來源于《電子產品世界》雜志2022年1月期)
評論