學(xué)貫中西:讓機器學(xué)習(xí)華夏智慧
0 前言
機器學(xué)習(xí)(ML)除了能夠?qū)W習(xí)大數(shù)據(jù)(big data)中的規(guī)律和法則之外,也能夠?qū)W習(xí)人類的智慧。華夏文化淵源長久、博大精深,處處充滿智慧。因此,我們可以讓機器來學(xué)習(xí)華夏的文化底蘊和智能,還能更上層樓而學(xué)貫中西。
1 復(fù)習(xí):什么是特征(feature)?
機器學(xué)習(xí)之路,首先從觀察特征出發(fā)?;貞浺幌拢藗儗τ谥車膯栴}或事件常從不同的角度來觀察或看出不同的特征。所謂特征(feature),就是一件事物或一群事物,其具有與眾不同的特色或表征。例如,人們在辨別其他人的長相時,常常會觀察對方的臉形、眼神、嘴巴、發(fā)型等特征來區(qū)分和判斷,只要記住對方獨特的長相特征就可以,而不必記憶其他細(xì)節(jié)。這是人們天賦的觀察和提取特征的能力。再如,當(dāng)您一大早從家里出門時,常常會先觀察天氣的特征:溫度23℃、“陽光普照”等。在前面各期曾經(jīng)說明了ML(機器學(xué)習(xí))的目的并不一定是拿數(shù)據(jù)來運算,而是在于〈觀察〉在此X 空間里數(shù)據(jù)的大小、分布及重復(fù)出現(xiàn)頻率(次數(shù))等。每一條數(shù)據(jù)成為空間里的一個點(point),而每一項特征則成為空間的一個維度(dimension)。于是,各條數(shù)據(jù)的特征值成為該點的坐標(biāo)值。
2 特征的種類
在ML(機器學(xué)習(xí))領(lǐng)域,特征常分為兩種:數(shù)值型(Numerical)特征與分類型(Categorical)特征?!皵?shù)值型特征”是大家很熟悉的,可以用整數(shù)或浮點數(shù)表示,是能拿來進行加減乘除等數(shù)學(xué)計算的特征(值)。例如剛才提到的氣溫是23℃。這就是一個數(shù)值特征。再如,人的身高、貓尾巴長度等也都是數(shù)值特征。至于分類型特征,又可細(xì)分為兩種:次序型(ordinal)特征和名目型(nominal)特征。
圖1 特征
其中,“次序型特征”是具有順序、可分等級的特征。例如,衣服的大小常常分為:?。⊿)、中(M)、大(L)、特大(XL)4 個等級。再如,牛排的熟度可分為:Blue、Rare、Medium Rare、Medium、Medium Well 和Well Done 6 個級別。
再如,《孫子兵法》有言:“不戰(zhàn)而屈人之兵,善之善者也。故上兵伐謀,其次伐交,其次伐兵,其下攻城?!逼渲蟹譃? 個等級:伐謀、伐交、伐兵和攻城?!秾O子兵法》又言:“知彼知己,百戰(zhàn)不殆。不知彼而知己,一勝一負(fù)。不知彼不知己,每戰(zhàn)必殆?!逼渲蟹譃槿齻€等級:知彼知己、不知彼而知己和不知彼不知己。
“名目型(nominal)特征”只是對事物分門別類之后各類別的名稱或標(biāo)簽而已。例如,性別:男、女。兩儀:陰、陽。五行:金、木、水、火、土。它們之間沒有級別之分。
3 如何對“分類型特征”進行編碼
在ML 領(lǐng)域,必須將分類型特征轉(zhuǎn)換成數(shù)字,又稱為對這些特征進行編碼(encoding)。對于次序型與名目型特征,各有不同的方法將它們轉(zhuǎn)換成數(shù)字。例如,對于次序型(ordinal)特征常使用卷標(biāo)編碼(label-encoding)方式進行轉(zhuǎn)換。例如,衣服的?。⊿)、中(M)、大(L)、特大(XL)4 個等級對應(yīng)1、2、3、4,這樣特征(值)之間的大小順序也就呈現(xiàn)出。再如,牛排熟度的Blue、Rare、Medium Rare、Medium、Medium Well 和Well Done 6 個等級對應(yīng)1、2、3、4、5、6,這樣就可以了。
另外,對于名目型(nominal)特征則常使用唯1 編碼(one-hot-encoding)方式進行轉(zhuǎn)換,在中文里又稱為“獨熱編碼”。例如上述的兩儀。
圖2 兩儀
由于它們之間不具有順序性,所以也可把“陽”對應(yīng)成[01],而“陰”對應(yīng)成[10]。
再如,上述的五行,有如下的對應(yīng)關(guān)系:
金 ---- > [10000] 木 ---- > [01000]
水 ---- > [00100] 火 ---- > [00010]
土 ---- > [00001]
由于每一個編碼中都含有一個1,其他都為0,所以稱為One-Hot-Encoding 編碼;簡稱OHE 編碼。
4 “分類型特征”的范例
剛才已經(jīng)提到了華夏文化中的五行觀念,就是金、木、水、火、土。使用OHE 編碼如下:
圖3 五行
大家知道,五行之間有“相生”關(guān)系,也有“相克”關(guān)系。
圖4 相生相克關(guān)系
現(xiàn)在,來建立一個兩層神經(jīng)網(wǎng)絡(luò)(NN)模型,如圖5 所示。
圖5 神經(jīng)網(wǎng)絡(luò)模型
以NN 模型表示如圖6 所示。
圖6 NN模型
在Z 空間中設(shè)定了5 個目標(biāo)值,如圖7 所示。
圖7 目標(biāo)值
只要按下“學(xué)習(xí)”按鈕,ML 就會尋找出隱藏層的權(quán)重WH 和BH,同時尋找出輸出層的權(quán)重W 和B。如圖8所示。
圖8 輸出層權(quán)重W和B
有了隱藏層的權(quán)重WH 和BH,以及輸出層的權(quán)重W 和B 之后,就可以隨時輸入層X 空間,對應(yīng)隱藏層H 空間,再對應(yīng)輸出層的Z 空間,就得到預(yù)測值了。例如,把剛才訓(xùn)練好的權(quán)重拿過來,就可以隨時輸入X 值,然后通過兩層權(quán)重的計算得到Z 預(yù)測值。這個過程,就是所謂的:預(yù)測(Predict)。如圖9所示。
圖9 預(yù)測
請按下“相生”,輸入木和水的OHE 編碼,然后通過兩層權(quán)重的計算得到Z 預(yù)測值。如圖10所示。
圖10 “相生”預(yù)測值
例如,輸入測試數(shù)據(jù):木=[0,1,0,0,0],通過NN 模型的兩層權(quán)重計算得到預(yù)測值。此時,ML 計算出預(yù)測值:Z=[0.02、0、0、0.95、0.03]。那么,ML 如何得知這個預(yù)測值就是“火”呢?非常簡單,只要看看Z 空間中這個預(yù)測值代表的點靠近哪一個目標(biāo)值(點)就知道了。例如,預(yù)測值Z=[0.02、0、0、0.95、0.03],非常靠近[0、0、0、1、0],所以歸于“火”類。如圖11所示。
圖11 “火”預(yù)測值
同樣,另一測試資料:水=[0、0、1、0、0],通過NN 模型的兩層權(quán)重計算得到預(yù)測值:Z=[0、0.97、0、0、0.03]。那么,ML 如何得知這個預(yù)測值就是“木”呢?非常簡單,只要看看Z 空間中這個預(yù)測值代表的點靠近哪一個目標(biāo)值(點)就知道了。例如,這預(yù)測值Z=[0、0.97、0、0、0.03],非??拷黐0、1、0、0、0],所以歸于“木”類。
5 結(jié)語
善于使用OHE 編碼將非常方便表達華夏文化中的概念(Concept)和術(shù)語。然而,您可能會問:如果數(shù)千或數(shù)萬個術(shù)語,其OHE 編碼將變得很冗長,實際上可行嗎?答案是沒問題的。因為ML 有很好的機制可以進行“降維”,能有效化解上述問題。下一期,將會繼續(xù)說明。
(本文來源于《電子產(chǎn)品世界》雜志2021年11月期)
評論