加载中...请稍后..

2017人工智能与深度学习成就报告

发布日期:
2018-08-09
浏览量:
62970

前言:随着我们的日常生活与各种各样的技术越来越紧密地交织在一起,有时候,似乎未来已经到来。然而,技术仍在不断发展,人工智能(AI)已经占据了这一领域的中心地位。在许多前进力量的支持下,人工智能继续激发公众对未来的想象。亚马逊的Alexa、Netflix的推荐系统以及SnapChat滤镜等的创新,进一步推动了这一信念,这些都是人工智能进入个性化领域的优秀范例。


最常见的人工智能构成部分,以及人工智能家族中的“聪明之星”,都是“深度学习”。深度学习是一种数据学习的模式,近年来改进了长期以来的预测准确性标准。除了传统的预测建模之外,它还在语音识别和计算机视觉领域有突出贡献。然而,随着我们迎接新年的到来,事情将变得更加有趣。让我们来看看2017年的深度学习(以及更广泛的人工智能)的情况。


1. 文字

1.1. Google自然机器翻译

将近1年前,Google发布了新一代的Google Translate。这家公司还介绍了其网络架构递归神经网络(RNN)的细节情况。

其关键成果是:将跟人类翻译准确率的差距缩小了55%—85%(由人按照6个等级进行评估)。如果没有像Google手里的那么大规模的数据集的话,是很难用这一模型再生出好结果的。



1.2. 谈判。能否成交?

你大概已经听说过Facebook把它的聊天机器人关闭这则愚蠢的新闻了,因为那机器人失去了控制并且发明了自己的语言。Facebook做这个聊天机器人的目的是为了协商谈判,跟另一个代理进行文字上的谈判,以期达成交易:比如怎么分摊物品(书、帽等)。每一个代理在谈判时都有自己的目标,但是对方并不知道自己的目标。不能达成交易就不能推出谈判。

出于训练的目的,他们收集了人类谈判协商的数据集然后做一个有监督的递归涡轮里面对它进行训练。接着,他们用强化学习训练代理,让它自己跟自己讲话,条件限制是语言跟人类类似。

机器人学会了一条真正的谈判策略——假装对交易的某个方面展现出兴趣,然后随后放弃这方面的诉求从而让自己的真正目标受益。这是创建此类交互式机器人的第一次尝试,结果还是相当成功的。

当然,说这个机器人发明了自己的语言完全就是牵强附会了。在训练(跟同一个代理进行协商谈判)的时候,他们取消了对文字与人类相似性的限制,然后算法就修改了交互的语言。没什么特别。

过去几年,递归网络的发展一直都很活跃,并且应用到了很多的任务和应用中。RNN的架构已经变得复杂许多,但在一些领域,简单的前向网络——DSSM 也能取得类似的结果。比方说,此前Google用LSTM在邮件功能Smart Reply上也已经达到了相同的质量。此外,Yandex还基于此类网络推出了一个新的搜索引擎。


2. 语音

2.1. WaveNet:裸音频的生成式模型

DeepMind的员工在文章中介绍了音频的生成。简单来说,研究人员在之前图像生成(PixelRNN 和 PixelCNN)的基础上做出了一个自回归的完全卷积WaveNet模型。

该网络经过了端到端的训练:文本作为输入,音频做出输出。研究取得了出色的结果,因为跟人类的差异减少了50%。

这种网络的主要劣势是生产力低,由于自回归的关系,声音是串行生产的,所以一秒钟的音频要1到2分钟才能生成。

我们来看看……哦对不起,是听听这个例子。

如果你撤销网络对输入文字的依赖,只留下对之前生成音素的依赖,则网络就能生成类似人类语言的音素,但这样的音频是没有意义的。

听听这个生成语音的例子。

同一个模型不仅可以应用到语音上,而且也可以应用在创作音乐等事情上。想象一下用这个模型(用某个钢琴游戏的数据集训练,也是没有依赖输入数据的)生成音频。

DeepMind研究成果的完全版在这里。

2.2. 理解唇语

唇语理解是另一个深度学习超越人类的成就和胜利。

Google Deepmind跟牛津大学合作在《唇语自然理解》这篇文章中介绍了他们的模型(通过电视数据集训练)是如何超越职业唇语解读师的。

这个数据集总共有包含100000个句子的音视频。模型:音频用LSTM,视频用CNN+LSTM。这两个状态向量提供给最后的LSTM,然后再生成结果(字符)。

训练过程中用到了不同类型的输入数据:音频、视频以及音视频。换句话说,这是一种“多渠道”模型。

2.3. 合成奥巴马:从音频中合成嘴唇动作

华盛顿大学干了一件严肃的工作,他们生成了奥巴马总统的唇语动作。之所以要选择他是因为他讲话的网上视频很多(17小时的高清视频)。

光靠网络他们是没有办法取得进展的,因为人工的东西太多。因此,文章作者构思了一些支撑物(或者花招,你要是喜欢这么说的话)来改进纹理和时间控制。

你可以看到,结果是很惊艳的。很快,你就没法相信这位总统的视频了。


3. 计算机视觉

3.1. OCR:Google Maps和Street View(街景)

Google Brain Team在博客和文章中报告了他们是如何引入一种新的OCR(光学字符识别)引擎给Maps,然后用来识别街道名牌和商店标志。

在技术开发的过程中,该公司编译了一种新的FSNS(法国街道名牌),里面包含有很多复杂的情况。

为了识别每一块名牌,该网络利用了名牌多至4张的照片。特征由CNN来析取,在空间注意(考虑了像素坐标)的帮助下进行扩充,然后再把结果送给LSTM。

同样的方法被应用到识别广告牌上的商店名上面(里面会有大量的“噪声”数据,网络本身必须“关注”合适的位置)。这一算法应用到了800亿张图片上。

3.2. 视觉推理

有一种任务类型叫做视觉推理,神经网络被要求根据一张照片来回答问题。比方说:“图中橡皮材料的物品跟黄色金属圆柱体的数量是不是一样的?”这个问题可不是小问题,直到最近,解决的准确率也只有68.5%。

不过Deepind团队再次取得了突破:在CLEVR数据集上他们达到了95.5%的准确率,甚至超过了人类。

这个网络的架构非常有趣:

1.      把预训练好的LSTM用到文本问题上,我们就得到了问题的嵌入。

2.      利用CNN(只有4层)到图片上,就得到了特征地图(归纳图片特点的特征)

3.      接下来,我们对特征地图的左边片段进行两两配对(下图的黄色、蓝色、红色),给每一个增加坐标与文本嵌入。

4.      我们通过另一个网络来跑所有这些三元组然后汇总起来。

5.      结果呈现再到一个前向反馈网络里面跑,然后提供softmax答案。



3.3. Pix2Code应用

Uizard公司创建了一个有趣的神经网络应用:根据界面设计器的截屏生成布局代码:



这是极其有用的一种神经网络应用,可以帮助软件开发变得容易一些。作者声称他们取得了77%的准确率。然而,这仍然在研究中,还没有讨论过真正的使用情况。

他们还没有开源代码或者数据集,但是承诺会上传。

3.4. SketchRNN:教机器画画

你大概已经看过Google的Quick, Draw!了,其目标是在20秒之内画出各种对象的草图。这家公司收集了这个数据集以便来教神经网络画画,就像Google在他们的博客和文章中所说那样。



这份数据集包含了7万张素描,Google现在已经开放给公众了。素描不是图片,而是画画详细的向量表示(用户按下“铅笔”画画,画完时释放所记录的东西)。

研究人员已经把RNN作为编码/解码机制来训练该序列到序列的变自编码器(Sequence-to-Sequence Variational Autoencoder)。

最终,作为自编码器应有之义,该模型将得到一个归纳原始图片特点的特征向量。

鉴于该解码器可以从这一向量析取出一幅图画,你可以改变它并且得到新的素描。

甚至进行向量运算来创作一只猫猪:



3.5. GAN(生成对抗网络)

生成对抗网络(GAN)是深度学习最热门的话题之一。很多时候,这个想法都是用于图像方面,所以我会用图像来解释这一概念。

其想法体现在两个网络——生成器与鉴别器的博弈上。第一个网络创作图像,然后对二个网络试图理解该图像是真实的还是生成的。

用图示来解释大概是这样的:

mso-hansi-font-family:Helvetica;mso-bidi-font-family:Helvetica; color:#333333'>最终,作为自编码器应有之义,该模型将得到一个归纳原始图片特点的特征向量。

鉴于该解码器可以从这一向量析取出一幅图画,你可以改变它并且得到新的素描。

甚至进行向量运算来创作一只猫猪:



在训练期间,生成器通过随机向量(噪声)生成一幅图像然后交给鉴别器的输入,由后者说出这是真的还是假的。鉴别器还会接收来自数据集的真实图像。

训练这样的结构是很难的,因为找到两个网络的平衡点很难。通常情况下鉴别器会获胜,然后训练就停滞不前了。然而,该系统的优势在于我们可以解决对我们来说很难设置损失函数的问题(比方说改进图片质量)——这种问题交给鉴别器最合适。

GAN训练结果的典型例子是宿舍或者人的图片

t:0cm;margin-bottom:15.0pt;margin-left: 0cm;text-align:justify;text-justify:inter-ideograph;line-height:21.0pt; background:white;vertical-align:baseline;box-sizing: border-box;font-stretch: inherit; word-wrap: break-word;orphans: auto;widows: 1;-webkit-text-stroke-width: 0px; word-spacing:0px'>用图示来解释大概是这样的: mso-hansi-font-family:Helvetica;mso-bidi-font-family:Helvetica; color:#333333'>最终,作为自编码器应有之义,该模型将得到一个归纳原始图片特点的特征向量。

鉴于该解码器可以从这一向量析取出一幅图画,你可以改变它并且得到新的素描。

甚至进行向量运算来创作一只猫猪:



此前,我们讨论过将原始数据编码为特征表示的自编码(Sketch-RNN)。同样的事情也发生在生成器上。

利用向量生成图像的想法在这个以人脸为例的项目http://carpedm20.github.io/faces/中得到了清晰展示。你可以改变向量来看看人脸是如何变化的。



相同的算法也可用于潜在空间:“一个戴眼镜的人”减去“一个人”加上一个“女人”相当于“一个戴眼镜的女人”。



3.6. 用GAN改变脸部年龄

如果在训练过程中你把控制参数交给潜在向量,那么在生成潜在向量时,你就可以更改它从而在在图片中管理必要的图像。这种方法被称为有条件GAN。

《用有条件生成对抗网络进行面部老化》这篇文章的作者就是这么干的。在用IMDB数据集中已知年龄的演员对引擎进行过训练之后,研究人员就有机会来改变此人的面部年龄。



3.7. 专业照片

Google已经为GAN找到了另一种有趣的应用——选择和改善照片。他们用专业照片数据集来训练GAN:生成器试图改进糟糕的照片(经过专业拍摄然后用特殊过滤器劣化),而鉴别器则要区分“改进过”的照片与真正的专业照片。

经过训练的算法会筛查Google Street View的全景照片,选出其中最好的作品,并会收到一些专业和半专业品质的照片(经过摄影师评级)。



3.8. 通过文字描述合成图像

GAN的一个令人印象深刻的例子是用文字生成图像。

>http://carpedm20.github.io/faces/中得到了清晰展示。你可以改变向量来看看人脸是如何变化的。



这项研究的作者提出不仅把文字嵌入到生成器(有条件GAN)的输入,同时也嵌入到鉴别器的输入,这样就可以验证文字与图像的相关性。为了确保鉴别器学会运行他的函数,除了训练以外,他们还给真实图像添加了不正确的文字。

-ascii-font-family:Helvetica; mso-hansi-font-family:Helvetica;mso-bidi-font-family:Helvetica;color:#333333'>的一个令人印象深刻的例子是用文字生成图像。 >http://carpedm20.github.io/faces/中得到了清晰展示。你可以改变向量来看看人脸是如何变化的。



3.9. Pix2pix应用

2016年引人瞩目的文章之一是Berkeley AI Research (BAIR)的《用有条件对抗网络进行图像到图像的翻译》。研究人员解决了图像到图像生成的问题,比方说在要求它用一幅卫星图像创造一幅地图时,或者根据素描做出物体的真实纹理。



这里还有一个有条件GAN成功表现的例子。这种情况下,条件扩大到整张图片。在图像分割中很流行的UNet被用作生成器的架构,一个新的PatchGAN分类器用作鉴别器来对抗模糊图像(图片被分成N块,每一块都分别进行真伪的预测)。

Christopher Hesse创作了可怕的猫形象,引起了用户极大的兴趣。

你可以在这里找到源代码。

3.10. CycleGAN图像处理工具

要想应用Pix2Pix,你需要一个包含来自不同领域图片匹配对的数据集。比方说在卡片的情况下,收集此类数据集并不是问题。然而,如果你希望做点更复杂的东西,比如对对象进行“变形”或者风格化,一般而言就找不到对象匹配対了。

因此,Pix2Pix的作者决定完善自己的想法,他们想出了CycleGAN,在没有特定配对的情况来对不同领域的图像进行转换——《不配对的图像到图像翻译》




其想法是教两对生成器—鉴别器将图像从一个领域转换为另一个领域,然后再反过来,由于我们需要一种循环的一致性——经过一系列的生成器应用之后,我们应该得到类似原先L1层损失的图像。为了确保生成器不会将一个领域的图像转换成另一个跟原先图像毫无关系的领域的图像,需要有一个循环损失。

这种办法让你可以学习马—>斑马的映射。

  • 目录
  • -->