ML的迭代学习过程
2021-02-09高焕堂
高焕堂
从数据中寻找出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值还不是最佳的答案。
没关系,继续努力修正改进,力求止于至善。现在就来(从头)寻找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的阶段性任务完成了。