语言和人文是基础,数理化是未来。
当高科技烂大街成为常态,还有啥理由不努力学习AI科学呢。
最近在学习AI,一位朋友正好送了我一本AI技术的书籍,如获至宝,写点经验。
书的主题:使用 Microsoft AI 打造你的首款智能机器人
一、AI养猪
尼泊尔农村出来的一个大学生M女士,和大学同学一起,构建了一个畜牧业、兽医实监控设备原型,
用于跟踪农场动物的体温、睡眠模式、压力水平、动作和活动。这个AI 系统根据这些观察结果中的细微变化,预测每只动物可能的健康状况。
农民能够跟踪他们的牲畜的状况,接收警报和可行的建议。
这个方向真是不错。
我们那里的农村,最近几年比较流行,县城上游企业和村里合作,城里提供猪苗原料等资源,村里村民提供一定的资金盖猪圈,养好之后再卖给上游企业。上游赚大钱,下游稳定赚小钱。
一批猪大概几百只,也不少了。
如果真正实现了传感器量体温等智能化手段,可以养殖更多,不会担心各种疾病。要不然,出现一次疾病,损失惨重。
二、聊天机器人
这个题材是AI技术落地最好的一个应用。
微软小冰很火 https://www.msxiaobing.com/ 有兴趣的可以去官网了解一下。
之前一直想搭建一个自己的AI机器人,然后结合自己的业务场景,比如说今后自己搞了一个技术外包公司,提供了多种技术解决方案,电商、金融、小程序等等。
这个时候,客户通过网上的文章找到了我,看了之后,可能会有一些疑问,这个时候,给他一个智能化的AI机器人或者智能客服之类的工具,陪他聊天,解决它的问题,客户转化率会高很多。
这是咱技术人员的优势,多学习技术,尤其是能够落地的AI科技,发挥咱的才能。
三、全书主要内容和大体思路
这本书短小精悍,写作思路很清晰,层层递进,直接参照了人家的路线图。
1.云、数据和 AI 之间的交集
AI技术:使计算机能够通过感知、学习和推理,以类似于人类的方式为人类提供协助和解决问题。
感知:输入
人:人有 眼睛看到图像、耳朵听到声音、鼻子闻到气味、皮肤感知温度等等。
AI机器技术点:各种传感器,摄像头、耳麦、智能温度计等,计算机视觉、语音识别、语音合成
学习:得到有用的信息
人:读书,学习到新的知识
AI机器技术点:自然语言理解,或者对话AI是其中一种。红绿灯等规则属于那种简单规则化的一种知识,这种机器很好学习。
推理:根据现有信息,得到更多信息
人:最近波音飞机出了事故,正好都是类似型号的。人们很快就能想到,可能是这个机型的技术问题。民航局等很快下达指令,暂停飞行。
机器:这种表示和理解人、事、地点和事件之间的关系,才是高级一点的AI。
最近几年AI越来越火,主要是因为AI技术越来越成熟,成熟的基础是现在云计算平台越来越多,价格还很便宜,比如国外微软的Azure,国内的阿里云。
数据方面,搜索、电商、社交、金融等各方面的数据,都积累了二十多年了。
所以,AI搞的比较好,国外主要是 微软AI、Google AI,百度 AI。
通过初步的了解,搜索公司的AI能力看起来更牛逼一些。
2.Microsoft AI 平台
Microsoft AI 平台旨在将 AI 带给每个开发人员,并通过提供各种服务、基础架构和工具,使开发人员能够进行创新和加速开发过程。
从预构建的 AI(几乎不需要训练)到自定义 AI,开放的 Microsoft AI 平台使开发人员能够使用各种深度学习和机器学习框架和工具。
自定义 AI
Azure 机器学习使你能够开发机器学习和深度学习模型,在云中进行训练并实施。
预构建 AI
只需几行代码,你就可以使用高级的“已完成”服务,来加速智能应用程序的开发。
Microsoft AI 平台还集成了各种机器学习和深度学习框架,包括 TensorFlow、
Caffe2、Microsoft 认知工具包 (CNTK)、Scikit-learn、MXNet、Keras 和 Chainer。
越写越高端,知道个别的比如TensorFlow,后面的完全可以慢慢了解。
先了解大致怎么回事,调用云平台的API工具,先解决一个实际问题,玩玩再说,然后再深入学习,出师,投入到实际项目中。
更多技术可以去微软AI中国(世纪互联运营的那个)官网了解:https://www.azure.cn/zh-cn/
也可以下载电子书,完整了解下。
3.开发智能聊天机器人
聊天机器人与你轻松交谈,回答你的问题,或执行诸如保留你的预订、订购食物或购买物品等任务。
如果设计得当,它们甚至可以“以假乱真”,让你以为自己在和人类说话。
除了微软小冰,京东亚马逊有侧重购物的智能音响,百度的侧重找答案,保险公司已经开始使用AI版电话智能“骚扰”,应用场景还是比较多的。
牛逼哄哄的Microsoft,打算超越这些聊天机器人,创造了“对话 AI 即平台”的概念,将自然语言置于计算的核心。这些系统将被注入由 AI 驱动的感官,以在人与机器之间建立无缝的关系。
喜欢研究的技术人员,去造这样的轮子。
喜欢业务应用开发的,可以去使用这些轮子,解决实际问题,价值也是不菲的。
3.1 自然语言处理
NLP 本质上是能够获取人类产生的文本,并将其转变为机器可读语言的能
力。NLP 从文本中分析和提取关键元数据,包括以下内容:
实体:名词,包括人物、地点和事物。
关系:实体之间的关系。
概念:从文本主体中提取未明确表示的一般概念。例如,“Excel”一词
可能会返回“生产力工具”和“数字”等概念,即使这些词语并没有出
现在文本中。这是一个强大的工具,能够在看似没有明显关系的事物之间建立联系。
(这个略显高端)
情绪:衡量文本所传递的积极性或消极性的水平,比如说,在检测到消极情绪时,将聊天转交给人工客服。
情感:更细粒度的情绪分析。它不仅区分“积极”和“消极”,还包括“愤怒”、“悲伤”和“快乐”。本文中的“牛逼哄哄”、“高端”、“骚扰”所暗含的情绪,应该也是能够识别的。
关键字:提取关键字和词语,以用作索引、搜索、排序等的基础。
类别:这为文本的内容建立了一个分层分类法,并将其置于高级别类别(文
本分类)中。对于推荐相关内容、生成广告、组织电子邮件等应用程
序,这非常有用。
3.2 LUIS语言识别服务
微软提供了 语言识别服务:https://www.luis.ai/home
LUIS 这样的系统旨在提取以下关键输出:
识别意图的能力
用户的目的是什么?意图是用户在输入中表达的目的或目标,例如预订航班、支付账单或查找新闻报道。
识别话语(对话)的能力
话语或对话是来自用户的文本输入,是应用需要理解的内容。它可能是一句话,例如“预订到巴黎的机票”,或是句子的一部分,例
如“预订”或“巴黎机票”。话语和对话并不总是很工整,并且一个意图可以有多种的对话变体。
识别实体的能力
实体表示对话中有意义的详细信息。例如,在对话“预订到巴黎的机票”中,“巴黎”是一个位置实体。通过识别和标记用户对
话中提及的实体,LUIS 可帮助你选择要采取的特定操作,以回应用户的请求。
3.3 定义咱们的对话机器人:场景
现在各种大会,比如CSDN经常主办协办一些大数据和云计算大会。
比如,你正在一个微软AI技术大会,参会者有几百人,大家都兴致勃勃。在演讲者演讲的过程中,你想到了一系列问题。你想提问,但:
• 这不是问答时间。
• 你不喜欢在公共场合说话。
• 在问答时间,你可能手举得不够高或没被挑中。
• 你有语言障碍,不能用演讲者的母语与其流利地交流。
由于后勤或其他障碍,大多数人没有机会在大会期间充分与演讲者进行互动,探讨其中的内容。
要是你有一个叫做“Conference Buddy”的聊天机器人,在想到问题的第一时间提出问题,问题就会得到解答呢?
并且,这些问题也会被传送到仪表板上,演讲者可以参与并实时回答观众提出的问题。
是不是很爽,参会体验大幅度飙升。
我们要构建的 Conference Buddy 聊天客户端将具有三个功能:
3.3.1 回应你的问候并自我介绍
3.3.2. 如有可能,智能且自动地回答你的一些问题
3.3.3 将你向演讲者提出的问题传送到仪表板,以便演讲者可以看到观众提出的所有问题,然后演讲者可以选择要回答的问题
限于篇幅,就不Copy人家代码了。
有兴趣的朋友,可以下载电子书瞧瞧,也可以直接去GitHub下载源代码。https://github.com/Azure/ConferenceBuddy
这里贴一个架构图:
Conference Buddy 机器人有两个主要组成部分:
会议机器人
该组件智能地处理所有与消息相关的事件。
适用于多个渠道,这意味着用户可以通过电子邮件、Skype 或使用自定义消息服务(通过机器人连接器连接到会议机器人)。
机器人大脑
它负责将机器人的业务逻辑抽象化,机器人大脑中存在个别机器人任务,问题和结果显示在 Conference Buddy 仪表板上。
机器人大脑是智能机器人任务的集合,其中每个机器人任务是用于完成单个任务的函数,并且独立于其他机器人任务。
机器人任务
机器人任务是业务逻辑的函数,可以利用多个认知服务 API 来处理用户的消息。机器人任务是机器人大脑集合中的函数。每个机器人任务可以部署
到同一个 Web 服务或单独的 Web 服务,并可相互独立地进行扩展。
例如,“询问 xxx 是谁”任务使用两个认知服务 API - 必应网站搜索和必应图像搜索,将结果合并在响应对象中,并将其发送回给会议机器人。然
后会议机器人会创建一个内容丰富的图形卡片,以将收集到的信息返回给用户。
对话流:Conference Buddy 机器人在工作中的一个例子
为了了解 Conference Buddy 机器人如何运作,我们来研究一个典型的对话流:
1. 用户通过发出第一条消息来调用会议机器人。
2. 会议机器人作出回应,首先向用户打招呼,然后介绍自己能做些什么。
3. 然后用户提出问题,例如,“演讲人lili是谁?”
4. 会议机器人将消息传送给 LUIS 以确定消息的意图:LUIS 解析消息,
在我们的示例中,会返回“这是一个询问 xxx 是谁的任务”。
5. 然后,会议机器人在机器人大脑中,选择要通过 HTTP Post 调用的相应的机器人任务。
在我们的示例中,“询问 xxx 是谁”的任务将执行以下动作:
a. 将字符串发送到必应网站搜索并获取结果。
b. 将字符串并行发送到必应图像搜索。
c. 将图像和文本合并到会议机器人能够理解的响应对象/数据协定中。
6. 会议机器人将图形卡片作为结果发送给用户。
7. 会议机器人将结果发送到 Azure 搜索以进行存档,以便仪表板可以使用它。
8. 用户可以单击卡片上的链接,以从文章来源获取更多信息。
通过以上对话流,我们大致就知道咱们首款智能机器人的工作流程,剩下的就是掌握其中的每一个环节,优化它,使它工作的更好。
仪表板
充当会议与会者和演讲者探讨的问答库。Conference Buddy 仪表板有以下功能:
• 显示所有听众实时提出的问题
• 允许演讲者按照会话、机器人技能或主题快速搜索、排序或过滤结
果,以查看提交的相关问题
这个就简单多了,Java、PHP等各种Web语言都能很快实现。
四、结合电子书,实践一下
回头看,智能对话机器人并没有那么难,阅读本文至少能看懂个大概。
或者说,智能对话确实非常接地气,咱们生活中的场景比较多。
京东等购物平台的智能客服已经可以解决一些标准化问题了。
推销公司有时候,会有AI版的电话自动打过来,问你要不要这个,要不要那个。
有关本文“智能机器人”实现的更多内容,大家可以下载电子书。
使用 Microsoft AI 打造你的首款智能机器人
这本电子书的2个作者,都比较牛逼。
Anand Raman 是 Microsoft AI 平台的办公室主任,也是 AI 生态系统的负责
人。
Wee Hyong Tok 是 Microsoft AI 平台团队的首席数据科学经理。他领导工程和数据科学团队负责“AI for Earth”计划。