扎克伯格是如何建立家庭人工智能Jarvis贾维斯?

这是一篇来自Facebook扎克伯格自己的博文,讲解他是如何建立Jarvis的:

我在2016年的个人挑战是在我的家中建立一个简单的AI人工智能 - 像钢铁侠中的Jarvis贾维斯一样。

我的目标是了解学习现在人工智能的状态 - 我们意识到这方面还有很长的路要走。 这些挑战总是导致我学习得比我预想的更多,这也使我更好地了解Facebook工程师使用的所有内部技术,以及对家庭自动化的全面概述。

到今年为止,我已经建立了一个简单的AI,可以在我的手机和电脑上与之交谈,它可以控制我的家,包括灯光,温度,电器,音乐和家防安全设施,它了解我的口味和模式,可以学习新词和概念,甚至可以与小孩娱乐。 它使用几种人工智能技术,包括自然语言处理,语音识别,面部识别和强化学习,使用用Python,PHP和Objective C编写。在本文中,我将解释我构建的内容和在此过程中学到的东西。

(该系统是由Jarvis服务器、用户界面和Home家庭系统组成,Jarvis服务器是核心,分别连接家庭系统和用户界面,用来处理请求,通过机器学习建立模型;用户界面则是由Messenger Bot、iOS声音应用app、大门摄像头等部分组成,负责与人类互动;家庭系统则是包括灯光、门禁、电器、洗衣机等设备控制系统)

扎克伯格家庭AI视频可见:这里

连接家庭

在我构建AI之前,首先需要编写代码来连接家庭的这些系统,这些系统都使用不同的语言和协议。 我们使用Crestron系统控制灯,恒温器和门禁,使用一个带有Spotify的Sonos系统控制音乐,三星电视,小孩的一个Nest凸轮,当然这些工作系统会连接到Facebook的系统。我不得不对API进行逆向工程,以便可以从我的电脑发出命令,或打开灯或播放一首歌。

此外,大多数电器甚至没有连接到互联网。因此只能控制其中一些使用互联网连接的电源开关,让你打开和关闭远程电源。 但这是远远不够的。 例如,一个教训是是很难找到这样一个烤面包机,当电源关闭时,它会吐出面包,而通电后可以自动烘烤。我最终找到一个20世纪50年代旧的烤面包机,使用连接开关连接上它。同样,我发现连接Beast的食物分配器或灰色T恤大炮(自动弹出衣服)需要硬件修改才能工作。

对于像Jarvis这样的助手能够在家里控制更多的人,我们就需要更多的设备连接,而业界需要开发通用的API和标准,使设备之间相互通信。

自然语言
一旦写好了代码,电脑就可以控制我的家了,下一步是能够与我的电脑和家庭交谈,这是两个步骤的过程:首先,我可以使用短信进行通信,后来我添加了说话能力,并将我的语音翻译为文本,以供阅读。

开始很简单,通过寻找关键字,如“卧室”,“灯”和“开”,以确定我是告诉它打开卧室的灯。 它很快还需要学习同义词,如“家庭房”和“客厅”的意思是在我们的家代表同一个。这意味着建立一种途径教会理解新的词语和概念的方法。

理解上下文对于任何AI都很重要。 例如,当我告诉它打开“我的办公室”电源时,这意味着完全不同于妻子和它说完全相同词语的意思(妻子有另外一间办公室)。 这造成一些问题! 或者,例如,当你要求它使灯光变暗或播放歌曲,而不指定哪个房间,它就需要知道你在哪里,当我们真的需要孩子睡午觉时,它可能会关闭其他人房间里的音乐。 糟糕。

音乐是一个更有趣和复杂的自然语言的领域,因为有太多的艺术家,歌曲和专辑的关键字需要系统来处理。 你可以询问的东西的范围也更大。灯光只能开或关,但当你说“play X”时,即使微妙的变化也可能意味着许多不同的事情。 "play someone like you", "play someone like adele", 和 "play some adele"这些声音类似,但每个都是一个完全不同的类别的请求。 第一个播放指定的歌曲,第二个推荐播放类似adele的歌曲,第三个创建一个播放列表,播放Adele最好的歌曲。通过正反馈系统,AI可以学习这些差异。

AI具有的上下文越多,它就越能处理更多开放式请求。 在这一点上,我大多只是要Jarvis“给我播放一些音乐”,通过查看我过去的欣赏口味模式,它大多能播放我想听到的东西。 如果它的心情不好,我可以告诉它,例如,“那不够嗨,播放一些够嗨的”,它可以学习歌曲的分类,并立即调整。 它也知道我在说话还是妻子说话,所以它可以根据我们每个人的音乐口味进行推荐建议。这方面似乎是一个很大的商业机会。

视觉和面部识别
大约人类大脑的三分之一致力于视觉,并且有许多重要的AI问题是和理解图像和视频中发生的事情有关。 这些问题包括跟踪(例如,孩子的唤醒和在她在婴儿床中移动),对象识别(例如,Beast宠物或哪个房间里的地毯)和面部识别(谁在门口)。

面部识别是对象识别的一个特别困难的分支,因为大多数人看起来相似,不同于比较两个随机对象 - 例如,一个三明治和一个房子。但Facebook已经非常擅长面部识别,它能确定在你照片中你的朋友。 当你的朋友在你的门口,你的AI需要确定是否让他们进入,这种专业知识也很有用。

为了做到这一点,我在我的家门口安装了几个摄像头,可以捕获从所有角度的图像。AI系统今天不能从头部的后面识别人,所以会有一些角度,以确保能看到人的脸。 我建立了一个简单的服务器,连续监视摄像机,有两个步骤的过程:首先,它运行面部检测,以查看是否有人进入视图,其次,如果它发现一个面孔,然后它运行面部识别,以识别他是谁。 一旦它识别出了人,它检查一个列表,以确认是否是我期待那个人,如果是,然后它会让他们进来,并告诉我他们已经到了。

这种类型的视觉AI系统对于许多事情是有用的,包括知道孩子什么时候醒了,所以它可以开始播放音乐或中文普通话,或通过解决上下文问题,知道我们在哪个房子里,所以AI可以正确响应无上下文的请求了,如“打开灯光”,而不需要提供位置。 对于大多数AI系统,视觉是最有用的,当它形成了关于客观世界的更广泛的模型时,它就具备连接能力,如知道你的朋友是谁,以及当他们过来拜访时知道如何打开门,。 系统拥有的上下文越多,整体就越聪明。

...
之后,扎克伯格介绍了Facebook 的messenger bot等相关产品,以及如何通过它进行语音声音识别:

语音声音识别
在心理学层面上,一旦你能够与AI系统交谈,比使用文本或图形界面与计算机交互会有更多的情感深度。 一个有趣的观察是,自从我给Jarvis建立声音交流后,我想更人性化一些。 包括,现在它可以幽默方式与小孩互动,我希望这些互动是为她提供娱乐,让孩子感觉像与我们在一起一样。 我教过它有趣的妻子喜欢的小游戏,我可以让它逗我们一下,它会随机逗乐我们中的一个。

语音识别系统近来已经改进,但是还没有AI系统足以理解对话语音。 语音识别依赖于听你的说话和预测你接下来会说什么,所以结构化的语音仍然比非结构化的对话更容易理解。 语音识别系统和机器学习系统的另一个有趣的限制是,它们比大多数人意识到的更具优化的特定问题。例如,理解与计算机交谈的人与理解与另一人说话的人是有微妙的不同的。Google搜索引擎的数据训练一个机器学习系统,在Facebook上却表现相对较差。

...
原文:
Building Jarvis
[该贴被banq于2016-12-25 11:33修改过]