教机器去感受:表情符号&深度学习

简介:

雷锋网(公众号:雷锋网)按:CSDN周建丁责编,聊天机器人Dango是基于神经网络开发的,开发者已经用几百万个范例对神经网络进行训练,让程序更好地理解表情符号的意义。

最近,神经网络成为了解决一系列计算机科学难题的一种选择:Facebook使用神经网络来识别图像中的人脸,谷歌使用它们来识别图像中所有东西。苹果公司使用它们来理解你对Siri说的话,IBM则用来操作业务单元的协同作用。

这太令人印象深刻了。但对于实际问题呢?神经网络可以在你需要的时候帮你找到你需要的任何表情符号吗?

哎呀,是的。它们可以。

这篇文章将概述Dango背后的一些工程原理,它可以让我们从数以亿计的现实世界的符号表情使用情况中自动学习,从而产生了一款轻量快捷的工具,用来在手机上实时为你预测表情符号。

教机器去感受:表情符号&深度学习


Dango是什么?

Dango是一款运行在手机上的浮动助理,它会根据你与你朋友在任何应用中所写的东西来预测表情符号,贴图和GIF图片。这使得你在任何应用中都有同样丰富的对话:Messenger,Kik,Whatsapp,Snapchat等。(单单在所有应用中都实现这样的功能就是一大挑战了,不过这不属于这里要讨论的)。

教机器去感受:表情符号&深度学习



推荐表情符号很困难:Dango必须理解你正在写的语句的意思,然后才能为你推荐你想使用的表情。在核心部分,Dango的预测由神经网络来实现。神经网络是一种计算结构,有上百万的可调参数,以类似人脑神经元的连接方式相互连接。

随机对这些参数初始化来训练神经网络,然后输入从互联网上抓取的数以百万的现实世界表情符号使用案例,比如:

教机器去感受:表情符号&深度学习


最开始,网络只是随意猜测,但是随着新的训练样例的输入,它轻微调整那百万个参数,因此它会在那个样例上表现更好。在顶级GPU上训练了几天之后,网络开始输出更具意义的推荐了:

教机器去感受:表情符号&深度学习


我们从表情符号中学到的东西

这种由数据驱动的表情符号预测方法意味着Dango比我们更了解表情符号。Dango教我们使用新的俚语,以及世界各地人们使用表情符号讲述故事的新方式。

例如:如果你写“Kanye is the”,Dango将会预测一个山羊表情。这只山羊当然表示Greatest of All Time(G.O.A.T),这是Kanye在今年早些时候的自称:

教机器去感受:表情符号&深度学习

在他意识到他是当代以及所有时代最伟大的艺术家时说的。

— KANYE WEST (@kanyewest)2016-02-14


Dango可以通过多表情符号来表示事物。例如,如果你居住在不列颠哥伦比亚或科罗拉多,并享受生活,Dango就会这么推荐表情。 

教机器去感受:表情符号&深度学习

如果你对某人生气,希望他们滚出去。Dango会很乐意让它们出去: 

教机器去感受:表情符号&深度学习

Dango同样从网络文化中学习到了丰富的知识。它了解模因和趋势。例如,如果你看过在喝茶的Kermit青蛙的图片“但这不关我事(but that’s none of my business)”那就知道了。

教机器去感受:表情符号&深度学习


教机器去感受:表情符号&深度学习



Dango还了解许多其他的细微引用和笑话,而且它总是在学习,以跟上潮流

教机器去感受:表情符号&深度学习


当然还有许多我们没发现的。

不仅仅是表情符号

由于Dango在表情符号上训练,可能一开始会意识到它可以理解和表示的概念数目很小——在写这篇文章的时候,Unicode协会拥有1624个标准化表情符号,尽管对字体设计师来说这个数目是个头疼问题,但仍然数目相对较少。

然而,这并不意味着只有1624种含义。你在使用表情符号的时候,它们的意义是根据它们的外形以及使用的上下文来定义的——这些意义会高度多样化。

教机器去感受:表情符号&深度学习

可能表示“举手击掌”或者“谢谢”或者“拜托了”。 
教机器去感受:表情符号&深度学习

可能专门表示茄子。


此外,表情符号可以结合使用来表达新的概念。例如:

教机器去感受:表情符号&深度学习

表示亲吻脸颊,但是 

教机器去感受:表情符号&深度学习
表示吹口哨, 
教机器去感受:表情符号&深度学习

表示吐烟雾。


这些表情符号的组合可能变的非常复杂:

教机器去感受:表情符号&深度学习


这意味着Dango可以表示的语义概念的数量比单个表情符号可以表示的数量多得多。这是一个强有力的概念,因为它赋予了Dango理解各种各样的一般概念的方法,不管Unicode协会是否认可。

Dango因此同样可以推荐贴图和GIF。上面已经提到,Dango能够理解滚出去: 

教机器去感受:表情符号&深度学习

它同样可以为你推荐GIF:

教机器去感受:表情符号&深度学习



深入了解

让我们深入了解下它的工作原理。

一种朴素的推荐表情符号的方法(我们在Dango中首次尝试的方法)可以直接将一些词汇映射成类似如下的表情符号: 

教机器去感受:表情符号&深度学习

但是这种方法具有局限性,它并没有反映表情符号(和语言)的实际使用情况。许多由词汇组成的微妙组合不可能用简单的映射来描述。

教机器去感受:表情符号&深度学习


为了处理这些情况,Dango使用了递归神经网络(RNN)。RNN是一种特别的神经网络架构,非常适用于连续输入,因此常常用于自然语言处理,语音处理和金融时间序列分析等领域。在这里我将快速过一遍什么是RNN,想更深入了解的话可以看看Andrej Karpathy的一篇很棒的概述。

教机器去感受:表情符号&深度学习教机器去感受:表情符号&深度学习


RNN通过维护一个内部状态来处理顺序输入,一种记忆机制,使他们能够跟踪之前看到的数据。这对于区分我很开心的表情以及我不开心的表情很重要。

多个RNN也可以彼此堆叠:每层RNN接收输入序列,然后将它转换成一个新的,更抽象的表示,然后将它输入给下一层的RNN,以此类推。这些网络堆叠的越深,它们可以表示的功能种类越复杂。顺便说一句,这就是现在流行的“深度学习”由来。一些难题的重大突破部分是因为单纯地使用了更深层的网络层堆叠。

Dango的神经网络最终输出一个有上百个数字的列表。这个列表可以表示成高维度空间中的点,就像三个数字可以表示点在三维空间中的x,y,z坐标值。

我们可以称这种高维空间为语义空间,把它想象成一个多维的网格,不同的点表示不同的思想。在这个空间中,相似的思想靠的更近。深度学习先驱Geoff Hinton将这种空间称为“思想向量”。Dango在训练过程中学习到的是,如何将自然语言语句和表情符号转换为这种空间中单独的向量。

所以,当Dango接收到某一文本时,它将这个文本映射到这个语义空间中。为决定推荐哪些表情符号,它将每个表情符号的向量投射到这个语义向量上。投射是一项简单的操作,它会给出两个向量相似度的度量。然后Dango推荐有最长投影的那个表情符号——这些是与输入文本意义最接近的表情符号。

可视化语义空间

对于那些通过视觉来思考的人来说,这种空间隐喻是一个强大的工具,可以帮助我们通过直觉来了解和谈论神经网络。(在Whirlscape,我们非常沉迷于空间隐喻;看看我们早期的一篇关于Minuum键盘算法的文章)。

为帮助我们想象Dango的语义空间,我们可以使用一项可视化高维度空间的流行技术,叫做T分布随机邻近嵌入,简称t-SNE。这种技术试图将每个高维度点放置到二维空间中,并确保在原来空间中邻近的点在二维空间中仍保持邻近。虽然这个映射不完美,但是它仍然可以告诉我们很多信息。我们现在使用t-SNE来将表情符号在语义空间中可视化出来:

教机器去感受:表情符号&深度学习

打开交互式地图并探索

注意语义相似的表情符号是如何在这个空间中自动聚集在一起的。例如,大多数脸部表情聚集在“脸部半岛”区域。

高兴的表情在一个区域: 

教机器去感受:表情符号&深度学习

愤怒的表情在另一个区域。 

教机器去感受:表情符号&深度学习

所有的心形表情都聚集在山峰右边附近,我们称之为“爱之顶点(Point Love)”。

再随着尾巴往后看,你可以发现一些其他有趣的分组:篮球、橄榄球、排球、足球表情都相互靠近,带有头发的脸部表情符号与没有头发的脸部表情相互分离(这与他们是否想出门有关)。在右边的尽头处,你可以看到一些旗帜表情和一些冷门的表情,比如文件柜和快进。

此外,Dango从来没有明确的被告知脸部与心形,或啤酒,或农村动物有不同之处。Dango从互联网上使用数以亿计的现实世界表情使用样例来训练模型,之后生成这种语义映射。那么我们这里说的训练是什么意思呢?

在训练前,初始化一个神经网络;输入一些或多或少的随机值;本质上是从清洁状态开始。句子被随机映射到语义空间,其中,表情符号是随机分散的。

要训练一个神经网络,我们定义一个目标函数;这基本上是评估网络对给定样例性能的方式。目标函数输出一个分数值,告诉我们Dango对样例预测情况的好坏。分数越小越好。然后我们使用一个非常简单的算法,叫做梯度下降。对于每个训练样例,梯度下降在最能减小目标函数的方向上,轻微地调节神经网络中百万个参数的值。

在GPU上训练了几天之后,目标函数不能进一步优化了——Dango已经训练完成,能够派上用场了!

语言的未来

语言正在变得可视化。表情符号、贴图以及GIF大受欢迎,尽管以高级的方式使用它们仍需要大量劳动。表情爱好者为每一种情况创建了个人收藏图像,并记住了表情符号键盘的每一页,但我们其余的人依靠“最常用”菜单来立即使用表情符号,有时候是GIF。

这种可视化语言已经与技术一起成熟了,并且这种共生关系还将继续,新技术引发新语言,反过来,新语言催生新技术。未来的通信将会使用到人工智能工具,帮助你无缝对接图像和文字,Dango为处在这方面的前沿而感到自豪。

希望你能从中获得灵感,并和我们一样,将你的语句投射在语义空间的某处,被上百个表情符号包围。也许你开始玩转自己的神经网络。请让我们知晓!

最后,请试试我们的Dango并给予反馈。每当你琢磨着:我应该使用什么表情?Dango将会给你答案。


本文作者:陈圳


本文转自雷锋网禁止二次转载,原文链接


相关文章
|
机器学习/深度学习 人工智能 计算机视觉
带你读《深度学习与图像识别:原理与实践》之一:机器视觉在行业中的应用
这是一部从技术原理、算法和工程实践3个维度系统讲解图像识别的著作,由阿里巴巴达摩院算法专家、阿里巴巴技术发展专家、阿里巴巴数据架构师联合撰写。在知识点的选择上,本书广度和深度兼顾,既能让完全没有基础的读者迅速入门,又能让有基础的读者深入掌握图像识别的核心技术;在写作方式上,本书避开了复杂的数学公式及其推导,从问题的前因后果 、创造者的思考过程,利用简单的数学计算来做模型分析和讲解,通俗易懂。更重要的是,本书不仅仅是聚焦于技术,而是将重点放在了如何用技术解决实际的业务问题。
|
4月前
|
机器学习/深度学习 人工智能 搜索推荐
机器会“看病”?深度学习正在颠覆医学成像!
机器会“看病”?深度学习正在颠覆医学成像!
300 10
|
机器学习/深度学习 人工智能 自然语言处理
深度学习的奥秘:机器如何理解世界
【9月更文挑战第10天】在人工智能领域,深度学习如同璀璨星辰,引领技术潮流。作为机器学习的重要分支,它通过构建深层神经网络模拟人脑学习过程,自动提取特征并优化性能,从而实现对复杂问题的理解和处理。本文将探讨其基本原理、工作机制及如何应用于图像识别、自然语言处理和智能推荐等领域,并展望其未来发展与挑战。
|
机器学习/深度学习
深度学习的魔法:如何让机器像人一样思考
在这篇文章中,我们将探索深度学习的奥秘,这是一种让机器能够模仿人类思维方式的先进技术。我们将通过一个简单的例子——教机器识别猫的图片——来揭示深度学习的工作原理。你将看到,即使是这样一个简单的任务,也需要复杂的数学模型和大量的数据。但别担心,我们会用简单的语言来解释这一切。最后,我们将讨论深度学习如何改变我们的生活,以及它面临的挑战。让我们一起踏上这段神奇的旅程吧!
|
机器学习/深度学习 人工智能 自然语言处理
深度学习的前沿技术和应用:从自然语言处理到机器视觉
深度学习作为人工智能的核心技术,近年来得到了广泛的关注和应用。除了在语音识别、自然语言处理等领域有不俗表现外,深度学习在机器视觉方面也取得了很多进展。本文将介绍深度学习的前沿技术和应用,包括自然语言处理、图像识别和目标检测等。
|
机器学习/深度学习 分布式计算 搜索推荐
这是一张机器&深度学习代码速查表
这是一张机器&深度学习代码速查表
这是一张机器&深度学习代码速查表
|
机器学习/深度学习 人工智能 算法
除了深度学习,你需要知道AI技术的23个方向 | 机器之心首份技术报告
在即将过去的 2017 年,深度学习技术蓬勃发展,AlphaZero 从「零」开始在多种棋类竞技上快速发展,DeepStack 与 Libratus 在德州扑克中击败人类高手,GAN 衍生出各种变体,语音合成从实验室走向产品,Vicarious 提出全新概率生成模型并击破人类的 CAPTCHA 验证码。
1090 0
除了深度学习,你需要知道AI技术的23个方向 | 机器之心首份技术报告
|
机器学习/深度学习 人工智能 自然语言处理
机器之心专访吴恩达,深度学习课程项目Deeplearning.ai正式发布
6 月 23 日,吴恩达通过 Twitter 宣布自己离职百度之后的新一步动向——Deeplearning.ai,并宣称将在 8 月份公布有关 Deeplearning.ai 的更多细节。今日,机器之心获得消息,Deeplearning.ai 项目正式发布。在发布前夕,吴恩达接受了机器之心的专访,对该项目进行了更为详细的解读。
673 0
机器之心专访吴恩达,深度学习课程项目Deeplearning.ai正式发布
|
机器学习/深度学习 人工智能 算法
带你读《深入理解AutoML和AutoDL:构建自动化机器 学习与深度学习平台》之二:自动化人工智能
本书从理论与实践的双重维度,对AutoML和AutoDL的入门知识和进阶知识做了全面介绍。
|
机器学习/深度学习 算法 数据挖掘
带你读《深入理解AutoML和AutoDL:构建自动化机器 学习与深度学习平台》之三:机器学习概述
本书从理论与实践的双重维度,对AutoML和AutoDL的入门知识和进阶知识做了全面介绍。

热门文章

最新文章