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