一小时入门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认证工程师。

从小抓起!最值得推荐的少儿编程入门书籍清单

纵观国外的一些科技大佬都是从小就开始学习编程,如比尔盖茨在13岁的时候就开始学习Basic编程;扎克伯格、苹果创始人乔布斯从12岁开始学编程;推特创始人杰克·多西学习编程的时间更早,从8岁就开始了……

而在国内,从小就开始学习编程的儿童却寥寥无几,假如你的孩子正好对互联网、电脑感兴趣的话,那么,编程技术的学习一定会是从小培养的首选。

正好,昨天就是世界儿童读书日,忙碌的家长们假如想教孩子们编程,下面要推荐的这些书就是不错的选择。

1、《Scratch少儿趣味编程》

优点:结合漫画卡通人物,趣味性比较好

适合人群:小学1—3年级学生入门

Scratch 是麻省理工学院设计开发的一款编程工具, 包含了编程语言最基本的元素:变量、函数、循环等,很是适合孩子入门编程,本书作者阿部和广师从PC之父、面向对象之父、图灵奖得主艾伦·凯博士。近年来多次举办面向少儿的编程讲座,在儿童编程方面经验十足。

书中结合孩子们学习的语文、数学、科学、社会、音乐、体育等科目,手把手地教读者如何用Scratch 设计程序(如设计一个自动写作文的程序),配合各式卡通形象,让孩子不会感到枯燥乏味。

学习编程最主要的就是兴趣,所以本书十分适合中小学生等初学者自学或在家长的帮助下学习。

2、动手玩转Scratch2.0编程

优点:讲解细致,由浅入深

适合人群:儿童成人都适用

《动手玩转Scratch2.0编程—STEAM创新教育指南》的目标是将Scratch 作为工具,教会读者最基本的编程概念,同时揭示Scratch 在教学上的强大能力。本书也是以示例来演示,不过里面还穿插了数据结构等计算机科学方面的知识。

所以,此书阅读人群最好是对编程明确感兴趣的,并且已经有一点基础的中学生。

3、Scratch少儿趣味编程2

优点:结合漫画卡通人物,趣味性强

适合人群:中小学生

本书是《Scratch 少儿趣味编程》系列的第二本,采用升级版本Scratch 2.0 教大家如何用Scratch 设计程序,内容贯彻STEAM 教育理念,综合了数学、科学、音乐、实践等科目,旨在引导读者通过实践来探索、发现并理解现实中的知识,在激发创造力的同时提升思考能力和与他人的协作能力。适合中小学生等初学者自学或在家长的帮助下学习。

4、父与子的编程之旅

优点:浅显易懂,卡通人物场景

适合人群:小学生编程入门

当你家孩子学完Scratch这类图形化编程后,如果孩子真的对编程有浓厚的兴趣,希望进一步学习,真正地学习代码类编程语言,那么从Python编程语言入门就是个不错的选择

《父与子的编程之旅》最适合零基础学编程,内容十分浅显易懂,有不少计算机常识的铺垫,同时里面还融入了很多卡通人物的场景对话,让孩子轻松愉快进入编程世界。

5、《Hello Ruby:儿童编程大冒险》

优点:编程与冒险故事相结合,集故事性、趣味性、知识性于一体

适合人群:幼儿园、小学生入门

作者琳达·刘卡斯(LINDALIUKAS)是芬兰赫尔辛基的一位程序员、作家和插画家。全书通过特别有趣的小故事,向孩子们介绍了与编程有关的知识和思维方式,没有一个生涩难懂的专业术语,特别适合孩子阅读,也增强了理念的代入感。并且随书附的一套编程桌游,可以让孩子们通过游戏,锻炼编程思维。

建议家里有3-9岁孩子的亲们,不妨给孩子添置一本这样的编程启蒙书。

6、《和孩子一起玩编程》

优点:国内编写,贴合中国孩子习惯

适合:9岁左右的孩子

国内家长编写的一本Python编程入门书籍,贴合中国孩子的任职习惯。书中的内容大部分都是小故事,以孩子生活的场景为例,介绍了Python编程的基础知识,并且让孩子以闯关的形式持续挑战和学习

7、我的第一本编程书

优点:与生活例子相结合,讲解详细、连贯

适合人群:初学者

本书是编程的入门书,目的在于教会读者编程的基本思路和方法。书中使用专门的工具Sunaba,向读者展示如何从零开始一步步做出一个完整的程序。书中内容讲解详细、连贯,并采用了大量能与现实生活相结合的例子。特别是在对编程思路的介绍上进行了详细的说明。

这本书主要以编程思维培养为起点出发,让还孩子逐渐培养编程的基本思路和方法,喜欢编程,又不喜欢枯燥的可以尝试从这本书入门。

8、程序是怎样跑起来的

优点:图文并茂、通俗易懂

适合人群:有点编程思维的人群,初高中

本书从计算机的内部结构开始讲起,以图文形式详细讲解了二进制、内存、数据压缩、源文件和可执行文件、操作系统和应用程序的关系、汇编语言、硬件控制方法等内容,让读者更直观的了解从用户双击程序图标到程序开始运行之间到底发生了什么。同时还以人物形象来讲解程序的运行原理,生动有趣。

总体图文并茂,通俗易懂,非常适合计算机爱好者及相关从业人员阅读,无论是新学者还是复习者,都是不错的选择

9、网络是怎样连接的

优点:对话的形式介绍网络术语的词源

适合人群:初高中

本书以探索之旅的形式,从在浏览器中输入网址开始,到显示出网页内容为止的整个过程,同样以图文形式讲解了网络的全貌,并重点介绍了实际的网络设备和软件是如何工作的。目的是帮助读者理解网络的本质意义,理解实际的设备和软件,进而熟练运用网络技术。同时,专设了“网络术语其实很简单”专栏,以对话的形式介绍了一些网络术语的词源,颇为生动有趣。

来自:程序员书库(微信号:CodingBook)