如何讲授和学习现代人工智能:通过mBlock 5训练机器学习模型

这是一个关于如何使用mBlock 5了解和教学机器学习的教程。

本文探索了如何面向初学者(如中小学生)介绍人工智能的相关知识,以及如何设计活动和问题让学习者思考和体验人工智能。文中包含的“知识点”和“想一想”知识,希望能为老师教案制作提供参考。

本作品采用知识共享署名 4.0 国际许可协议进行许可。

mBlock 的最新版本 mBlock 5 增加了机器学习视觉模型的功能。它是体验、学习和制作视觉相关AI应用的重要工具。因为在 mBlock 5 中,使用者可以快速训练一个机器学习模型,并将其用在图形化编程中。mBlock 5 还可以和机器人等硬件结合,创造丰富的互动效果。

注意:使用机器学习功能需要电脑有摄像头,并且对计算机性能有一定要求。而且现在尚为实验版本。请在使用它授课之前检验教室所用的计算机是否能够流畅使用该功能。

1、 下载和安装 mBlock 5。

请在浏览器中打开下列页面,选择适合自己的操作系统的 mBlock 5 版本。

https://www.mblock.cc/zh-cn/download/

图片

2、启用“机器学习”功能。

在屏幕下方点击熊猫角色将角色切换为熊猫

图片

然后,点击“添加扩展”按钮,打开扩展中心。

在弹出的扩展中心对话框中,点击“机器学习”下方的“添加”安装扩展。

图片

为什么要切换到熊猫角色?因为在mBlock 5中,扩展是和角色相关的;一个Arduino或者micro-python机器人没有能力运行复杂的机器视觉模型,所以在这些角色里就看不到机器学习扩展。如果想用它来操控机器人该怎么办呢?可以使用通讯变量和机器人通讯。不过这就是另一个话题了。

3、训练一个机器视觉模型。

下面将用一个“石头剪刀布”的程序作为例子,讲解如何用用机器学习视觉模型。

一般来说,使用机器学习模型,需要经过“训练”、“检验”、“应用”三个环节。如果要做一个能识别石头剪刀布的应用,第一步就是教会计算机什么是“石头”,什么是“剪刀”,以及什么是“布”。

知识点: 我们要制作的机器学习模型可以在接受一个输入(比如看到一张图片)的时候,给出这个输入的分类(比如这张图片是“剪刀","石头"还是”布“)。这种模型又叫做分类器。分类器在生活中有很多应用,比如停车场记录车牌号,就是通过摄像头拍下车牌,然后将每一个数字分类到0-9其中的一个。

添加扩展后,在新出现的机器学习分类中,点击“训练模型”就可以进行模型的训练了。

图片

如果你的电脑有多个摄像头,可以在该界面的左上角选择使用哪个摄像头。

图片

选择合适的摄像头之后,用手做出“石头”的动作,然后用鼠标按住第一个分类项目上的“学习”按钮,让机器学习模型认识什么是“石头”。在显示样本数为10个以上的时候,松开鼠标结束学习。

知识点: 机器是怎么学会什么是“石头”,什么是“剪刀”的?这需要人给它照一些照片,并告诉它“这就是石头”,“这就是剪刀”。我们照的这些照片叫做“训练样本”,样本中“这就是石头”这样的信息叫做“标注”。很多大型公司会专门雇人做标注的工作:整天告诉电脑诸如“这是猫的左眼”这样的信息。因此,像百度或者谷歌这样的大型互联网公司经常在机器学习领域领先,就是因为大家每天都使用它们的产品,为它们提供了大量的训练样本。

知识点: 我们要做的这种机器学习模型叫做“监督学习”模型。顾名思义,就是机器在我们提供的“有标注的样本”的监督之下进行学习。还有一种学习方式叫做“无监督学习”,比如让电脑自己在没有标注的情况下对一些水果的照片进行分类。最后的结果通常是“这些照片是一类”,“那些照片是一类”。

想一想: “监督学习”可以有那些用途?“无监督学习”可以有那些用途?

用同样的方法,训练模型识别“剪刀”和“布”。然后,在每个分类上面的框中,将分类名称改为“石头”,“剪刀”和“布”。

图片

这时,在摄像头前面变换不同的手势,可以看到每个分类中间的百分比会不停地变化。它代表了电脑认为看到的图像在各个分类的信心。信心最大的分类,就是电脑进行分类判断的结果。

图片

知识点: “信心”是什么?信心是机器学习模型在经过训练之后,对于一个新的输入计算得到的结果。它并不是概率。概率指某个随机事件发生的可能性,这里的“信心”和概率无关。只是帮助机器学习模型判断它的结果是什么。

试一试:尝试几个猜拳动作,并试试让其他同学做这样的动作,看看电脑能否准确地判断动作分类?可以尝试30次,在纸上记录电脑正确了几次,错误了几次。用模型判断正确的次数,除以尝试的总次数,就可以判断机器学习模型的效果。大家把机器学习的效果叫做它的性能。

想一想: 和旁边的小组比较,大家的模型中谁的效果比较好?为什么?能否试着改进自己的模型性能?是不是样本越多性能越好?还有其他的提高模型性能的方法么?

知识点: 欠拟合和过拟合。如果样本过少,电脑就会像盲人摸象一般,来不及学习一个事物的特征,导致性能低下,这种情况叫做欠拟合。欠拟合的反面过拟合,说的是机器学习模型过度把握提供样本的具体特征,无法对一般的情况做出正确的反应;比如说能认出某个人某个角度的手势是“剪刀”,却看不出其他人其他角度的手势是“剪刀”一样。过拟合就如同一些靠死记硬背来学习的同学,无法将学到的知识应用到不断变化的环境中。

训练完成之后,点击“使用模型”按钮,就可以在mBlock中使用模型编写程序了。使用旁边的“新建模型”按钮可以清空当前的模型,重新训练一个新的模型。

图片

4、 在mBlock里使用训练的机器学习模型

在“使用模型”后,会发现DL分类下增加了三条语句块:“识别结果”,“(某分类的)信心”,和“识别结果为(某分类)”。

“识别结果”可以得到电脑认为它所看到的事物对应的标记。它是一个字符串,比如“石头”或者“剪刀”

“xx信心”可以得到电脑对某一个分类的信心。它是大于0小于1的一个小数,就像上面看到的百分比一样。你可以用它做出更具体的判断,比如在各个信心都小于特定数值的时候,认为电脑还没下结论。

“识别结果为xx”得到一个是或者否的结果,可以放在“如果”语句块中作为条件,快速根据不同结果执行不同的程序。

有一个特别需要注意的地方:在使用模型之前,要记得点击“打开识别窗口”。只有当识别窗口打开的情况下,电脑才会使用训练好的机器学习模型。因为机器学习模型太费资源了;在不需要的时候打开会拖慢电脑的速度。

图片

知识点: 怎样让机器学习模型变得更快呢?很多人会使用GPU(图形处理器)进行计算。CPU(中央处理器)常常被称为电脑的大脑。和它不同的是,GPU是专门负责图形计算的芯片,一般被放在显卡里,让电子游戏变得酷炫。它让游戏变得更炫的原因是因为它能快速地计算线性代数(一门大学中的数学学科),计算线性代数的速度决定了计算三维空间中的位置、角度、光影变换的速度(也就决定了在相同时间内游戏的画面有多精美)。同样地,机器学习模型也应用了很多线性代数计算,因此,有很多人用GPU(显卡)来加速机器学习的计算速度。现在,一些国产手机已经使用自己研发的专门芯片来做机器学习——这样,它的照相机就能快速识别正在拍摄的物体,并通过图片处理让相片更加漂亮。

知识点: 训练一个模型所需要的计算能力要远远大于使用模型所需计算能力。因此,很多人会用很多计算机“集团军作战”(这叫做计算集群)或者使用超级计算机来训练一个模型,然后在小型计算机(比如在手机)上应用模型。我国的“天河”系列超级计算机计算能力一直位于世界前茅呢。赶快搜索“天河二号”了解一下吧。

剩下的,就看你的图形化编程技术啦。想想能怎么使用这个模型。下面是一个特别简单(但无趣)的例子。试着把它变得有趣吧。

图片

试一试: 将mBlock的其他语句块和机器学习语句块一起使用,看能制造出什么样的创造发明。有自信的同学可以实现计算机和人对战石头剪刀布的程序。也可以看看,除了石头剪刀布之外,还能让电脑学会认识什么东西。

想一想: 除了识别车牌,机器学习模型在现实社会中还能有那些应用?

知识点: mBlock的机器视觉模型使用了被称作“卷积神经网络”的技术(改编自Google Teachable Machine)。它能够在图片中(重叠的)一片片区域逐渐抽象到更高的层次。卷积神经网络以优良的性能让神经网络和机器学习再次成为热潮(神经网络的概念在1943年就出现了哦),同时也允许mBlock在如此小的(十几到几十个)的样本下达到不错的机器学习性能。

results matching ""

    No results matching ""