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