经过上一讲的准备,我们已经有了 machine learning for kids 的帐户,也有了蓝色巨人IBM Watson AI平台的 API Key。如果还没有准备好这些的同学,请点击传送门进入:
Scratch少儿学人工智能编程系列1-准备工作篇
从本章开始,我们将开始学习《Scratch少儿学人工智能编程》系列的正式课程,第1课就是智能教室助手。在智能教室里,会有风扇、有台灯,教室里有一个智能助手,它可以听同学们的号令,同学们叫谁开,它就帮助把谁就打开,叫谁关,谁就会被关掉。不同的小朋友用的话语都不一样,我们的任务就是编写这个智能助手的程序,让它识别命令,执行任务,酷。
我们把任务分解,可以分为两个大的步骤:
还是一脸茫然,对不对。别着急,爱吃鱼老师带你慢慢来。起码我们已经把任务分解为两个子任务。
第一步 叫计算机识别指令
哎呀,小朋友真实迫不及待要实现你人生的第一个人工智能项目啦。
我们先进入machine learning for kids的网站的首页:
在首页中,点击”转到项目“,或者点击网站上方的导航“项目”,均可以进入下一个页面:
这个界面现在是空的,点击页面右侧的“添加一个新项目”:
在项目名称里输入“MyClassRoom”(经过爱吃鱼老师多次测试,这个地方暂时还不支持中文,所以只能起英文的项目名称了)。识别里会有三个选项,分别是文本、图像和数字,我们这次选择文本。图像和数字以后再慢慢介绍。语言里选择“Chinese(simplified)”,当然是简体中文的意思。然后点击“创建”按钮,项目就创建成功。
我们点击项目名称“MyClassRoom”,进入它的页面:
果然是好专业的界面,光看着上面那几个大字,我们也可以感知到强大的人工智能属性了,那可是因为训练、学习都是人工智能里最常用的术语啊!
页面中有三个大的功能页,分别是训练、学习和测试、以及Make(网站还没有翻译成中文哈,谁给他们提个意见怎么翻译算比较到位)。
首先,我们要使用的是“训练”功能,顾名思义,我们的目标就是训练电脑,能够识别同学们给的指令。小朋友们会说什么来开关风扇、开关灯呢?想一下,想好后我们点击“训练”的按钮,进入界面:
现在界面上是空的,很正常,我们已经不奇怪了。我们已经习惯了找右边的按钮“添加新标签”,点击它 :
这里标签的意思,其实是分类的名称。我们智能教室里,有风扇和台灯两样东西,会产生开灯、关灯、开风扇、关风扇这四个动作。因此,我们这里可以按这四个动作建立4个标签。第一次我们就填写“开灯”(很可惜,这里也不支持中文,因此,爱吃鱼老师只能又来卖弄英文了),填写如下:
我们用这个方法,依次建立“Turn on the light","Turn off the light","Turn on the fan","Turn off the fan",来代表开灯、关灯、开风扇、关风扇四个指令,建立完后:
好了,标签的框架已经建立起来,现在我们要进去填内容。点击每一个标签中的“添加示例”就可以增加了(幸运的事,这里可以输入中文啦):
想一想,你都想用什么话来控制它们呢?比如,要说开灯,我们可以说:开灯、太暗了、把灯打开等等。关灯,我们可以说:太亮了,关灯、我要睡觉了,等等。下面,是爱吃鱼老师建立的一组语言,见下面截图,供你参考。
你也可以添加你自己的命令表达方式,毕竟是你自己的程序你做主。注意,每个分类标签,至少要输入10个,否则会通不过程序的检验。输入完后,点击左上角的“返回项目”,回到下面这个界面:
然后,我们就要进入“学习和测试”,开始让电脑学习,学习,学些!重要的事情说三遍!这个步骤,就是开始要IBM的Watson AI平台去学习我们刚才输入的命令,能够认出我们说的话的含义,到底是要归类到哪一个标签里去。点击“学习和测试”按钮后,进入如下界面:
注意到那个蓝色的按钮“培养新机器学习模式”,就是它了,点击它,这时候它就会让沃森在后台给我们学习,下面是正在训练的信息:
要稍等片刻,它才能完成训练哦。在此过程中,你可以回答页面下方的问答,打发时间,也可以不做。
我们看,一眨眼的功夫,它就学习完毕,界面变成:
上半部分,我们可以看到是一个输入的测试框,我们可以用这个来检验计算机学习的成果:
我们输入“关灯关灯”,从结果来看,有99%的信心它认为是“Turn off the light”,即关灯。
我们再来一个“把灯关闭了”,结果又87%的信心它认为是关灯,结果还行,不会认为是要开灯。
到这里,我们第一步,教会智能助手识别命令,就算完成啦。
第二步 将指令告诉风扇和台灯
这一步,我们就要用到Scratch编程软件来真正实现啦。
我们点击上一个界面中的“返回项目”,回到项目的页面:
这一次,我们要点击“Make”按钮。
进入后,发现有我们很熟悉的小猫出来了,我们就用最新的Scratch3吧(Scratch2的流程大同小异,不再赘述)。还有一点同学们需要注意的是,我们进入Scratch的入口必须从这里进来,因为这里的Scratch3并不是MIT(麻省理工大学)上的,而是machine learning for kids网站上自定义的版本哦。
看起来界面还挺友好的,界面的下方是一些说明,小朋友要是有空自己可以阅读。我们点击按钮“Open in Scratch3”,这样我们就进来了。
在Scratch3中,我们通过项目模板来创建项目,点击界面中的“Project templates”
点击后出现了很多项目模板,我们点击第一个“Smart Classroom”就是我们要的项目模板:
我们看到代码区,有一片自定义的代码,这就是machine learning for kids网站自动帮我们创建的积木:
界面的右侧,基本的素材都有了,除了代码区是空的。
我们先来看一下,素材里面都有什么:
风扇有4个造型,依次切换造型,就可以做出吹风的效果。
台灯有两个造型,一个是亮灯,一个是关灯。
接下去我们要构思如何写我们的程序,先谋定而后动:
1、我们需要一个输入框,用等待输入的方式,告诉智能教室助手要干什么。
2、接收到输入以后,我们要调用识别模块,判断是什么指令,就对角色发对应的消息,让角色做对应的动作。具体给大家分析一下:
1)开风扇,设定一个消息叫做“开风扇”,并设定一个变量,表示风扇的状态是开,还是关。当风扇接收到开的指令时,变量设定为开,然后每隔0.3秒切换造型,一直循环。时间可以调整,调小了风扇就会转的快,调大了风扇就会慢。
2)关风扇:开关的变量变为关,将风扇的造型设为第一个,静止的状态。
3) 开灯,这个比较简单,就是切换造型到第一个造型,表示开灯。
4)关灯,切换到第2个造型即可。
好,我们来动手:
第一步,我们来针对教室做统一的编程,我们先不做识别的内容,先把程序的框架搭起来:
当小绿旗被点击时,重复执行,等待你的说话。并对回答进行判断,我们添加了4个“如果/那么”,用来接收4种指令情况,然后广播对应的消息。
第二步,台灯因为只有开和关两种情况,比较简单,我们对台灯进行编程:
第三步,我们对风扇进行编程:
至此,主程序框架我们都搭完了,并且可以运行起来看看效果,点击小绿旗运行:
输入“开灯”,并按回车键:
我们看见台灯亮了,so good!给自己点个赞!
到这一步为止,我们还没有用上任何人工智能的东西,但涵盖我们程序的功能、使用流程我们都建立起来了。这也是我们程序员在真正的程序设计中经常用的方法,简单的说就是,先完成框架和流程,然后再修改细节,完成最终的程序。这种先有整体,再有细节的方法,大家可以经常用。
第四步,我们增加人工智能的用法,使得智能教室能够处理更多的指令,智能识别你说的话。
在项目模板里(必须通过Project templates里选择Smart Classroom采会有哦),有这样的两个指令:
第一个是 识别的文本(label),这里就是识别出来的分类标签的名字。
第二个是 识别的文本的(confidence),这里就是它的信心指数。还记得上面做的测试吗? 你输入“关灯关灯”,它有99%的信心认为是“关灯”。
我们只要采用它识别为什么名字就好了,就能达到我们学习这个程序的要求。99%的信心,以后有机会爱吃鱼老师再慢慢解说。
在代码候选区,还有以下四个积木块:
它们其实是变量,表示被识别出来是什么意思,依次是:开灯、关灯、开风扇、关风扇。
我们把主程序里的代码替换一下,变变为:
至此,我们的代码就完成了。赶紧试一下你的程序吧,你可以跟它说更多的话,看看它的反应是不是符合你的想法:
哈哈,我们训练的时候可没有训练这句话哦。但是它关灯了吗?快来编写你的人工智能程序试试看吧。
最后,爱吃鱼老师提示你,你可以再回去修改修改你的训练语句,给每个标签多添加一些语句,让智能教室能够识别更多的指令。
当然,你还可以添加上其它的角色素材,让你的教室更加智能起来。
加油!
以上为本人原创,引用请注明版权。