一小时入门Scratch机器学习

一说到人工智能和机器学习,人们总会觉得很高深。除了相关从业者,其他人可能就望而却步了。别说让孩子学,自己都很少看一眼。

其实除了那些涉及算法的专项研究和底层嵌入式开发,还有很多上层应用需要人们开发,去运用。

比如今天我要讲的,一个用Scratch机器学习完成智能化教室控制的演示。

在这个项目中,我们将使用 MachinelearningforKids.co.uk 的在线服务来制作一个智能教室助理,让它对我们所输入的内容作出反应。

首先,我们将创建一个使用规则列表来理解命令的助手。但这种方法比较单调,不是很智能。

而我们这次的重点是让计算机能读懂我们的“弦外之意”。

具体是怎么操作的呢?

首先找一台能联网的计算机,且能正常浏览网页。

在浏览器中打开 machinelearningforkids.co.uk ,然后点击“Get Started”,如果你是中文环境,应该是“开始使用”。

点击“立即尝试”后,+ Add a new project 创建一个项目。

这里先说明一下,该平台是支持中文识别的。但为了方便大家入门,我这里用他们的英文版本做讲解了。

建好之后, 再点击“smart classroom”会看到三个选项,选最后一个 “Make”。

这个时候Scratch要出场了。

选择“ Scratch 3”,然后再点“Open in Scratch 3”。不想自己从零开始,就从“ Project templates”里面选择“智能教室”。

点击箭头处的classroom,然后在代码区输入以下内容:

然后点击“小绿旗”测试一下程序是否正常工作。

挨个输入以下命令,并查看程序的反应:

  • Turn on the lamp
  • Turn off the lamp
  • Turn on the fan
  • Turn off the fan

输入“ Turn on the lamp”的时候,看看画面中的灯是不是真的亮了。

如果你上面的操作都没错的话,你现在已经做好了一个传统的教室电器控制系统。接下来就是我们今天的重头戏了。让计算机经过训练之后,不再呆板的钉是钉,铆是铆。要举一反三,像人类一样理解话语中的含义。

比如有时候我们不一定会说“打开这个电扇!”,而是会感叹“天好热啊。”

那如果是一个聪明的助理,肯定就默默的把电扇打开了,并不需要你一字不差的发号施令。

这个是怎么做的呢?

收集训练样本

首先,你要收集足够多的样本。

回到项目首页,点击第一个“Train”。

然后“ + Add new label ”,添加四个新标签。分别在四个池子里输入要训练的词,这一步相当关键。

在“fan on”这个标签里面,你可以表示房间里太热了。

在“fan off”,你可以抱怨房间里太凉了。

在“lamp on”,你可以表示你看不见。

在“lamp off”,你可以抱怨灯太亮了。

如果还不太理解,就照着图做吧。

样本输入的要点:

1、表达一定要准确,不要在冷的要命的时候还说要更多风。

2、词汇尽量多一些,这样计算机可以理解的也更多。

训练和测试一个机器学习模型

再次返回项目首页, 点击“Learn & Test”, 我们要开始让计算机学习,并测试它的学习效果。

如果你的样本数量比较多,可能要在这个环节多等一会儿。如果就几个,基本上一分钟内就可以测试了。

在箭头处输入你想表达的冷热明暗相关意思,看看计算机是不是都认对了。如果觉得满意,就可以继续下一步了。

在Scratch中使用机器学习

再次回到“Make”,点击“Open in Scratch 3”。

你会发现左下角多了一个块积木,那就是我们刚才让计算机辛勤努力后的成果。用它来改造我们前面的程序。

再次单击绿色小旗,看看程序是不是比之前聪明多了?人性多了?

到现在为止,你的“智能教室助理”基本雏形已经完成,如果有兴趣,可以把电视机、音乐播放机什么的都加上。

小结:

一般情况下,真正智能助理都是可以语音控制的。以后如果想实战相关的内容,可以进行更高阶段的研究,比如和IoT的硬件结合等等。

目前已经有人根据亚马逊的Alexa语音识别功能制作了自己的智能助手。国内也有相关厂商提供类似服务,你也可以试试。

素材:Raspberrypi.org

作者:王文文,前51CTO安全频道主编,RedHat认证工程师,华为HCIP-IoT认证工程师。