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