新闻中心

EEPW首页 > 设计应用 > AI讲座:ML的分类方法

AI讲座:ML的分类方法

作者:高焕堂(台湾铭传大学、长庚大学 教授) 时间:2021-07-14 来源:电子产品世界 收藏

从上一期的内容里[1],您已经观察到了ML 具有很好的能力,可以探索出足够好的W 和B,进而求出足够趋近于目标的预测值。于是,ML 就能够帮助人类对各种事物(的数据)进行“分门别类”了,这就简称为:分类(Classification)。现在就来说明机器(计算机)是如何学习分类的。

本文引用地址:http://www.eepw.com.cn/article/202107/426892.htm

1   给予目标值:以二元分类为例

首先,由人指引机器(ML)来学习分类。也就是,人给予目标值,而ML 则探索出足够好的W 和B,进而求出足够趋近于目标的预测值。上述目标值又通称为类别标签(Class Label)。在人们心中,先对事物进行分类,并给各类别贴上卷标(即目标值),以指引(监督)ML逐步学习分类。所以,又称为监督式学习(Supervised Learning)。

例如,下图的数据表示:有6 瓶水,其温度分别为X=[0,1,4,5,-5,-6]。此时,人们将它们区分为两个类别(Class):“水”与“冰”。而且人又设定了两个目标值:1 代表“水”,且0 代表“冰”。如下图所示。

1626246205460967.png

这时人们就可要求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)点。

1626246260396677.png

在这个范例里,人们将事物区分为两个类别,所以设定两个目标值:1 代表“水”,且0 代表“冰”。这通称为二元分类(Binary Classification)。

2   ML逐步探索与学习

接下来ML 就逐步寻找其中的对应规律,并利用W和B 来表达和记住它。在这一过程中,每走1 步就会衡量一次,计算出现在与目标值的误差。然后会修正W和B 来缩小与目标值的误差。每一次计算误差,并进行修正W 和B,这称为一个回合。请您按下“学习分类(30 回合)”按钮,ML 会寻找30 回合,输出如下。

1626246319250430.png

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] 还有很大误差。如下图。

1626246361296736.png

接着,将X 空间的6 个点(代表6 瓶水)都计算出其预测值,并呈现于Z 空间里,如下图。

1626246394841698.png

可以看出,这些预测值与其目标值都还有相当的距离(误差)。没关系,继续努力修正改进,力求止于至善。现在就来(从头)寻找300 回合看看能不能让预测值更趋近于目标值。

请您按下“学习分类(300 回合)”按钮,ML会寻找300 回合,并且输出如下。

1626246428892405.png

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 空间,如下图。

1626246461179785.png

可以看出,这些预测值与其目标值已经更接近了,但是还是有一些误差。没关系,继续努力修正改进,力求止于至善。现在就来(从头)寻找3000 回合看看能不能让预测值更趋近于目标值。

请您按下“学习分类(3000 回合)”按钮,ML 会寻找3000 回合,并且输出如下。

1626246494863216.png

这次找到了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),所以就预测它属于“水”类。如下图所示。

1626246554545926.png

又如,针对X=[-6,-5] 代表的2 瓶水,观察ML计算出来的预测值是Z=[0,0],非常近于目标值(0),所以就预测它属于“冰”类。如下图所示。

1626246592921246.png

以上说明了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 表格中,如下图。

1626246641933096.png

请您按下“预测”按钮,ML 经X*W + B = Y 和Sigmoid(Y)= Z两个公式,计算出Z预测值,且输出如下。

1626246674853893.png

此时,针对X=[-8.5] 所代表的水瓶,ML 计算出来的预测值是Z=[0],所以就预测它属于“冰”类。针对X=[7.2,2] 所代表的两瓶水,其ML 计算出来的预测值是Z=[1,0.98],都非常接近目标值(1),所以就预测它属于“水”类。于是,可以看出,这个ML 已经学会如何分类了。

参考文献:

[1] 高焕堂.ML的迭代学习过程[J].电子产品世界,2021(5):33-35.

(本文来源于《电子产品世界》杂志2021年6月期)



关键词: 202106

评论


技术专区

关闭