请选择 进入手机版 | 继续访问电脑版
开启辅助访问
 找回密码
 注册

QQ登录

只需一步,快速开始

第三章 智能助手 如何制作像“Siri”的智能助手来响应命令

时间:2018-08-30 阅读:1221 回复:0
本帖最后由 GaleaWong 于 2018-9-1 15:25 编辑

第三章  智能助手
如何制作像“Siri”的智能助手来响应命令3.1 智能助手


课程活动:创建一个帮助您控制教室设备的智能助手
课程目标:教计算机识别命令的含义
•计算机如何被训练来识别命令背后的意图
•置信度阈值表示机器识别其含义的准确度
•智能助手(例如Siri、小米助手、小爱同学)的工作原理
话题:数字助理与监督学习




在这个项目中,你将创建一个虚拟教室,可以对你所说的内容做出反应。
你可以通过说出你想要的内容来控制教室中的家具设备。
接下来,你将通过给出每个设备的示例来教授计算机识别不同设备的命令。


认识智能家居
它就像钢铁侠中贾维斯一样,能够学习主人的生活习惯并能跟主人进行对话,掌握主人的生活规律,根据主人的作息时间,自动的打开和关闭家里的电器,不需要人远程或是定时的控制开关和按钮,完全智能化。
像星际穿越的塔斯一样,家里出现状况可以第一时间提醒主人,自动识别坏人的入侵,拉响警报,锁门关灯,并拨打报警电话等等。


Important:
主要模块介绍
模块
类别
功能
脚本
我们“智能教室”主要的编程思想,如果我们在输入框内输入“turn on the fan”时,则打开风扇。如果我们在输入框内输入“turn off the fan”时,则关闭风扇。同理“turn on the lamp”和“turn off the lamp”是打开台灯和关闭台灯
事件
程序启动模块,可通过点击舞台上的来启动;通过舞台上的来结束程序


侦测
此积木提示用户输入相应的数据,回车后询问结束,用户输入的答案在“回答积木种可以得到。一般这两个积木是配对使用。
控制
条件程序:重复执行模块内的程序,直到程序结束
控制
条件程序:若满足一定的条件,执行一个命令;不满条件,执行另一个命令,默认结束
数字和逻辑运算
比较运算符:使用比较运算符就能比较两边或者表达式的大小关系,它用来测试两个值之间的关系
事件
用来广播一个消息


界面
过程
导入模型
在界面顶部,有一个“Project templates”项目模板选项。这是Machine Learning for Kids网站为了方便孩子学习机器学习,把大多课程的脚本程序都打包好了。
Scratch的“Project templates”项目模板中选取我们第一课要学习的项目——“Smart classroom”智能教室
导入背景
点击“”图标,从本地文件中上传背景。
编程


当点击绿色旗子或直接点击重复执行内的程序


当点击绿色旗子或直接点击重复执行以下程序:提示用户“输入你的命令”,回车后询问结束,用户输入的答案在“回答积木中可以得到刚才输入的回答,如果回答是打开风扇,那么广播“turn-fan-on

点击“角色”中的“fan
切换至“fan”的脚本程序。当接收到“turn-fan-on”将变量设定为“yes”重复执行,直到变量的值设为no,此时的风扇会一直在5个造型中切换,形成转动的效果。同理台灯的开关脚本程序也如此


风扇的脚本和台灯的脚本如图所示,都是依靠广播接收然后做出切换造型的命令

编程脚本
tips:因为Scratch的模块有用颜色分类,编程的时候根据颜色找出不同模块。
按照“打开风扇”的编程思维,我们把“关闭风扇”,“打开台灯”和“关闭台灯”的脚本都理解好。

做完之后别忘了保存(要养成随手保存文件的习惯)

按照上述的操作,我们只能得到一个必须一字不漏不多地输入turn on the fan”、“turn off the fan”、“turn on the lamp“和”turn off the lamp”的命令来控制教室设备(风扇和台灯),如果需要多命令控制,我们只能通过一直添加条件程序,这和小明的初衷并不符合,接下来我们利用Machine Learning for Kids来进行机器模型的构建,并导入至我们的Scratch程序内。

   
               
3.2 教学
训练系统


进入到Machine Learning for Kids网站,点击“Try it now”试用机器学习系统,进入到“Project”项目进行创作,并创建“Smart classroom”智能教室识别中文文本的项目。


点击“Train
创建一个新标签
为你的项目输入一个标签名(只能是字母和数字),这个标签名是接下来你需要教室设备要做得动作,开关灯和开关风扇

在标签里加入实例
例:我们想开风扇,就要加入“打开风扇”、“感觉好闷”和“我要出汗了”等等意图,机器识别系统会根据标签内的实例进行训练并针对这类问题生成模型,该模型会根据你输入的实例进行判别是属于哪个标签,哪个动作

每个标签里的实例最少要有5个(越多越好,种类越多越好,像“开风扇”和“我好热”这算两类)

把“fan_on”开灯、”fan_off”关灯、”lamp_on”开风扇和”lamp_off”关风扇
点击<Back to project返回项目按钮,回到项目页
点击“Learn & Test”学习与测试按钮
点击“Train new machine learning model”训练一个机器学习模型按钮建立一个新的机器学习模型
建立学习模型的过程需要几分钟,试用Machine Learning for Kids网站,未登录账号的情况下,训练完的模型将会保存4个小时,4个小时后将自动删除,再次使用需重新训练。

在对话框里输入测试字段,系统会判别字段然后做出判断是属于开关哪种教室设备和给出对这个行为的置信度得分,系统自己对自己的判别做出评价
如果置信度得分过低,就需要提供更多的实例
到目前为止你做了什么?
你已经开始训练计算机识别控制两个教室设备的命令。
你可以通过收集更多的示例来实现此目的,而不是尝试编写规则来实现此目的。 这些示例被用于训练机器学习“模型”。
这被称为“监督学习”,因为你监督计算机的训练方式。
计算机将从你给出的示例中学习模式,例如单词的选择以及句子的结构方式。 这些将用于识别命令。

返回项目,点击Scratch,为你的项目增添上机器学习模型生成的积木块
这时Scratch有新的变化(因为建立里新的学习模型而多了新积木)
点击“Open in Scratch”进入Scratch页面


重新打开的Scratch,我们能看到更多模块下有很多新的积木块,这就是根据机器学习模型生成的积木块。此处我们用到
选择 “文件” 点击“Load Project”导入项目导入之前保存的SB2的文件


导入了SB2文件后,在这里我们要使用你的机器学习模型,而不是之前你制定的规则。是你的项目添加的新块。 如果你给它文本内容,它将根据你给计算机的培训返回四个命令之一的标签
就是判别这个文本是想“打开风扇”、“关闭风扇”、“打开台灯”和“关闭台灯”
confidence”是针对“label”的置信度积木块
这时再点旗子,就会出现以下画面
输入命令,然后按Enter键。 风扇或灯泡应根据您的指示做出反应。
确保你测试的内容是否适用于你未在培训中包含的命令。
基本大功告成!

想法和拓展
我们现在能智能控制我们的风扇和台灯了,那么我们可以尝试控制其他的设备?
置信度值高低也影响着模型的判别,如果选择的数字太高,计算机会经常说“对不起,我不确定的意思”,如果选择的数字太低,计算机将会出现太多错误。因此我们要寻找一个稳定的置信度数值,通过增删示例的方法,尝试使用其他置信度的数值,寻找一个适合你的机器学习模型的值。

快速回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

反馈意见:296755806@qq.com

客服电话:13232932772

关注我们
登录 发布 快速回复 返回顶部 返回列表