高煥堂
從數據中尋找出W和B就是ML的主要任務之一。然而,ML并沒辦法直接計算出能夠滿足這個目標的W和B值,但是它會逐步地修正W和B,來滿足輸入空間與目標空間的對映關系(即規律)。本文將說明ML的逐步(迭代)學習策略及過程。
1 設定目標(Target)點
在上一期里,介紹了從X空間對映到Z空間的范例,其中提供了已知的X數據,以及對映的Z數據。如下表:
于是,ML就來尋找其中的對映規律,并利用W和B來表達和記住它。那么,ML(或AI)是如何尋找出W和B的呢?答案是:逐步(迭代)尋找出來的。一旦逐漸尋找出最佳的W和B,再搭配兩個公式來表達出兩個空間里數據的對映規律性。此時,人們告訴ML尋找出W和B,并且希望能夠將X=[-5,0,5]很準確地對映到目標Z=[0,0.5,1]。然而,ML并沒辦法直接計算出能夠滿足這個目標的W和B值。但是它會逐步地修正W和B,來滿足上述X=[-5,0,5]與目標Z=[0,0.5,1]的對映關系(即規律)。所以,我們通稱Z空間這些點為:目標(Target)點。
現在就來觀察ML尋找W和B的趨近過程。在這個過程中,每走一步就會衡量一次,計算出現在與目標值的誤差。然后會修正W和B來縮小與目標值的誤差。每一次計算目前誤差,并進行修正W和B,這稱為:1個回合。例如:

這畫面上有3個按鈕,可觀察ML逐步趨近的過程。
2 迭代尋找權重W和B,并計算預測值
2.1 尋找10回合
請按下<迭代學習(10回合)>按鈕,展開學習10回合,就找到了W=0.11,B=0。如下圖所示:
基于這個W和B值,將X=[-5,0,5]對映到Z空間。其計算過程為:
依據人們的意愿,這個X=[-5]應該對映到目標值Z=[0]。然而,因為目前還沒找到最好的W和B,所以經X*W+B=Y和Sigmoid(Y)=Z計算出來的值是Z=[0.37],與目標值T=[0]有些誤差。如下圖:
沒關系,經逐步修正W和B,就會逐步縮小這項誤差,逐步趨近目標值。
接著,繼續把另一個點X=[0]對映到Z空間。其計算如下:
依據人們的意愿,這個X=[0]應該對映到目標值Z=[0.5]。而經X*W+B=Y和Sigmoid(Y)=Z計算出來的值是Z=[0.5],與目標值一致,沒有誤差。如下圖:
接著,繼續把第3個點X=[0]對映到Z空間。其計算如下:
依據人們的意愿,這個X=[5]應該對映到目標值Z=[1]。而經X*W+B=Y和Sigmoid(Y)=Z計算出來的值是Z=[0.63],與目標值X=[1]有些誤差。如下圖:
沒關系,經逐步修正W和B,就會逐步縮小這項誤差,逐步趨近目標值。
2.2 尋找20回合
剛才尋找、修正(改進)了10回合,而得到了W和B值。然后將W和B值代入X*W+B=Y和Sigmoid(Y)= Z兩公式,計算出來的Z值卻與目標值還有很大的誤差。表示目前所找到的W和B值還不是最佳的答案。
沒關系,繼續努力修正改進,力求止于至善?,F在就來(從頭)尋找20回合看看能不能找出更棒的答案(即W和B)。請您按下<迭代學習(20回合)> 按鈕,ML就從頭尋找20回合,并且輸出如下:
目前找到了W=0.18,B=0。基于這個W和B值,將X=[-5,0,5]對映到Z=[0.29,0.5,0.71]。例如,將X=[-5]值用兩個公式計算如下:
X*W+B=-5*0.18+0=-0.9=Y
Sigmoid(Y)=Sigmoid(-0.9)=0.29=Z
這個Z值(0.29)就是預測值。原來人們的是希望ML能夠找到理想的W和B,讓這個預測值,能夠非常趨近于目標值(0)。雖然仍然有很大誤差,但是與上一小節所找到的預測值(0.37)相比,已經更接近目標值(0)了。這表示更努力尋找更多回合,所得到的預測值就會更趨近于目標值了。
繼續觀察第2個點,ML將X=[0]用兩個公式計算如下:
X*W+B=0*0.18+0=0=Y
Sigmoid(Y)=Sigmoid(0)=0.5=Z
這個Z值(0.5)就是預測值。它與目標值(0.5)一致了:
繼續觀察第3個點,ML將X=[5]用兩個公式計算如下:
X*W+B=5*0.18+0=0.9=Y
Sigmoid(Y)=Sigmoid(0.9)=0.71=Z
這個Z值(0.71)就是預測值。原來人們是希望 ML能夠找到理想的W和B,讓這個預測值能夠非常趨近于目標值(1)。然而目前仍有很大誤差:
沒關系,經逐步修正W和B,就會逐步縮小這項誤差,逐步趨近目標值。
2.3 尋找1 000回合
剛才尋找、修正(改進)了20回合,得到了W和B值。然后將這W和B值代入X*W+B=Y和Sigmoid (Y)=Z兩個公式,計算出來的Z值卻與目標值還有小小的誤差。表示目前所找到的W和B值還不是足夠好的答案。
繼續努力修正改進,力求止于至善。現在就來(從頭)尋找1 000回合,看看能不能讓預測值更趨近于目標值。
請您按下<迭代學習(1 000回合)>按鈕,ML就從頭尋找1 000回合,輸出如下:
這次找到了W=0.67,B=0?;谶@個W和B值,將X=[-5,0,5]對映到Z=[0.03,0.5,0.97]。例如,將X=[-5]值用兩個公式計算如下:
X*W+B=-5*0.67+0=-3.35=Y
Sigmoid(Y)=Sigmoid(-3.35)=0.03=Z
這個Z值(0.03)更趨近于目標值(0),而且足夠接近目標值:
繼續觀察第2個點,ML將X=[0]用兩個公式計算出預測值Z=[0.5]。它與目標值(0.5)一致了。接著,繼續觀察第3個點,ML將X=[5]用兩個公式計算,得出預測值Z=[0.97]。這個Z值(0.97)更趨近于目標值(1),而且足夠接近于目標值:
經逐步地尋找、修正了1 000回合,終于找到了滿意的W和B值,能讓預測值足夠接近于目標值。于是,ML的階段性任務完成了。