高煥堂
從數(shù)據(jù)中尋找出W和B就是ML的主要任務(wù)之一。然而,ML并沒辦法直接計(jì)算出能夠滿足這個(gè)目標(biāo)的W和B值,但是它會(huì)逐步地修正W和B,來滿足輸入空間與目標(biāo)空間的對(duì)映關(guān)系(即規(guī)律)。本文將說明ML的逐步(迭代)學(xué)習(xí)策略及過程。
1 設(shè)定目標(biāo)(Target)點(diǎn)
在上一期里,介紹了從X空間對(duì)映到Z空間的范例,其中提供了已知的X數(shù)據(jù),以及對(duì)映的Z數(shù)據(jù)。如下表:
于是,ML就來尋找其中的對(duì)映規(guī)律,并利用W和B來表達(dá)和記住它。那么,ML(或AI)是如何尋找出W和B的呢?答案是:逐步(迭代)尋找出來的。一旦逐漸尋找出最佳的W和B,再搭配兩個(gè)公式來表達(dá)出兩個(gè)空間里數(shù)據(jù)的對(duì)映規(guī)律性。此時(shí),人們告訴ML尋找出W和B,并且希望能夠?qū)=[-5,0,5]很準(zhǔn)確地對(duì)映到目標(biāo)Z=[0,0.5,1]。然而,ML并沒辦法直接計(jì)算出能夠滿足這個(gè)目標(biāo)的W和B值。但是它會(huì)逐步地修正W和B,來滿足上述X=[-5,0,5]與目標(biāo)Z=[0,0.5,1]的對(duì)映關(guān)系(即規(guī)律)。所以,我們通稱Z空間這些點(diǎn)為:目標(biāo)(Target)點(diǎn)。
現(xiàn)在就來觀察ML尋找W和B的趨近過程。在這個(gè)過程中,每走一步就會(huì)衡量一次,計(jì)算出現(xiàn)在與目標(biāo)值的誤差。然后會(huì)修正W和B來縮小與目標(biāo)值的誤差。每一次計(jì)算目前誤差,并進(jìn)行修正W和B,這稱為:1個(gè)回合。例如:
這畫面上有3個(gè)按鈕,可觀察ML逐步趨近的過程。
2 迭代尋找權(quán)重W和B,并計(jì)算預(yù)測(cè)值
2.1 尋找10回合
請(qǐng)按下<迭代學(xué)習(xí)(10回合)>按鈕,展開學(xué)習(xí)10回合,就找到了W=0.11,B=0。如下圖所示:
基于這個(gè)W和B值,將X=[-5,0,5]對(duì)映到Z空間。其計(jì)算過程為:
依據(jù)人們的意愿,這個(gè)X=[-5]應(yīng)該對(duì)映到目標(biāo)值Z=[0]。然而,因?yàn)槟壳斑€沒找到最好的W和B,所以經(jīng)X*W+B=Y和Sigmoid(Y)=Z計(jì)算出來的值是Z=[0.37],與目標(biāo)值T=[0]有些誤差。如下圖:
沒關(guān)系,經(jīng)逐步修正W和B,就會(huì)逐步縮小這項(xiàng)誤差,逐步趨近目標(biāo)值。
接著,繼續(xù)把另一個(gè)點(diǎn)X=[0]對(duì)映到Z空間。其計(jì)算如下:
依據(jù)人們的意愿,這個(gè)X=[0]應(yīng)該對(duì)映到目標(biāo)值Z=[0.5]。而經(jīng)X*W+B=Y和Sigmoid(Y)=Z計(jì)算出來的值是Z=[0.5],與目標(biāo)值一致,沒有誤差。如下圖:
接著,繼續(xù)把第3個(gè)點(diǎn)X=[0]對(duì)映到Z空間。其計(jì)算如下:
依據(jù)人們的意愿,這個(gè)X=[5]應(yīng)該對(duì)映到目標(biāo)值Z=[1]。而經(jīng)X*W+B=Y和Sigmoid(Y)=Z計(jì)算出來的值是Z=[0.63],與目標(biāo)值X=[1]有些誤差。如下圖:
沒關(guān)系,經(jīng)逐步修正W和B,就會(huì)逐步縮小這項(xiàng)誤差,逐步趨近目標(biāo)值。
2.2 尋找20回合
剛才尋找、修正(改進(jìn))了10回合,而得到了W和B值。然后將W和B值代入X*W+B=Y和Sigmoid(Y)= Z兩公式,計(jì)算出來的Z值卻與目標(biāo)值還有很大的誤差。表示目前所找到的W和B值還不是最佳的答案。
沒關(guān)系,繼續(xù)努力修正改進(jìn),力求止于至善?,F(xiàn)在就來(從頭)尋找20回合看看能不能找出更棒的答案(即W和B)。請(qǐng)您按下<迭代學(xué)習(xí)(20回合)> 按鈕,ML就從頭尋找20回合,并且輸出如下:
目前找到了W=0.18,B=0?;谶@個(gè)W和B值,將X=[-5,0,5]對(duì)映到Z=[0.29,0.5,0.71]。例如,將X=[-5]值用兩個(gè)公式計(jì)算如下:
X*W+B=-5*0.18+0=-0.9=Y
Sigmoid(Y)=Sigmoid(-0.9)=0.29=Z
這個(gè)Z值(0.29)就是預(yù)測(cè)值。原來人們的是希望ML能夠找到理想的W和B,讓這個(gè)預(yù)測(cè)值,能夠非常趨近于目標(biāo)值(0)。雖然仍然有很大誤差,但是與上一小節(jié)所找到的預(yù)測(cè)值(0.37)相比,已經(jīng)更接近目標(biāo)值(0)了。這表示更努力尋找更多回合,所得到的預(yù)測(cè)值就會(huì)更趨近于目標(biāo)值了。
繼續(xù)觀察第2個(gè)點(diǎn),ML將X=[0]用兩個(gè)公式計(jì)算如下:
X*W+B=0*0.18+0=0=Y
Sigmoid(Y)=Sigmoid(0)=0.5=Z
這個(gè)Z值(0.5)就是預(yù)測(cè)值。它與目標(biāo)值(0.5)一致了:
繼續(xù)觀察第3個(gè)點(diǎn),ML將X=[5]用兩個(gè)公式計(jì)算如下:
X*W+B=5*0.18+0=0.9=Y
Sigmoid(Y)=Sigmoid(0.9)=0.71=Z
這個(gè)Z值(0.71)就是預(yù)測(cè)值。原來人們是希望 ML能夠找到理想的W和B,讓這個(gè)預(yù)測(cè)值能夠非常趨近于目標(biāo)值(1)。然而目前仍有很大誤差:
沒關(guān)系,經(jīng)逐步修正W和B,就會(huì)逐步縮小這項(xiàng)誤差,逐步趨近目標(biāo)值。
2.3 尋找1 000回合
剛才尋找、修正(改進(jìn))了20回合,得到了W和B值。然后將這W和B值代入X*W+B=Y和Sigmoid (Y)=Z兩個(gè)公式,計(jì)算出來的Z值卻與目標(biāo)值還有小小的誤差。表示目前所找到的W和B值還不是足夠好的答案。
繼續(xù)努力修正改進(jìn),力求止于至善?,F(xiàn)在就來(從頭)尋找1 000回合,看看能不能讓預(yù)測(cè)值更趨近于目標(biāo)值。
請(qǐng)您按下<迭代學(xué)習(xí)(1 000回合)>按鈕,ML就從頭尋找1 000回合,輸出如下:
這次找到了W=0.67,B=0?;谶@個(gè)W和B值,將X=[-5,0,5]對(duì)映到Z=[0.03,0.5,0.97]。例如,將X=[-5]值用兩個(gè)公式計(jì)算如下:
X*W+B=-5*0.67+0=-3.35=Y
Sigmoid(Y)=Sigmoid(-3.35)=0.03=Z
這個(gè)Z值(0.03)更趨近于目標(biāo)值(0),而且足夠接近目標(biāo)值:
繼續(xù)觀察第2個(gè)點(diǎn),ML將X=[0]用兩個(gè)公式計(jì)算出預(yù)測(cè)值Z=[0.5]。它與目標(biāo)值(0.5)一致了。接著,繼續(xù)觀察第3個(gè)點(diǎn),ML將X=[5]用兩個(gè)公式計(jì)算,得出預(yù)測(cè)值Z=[0.97]。這個(gè)Z值(0.97)更趨近于目標(biāo)值(1),而且足夠接近于目標(biāo)值:
經(jīng)逐步地尋找、修正了1 000回合,終于找到了滿意的W和B值,能讓預(yù)測(cè)值足夠接近于目標(biāo)值。于是,ML的階段性任務(wù)完成了。