从上一期的内容里[1],您已经观察到了ML具有很好的能力,可以探索出足够好的W和B,进而求出足够趋近于目标的预测值。于是,ML就能够帮助人类对各种事物(的数据)进行“分门别类”了,这就简称为:分类(Classification)。现在就来说明机器(计算机)是如何学习分类的。
1 给予目标值:以二元分类为例
首先,由人指引机器(ML)来学习分类。也就是,人给予目标值,而ML则探索出足够好的W和B,进而求出足够趋近于目标的预测值。上述目标值又通称为类别标签(Class Label)。在人们心中,先对事物进行分类,并给各类别贴上卷标(即目标值),以指引(监督)ML逐步学习分类。所以,又称为监督式学习(Supervised Learning)。
例如,下图的数据表示:有6瓶水,其温度分别为X=[0,1,4,5,-5,-6]。此时,人们将它们区分为两个类别(Class):“水”与“冰”。而且人又设定了两个目标值:1代表“水”,且0代表“冰”。如下图所示。
这时人们就可要求ML帮忙寻找出W和B,且希望能够将X=[0, 1, 4, 5, -5, -6]很准确地对应到目标Z=[1,1,1,1,0,0]。上一期曾经说明,ML并没办法直接计算出能够满足这个目标的W和B值。但是它会逐步修正W和B,以尽量满足上述X=[0,1,4,5,-5,-6]与目标Z=[1,1,1,1,0,0]的对应关系(即规律)。所以,在这个范例里,Z空间里有两个目标(Target)点。
在这个范例里,人们将事物区分为两个类别,所以设定两个目标值:1代表“水”,且0代表“冰”。这通称为二元分类(Binary Classification)。
2 ML逐步探索与学习
接下来ML就逐步寻找其中的对应规律,并利用W和B來表达和记住它。在这一过程中,每走1步就会衡量一次,计算出现在与目标值的误差。然后会修正W和B来缩小与目标值的误差。每一次计算误差,并进行修正W和B,这称为一个回合。
请您按下“学习分类(30回合)”按钮,ML会寻找30回合,输出如下。
ML找到了W和B值。然后将W和B值代入X*W + B = Y和Sigmoid(Y)= Z两个公式,计算出Z值。例如,将X=[-6]经X*W+B=Y和Sigmoid(Y)= Z计算出来的值是Z=[0.1],它与目标值X=[0]还有很大误差。如下图。
接着,将X空间的6个点(代表6瓶水)都计算出其预测值,并呈现于Z空间里,如下图。
可以看出,这些预测值与其目标值都还有相当的距离(误差)。没关系,继续努力修正改进,力求止于至善。现在就来(从头)寻找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瓶水)都计算出其预测值,并呈现于Z空间,如下图。
可以看出,这些预测值与其目标值已经更接近了,但是还是有一些误差。没关系,继续努力修正改进,力求止于至善。现在就来(从头)寻找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]。
可以看出,经两个公式计算,得出的预测值已经足够接近目标值了。于是,我们就可以输入X值,然后经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,并依据W和B将X空间的数据(以点表示)对应到Z空间,而得到预测值。然后就可以观察其预测值靠近哪个目标值,来判断(或预测)它属于哪个类别。
3 测试
ML已经逐步寻找出足够好的W(值为1.11)和B(值为1.77),并记住了W和B值,也就是记住了X空间与Z空间的对应关系。现在,就用一些测试数据来验证W&B是否真的足够好?例如,拿来另外3瓶水,其温度分别是:-8.5、7.2和2。并输入到Excel表格中,如下图。
请您按下“预测”按钮,ML经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已经学会如何分类了。
参考文献:
[1] 高焕堂.ML的迭代学习过程[J].电子产品世界,2021(5):33-35.