從上一期的內(nèi)容里[1],您已經(jīng)觀察到了ML具有很好的能力,可以探索出足夠好的W和B,進而求出足夠趨近于目標的預測值。于是,ML就能夠幫助人類對各種事物(的數(shù)據(jù))進行“分門別類”了,這就簡稱為:分類(Classification)。現(xiàn)在就來說明機器(計算機)是如何學習分類的。
1 給予目標值:以二元分類為例
首先,由人指引機器(ML)來學習分類。也就是,人給予目標值,而ML則探索出足夠好的W和B,進而求出足夠趨近于目標的預測值。上述目標值又通稱為類別標簽(Class Label)。在人們心中,先對事物進行分類,并給各類別貼上卷標(即目標值),以指引(監(jiān)督)ML逐步學習分類。所以,又稱為監(jiān)督式學習(Supervised Learning)。
例如,下圖的數(shù)據(jù)表示:有6瓶水,其溫度分別為X=[0,1,4,5,-5,-6]。此時,人們將它們區(qū)分為兩個類別(Class):“水”與“冰”。而且人又設定了兩個目標值:1代表“水”,且0代表“冰”。如下圖所示。
這時人們就可要求ML幫忙尋找出W和B,且希望能夠?qū)=[0, 1, 4, 5, -5, -6]很準確地對應到目標Z=[1,1,1,1,0,0]。上一期曾經(jīng)說明,ML并沒辦法直接計算出能夠滿足這個目標的W和B值。但是它會逐步修正W和B,以盡量滿足上述X=[0,1,4,5,-5,-6]與目標Z=[1,1,1,1,0,0]的對應關(guān)系(即規(guī)律)。所以,在這個范例里,Z空間里有兩個目標(Target)點。
在這個范例里,人們將事物區(qū)分為兩個類別,所以設定兩個目標值:1代表“水”,且0代表“冰”。這通稱為二元分類(Binary Classification)。
2 ML逐步探索與學習
接下來ML就逐步尋找其中的對應規(guī)律,并利用W和B來表達和記住它。在這一過程中,每走1步就會衡量一次,計算出現(xiàn)在與目標值的誤差。然后會修正W和B來縮小與目標值的誤差。每一次計算誤差,并進行修正W和B,這稱為一個回合。
請您按下“學習分類(30回合)”按鈕,ML會尋找30回合,輸出如下。
ML找到了W和B值。然后將W和B值代入X*W + B = Y和Sigmoid(Y)= Z兩個公式,計算出Z值。例如,將X=[-6]經(jīng)X*W+B=Y和Sigmoid(Y)= Z計算出來的值是Z=[0.1],它與目標值X=[0]還有很大誤差。如下圖。
接著,將X空間的6個點(代表6瓶水)都計算出其預測值,并呈現(xiàn)于Z空間里,如下圖。
可以看出,這些預測值與其目標值都還有相當?shù)木嚯x(誤差)。沒關(guān)系,繼續(xù)努力修正改進,力求止于至善?,F(xiàn)在就來(從頭)尋找300回合看看能不能讓預測值更趨近于目標值。
請您按下“學習分類(300回合)”按鈕,ML會尋找300回合,并且輸出如下。
ML尋找出新的W和B,將W和B值代入X*W + B = Y和Sigmoid(Y)= Z兩個公式,計算出Z值。于是,計算出新的預測值X=[0.6,0.8,1,1,0,0]。也就是將X空間的6個點(代表6瓶水)都計算出其預測值,并呈現(xiàn)于Z空間,如下圖。
可以看出,這些預測值與其目標值已經(jīng)更接近了,但是還是有一些誤差。沒關(guān)系,繼續(xù)努力修正改進,力求止于至善?,F(xiàn)在就來(從頭)尋找3000回合看看能不能讓預測值更趨近于目標值。
請您按下“學習分類(3000回合)”按鈕,ML會尋找3000回合,并且輸出如下。
這次找到了W=0.11,B=1.77,將W和B值代入X*W + B = Y和Sigmoid(Y)= Z兩個公式,計算出Z值。于是,計算出新的預測值X=[0.9,0.9,1,1,0,0]。
可以看出,經(jīng)兩個公式計算,得出的預測值已經(jīng)足夠接近目標值了。于是,我們就可以輸入X值,然后經(jīng)X*W + B = Y和Sigmoid(Y)= Z兩個公式,計算出預測值,以判斷它歸屬于哪一個類別。
例如,針對X=[0,1,4,5]代表的4瓶水,觀察ML計算出來的預測值是Z=[0.9,0.9,1,1],都非常近于目標值(1),所以就預測它屬于“水”類。如下圖所示。
又如,針對X=[-6,-5]代表的2瓶水,觀察ML計算出來的預測值是Z=[0,0],非常近于目標值(0),所以就預測它屬于“冰”類。如下圖所示。
以上說明了ML如何逐步尋找出足夠好的W和B,并依據(jù)W和B將X空間的數(shù)據(jù)(以點表示)對應到Z空間,而得到預測值。然后就可以觀察其預測值靠近哪個目標值,來判斷(或預測)它屬于哪個類別。
3 測試
ML已經(jīng)逐步尋找出足夠好的W(值為1.11)和B(值為1.77),并記住了W和B值,也就是記住了X空間與Z空間的對應關(guān)系?,F(xiàn)在,就用一些測試數(shù)據(jù)來驗證W&B是否真的足夠好?例如,拿來另外3瓶水,其溫度分別是:-8.5、7.2和2。并輸入到Excel表格中,如下圖。
請您按下“預測”按鈕,ML經(jīng)X*W + B = Y和Sigmoid(Y)= Z兩個公式,計算出Z預測值,且輸出如下。
此時,針對X=[-8.5]所代表的水瓶,ML計算出來的預測值是Z=[0],所以就預測它屬于“冰”類。針對X=[7.2,2]所代表的兩瓶水,其ML計算出來的預測值是Z=[1,0.98],都非常接近目標值(1),所以就預測它屬于“水”類。于是,可以看出,這個ML已經(jīng)學會如何分類了。
參考文獻:
[1] 高煥堂.ML的迭代學習過程[J].電子產(chǎn)品世界,2021(5):33-35.