2017年深度学习领域实现了哪些可喜的成果?

749 阅读20分钟

本文由 【AI前线】原创:t.cn/RHxwjPU


作者|Ed Tyantov          译者|Debra         编辑|Emily

AI 前线导读:“过去一年里,深度学习文字、语音和计算机视觉技术均得到了巨大的发展,实现了一些可喜的成果。

这篇译自数据科学家 Ed Tyantov 的文章对过去一年(以及更长的一段时间)里,深入学习取得的最新成果进行了总结和评估,并告诉大家可能影响我们未来的最重要的发展趋势。”


文本

Google 神经机器翻译

大约一年前,Google 宣布推出 Google 翻译新模型,并详细介绍了该网络的结构——递归神经网络(RNN)。

  • 机器学习翻译和谷歌翻译算法
  • 机器翻译引擎的基本原理
  • blog.statsbot.co

主要成果: Google 神经机器在翻译的准确性方面与人类的差距缩小了 55-85%(人类为 6 分)。然而,如果没有 Google 的庞大数据集,此模型不一定可以达到这样的效果。

聊天机器人创造语言?No!只是谣言而已

你可能听说过 Facebook 关闭了他们公司的聊天机器人这个可笑的新闻,据说原因是这个机器人失控了,并且发明了自己的语言。这是由 Facebook 创建的谈判机器人,目的是与另一个 agent 进行文本谈判并达成一个协议:如何将物品(书、帽子等)分为两部分。在谈判中,每个 agent 都有各自的目标,而另一个对此毫不知情。

在训练过程中,他们用一个人类谈判的数据集对监督式反馈神经网络进行训练,随后使用强化学习算法,训练另一个 agent 与自己对话,并设置限制,这一点与人类语言相似。

然后机器人很快学会了人类在谈判中经常使用的那一套策略,比如对交易的某些方面表现出虚假的兴趣,然后在谈判后期放弃这一点,并转而达到实际目的而从中受益。这是人类首次尝试创造这样一个互动机器人,而且非常成功。

完整的故事在这篇文章中有描述,机器人的代码也是开源的。

当然,那些声称机器人发明了一种语言的媒体完全是捕风捉影。训练时(与同一 agent 协议),Facebook 禁止了文本与人类的相似性限制,并修改了互动的语言,这其实没什么特别之处。

在过去的一年中,人们开发反馈性神经网络的积极性很高,并已经将其应用到许多任务和软件中。 RNN 的架构变得复杂很多,但是在一些领域,使用简单的前馈网络 DSSM 也取得了类似的成果。例如,Google 邮件的功能“智能回复”,能达到与 LSTM 相同的效果。此外,Yandex 还基于这一神经网络推出了一个全新的搜索引擎。


声音

WaveNet:原始音频生成模型

DeepMind 在这篇文章中报道了关于生成音频的模型。简言之,这个团队的研究人员在图像生成方法(PixelRNN 和 PixelCNN)的基础上生成了自回归全卷积 WaveNet 模型。

该网络为端对端训练模型:输入文本、输出音频。与人类相比,该研究的误差降低了 50%,这是个不错的结果。


然而,WaveNet 的主要缺点是效率低,这是因为自动回归,声音按序生成,创建一个一秒钟长度的音频就需要大约 1-2 分钟。

案例:

storage.googleapis.com/deepmind-me…

如果消除网络对输入文本的依赖性,只依靠先前生成的音素,那么该网络将生成类似于人类语言的无意义的音素。

生成声音的例子

这种模式不仅适用于演讲,也适用于创作音乐。想象一下有一天这个模型可以学习钢琴游戏的数据集(同样不依赖于数据输入),生成音频。

如果对这个模型感兴趣,可以阅读 DeepMind 研究的完整版本。


读唇术

读唇是深度学习超越人类能力,取得的另一大成果。

Google Deepmind 与牛津大学合作,在文章《Lip Reading Sentences in the Wild》中向世人介绍了他们的“读唇”模型。该模型利用他们收集的电视节目数据集进行训练,读唇能力超越 BBC 频道的专业唇读者。

这个数据集中包含 10 万个带有音频和视频的句子。模型:LSTM 处理音频、CNN + LSTM 处理视频。这两个状态向量最终反馈到 LSTM,从而生成结果(字符)。

在训练期间,这个模型使用了不同类型的输入数据:音频、视频、音频 + 视频。换句话说,这是一个“全类型”任务模型。


生成奥巴马音频嘴唇同步运动

华盛顿大学对奥巴马总统唇部的运动进行了一项认真的研究。之所以选择他的视频,据说是因为这位总统的演讲视频在网上数量众多,一搜一大把(17 小时的高清视频)。

因为这些音频经过太多“修饰”,所以文章的作者制造了一些拐点(或技巧),以改善文本和时间节点。

结果很惊人。在不久的将来,恐怕我们在观看一段视频的时候,还得认真考证一番考虑视频的真实性了。


计算机视觉

OCR:Google 地图和街景

Google 大脑团队在他们的文章中,详细介绍了了他们如何在地图中引入可以识别路牌和商店标志 OCR(光学字符识别)的引擎。

在技术开发过程中,该公司编制了一套新的 FSNS(法国街道名称标志),其中包含许多复杂的案例。

这个网络识别一个标志最多需要四张照片。通过 CNN 提取特征,在空间注意力的帮助下进行缩放(将像素坐标考虑在内),并将结果反馈到 LSTM。

图 1:每张图像经过特征提取器处理,随后把结果连成一个特征图,由“f”表示,使用空间加权组合创建一个大小固定,反馈到 RNN 的矢量 ut。

同样的方法还适用于识别商店招牌名称的任务(可能有大量的“噪音”数据,而网络本身必须聚焦到正确的位置),样本可以达 800 亿张照片。


视觉推理

深度学习还可以完成一种被称为视觉推理的任务,要求神经网络通过根据照片回答问题。例如:“在图片中是否有与黄色金属圆柱体相同尺寸的橡胶材质?”而这个重要的问题直到最近才得以解决,准确度达 68.5%。

这次突破同样是 Deepmind 团队的功劳:在 CLEVR 数据集中,他们达到了 95.5%的精确度,这一成果甚至超过人类。

而且,这个网络架构非常有趣:

  1. 在文本问题上使用预先训练好的 LSTM,得到问题嵌入。
  2. 使用 CNN(只有四层)与图片,得到功能图(表征图片的特征)。
  3. 接下来,在特征图(黄色、蓝色,图下方的红色)形成成对的坐标组合,并添加坐标和文本嵌入。
  4. 通过另一个网络进行 triple 和求和。
  5. 最终的演示文稿由另一个前馈网络生成,它负责给出柔性最大值传输函数(softmax)答案。


Pix2 代码

此外,Uizard 公司还创建了一个有趣的神经网络应用:把界面设计者的屏幕截图,并生成一个布局代码。

图 2:使用 DSL 编程的本地 iOS GUI 示例

这是一个非常实用的神经网络应用程序,它可以使开发软件的过程更轻松。作者称,这个网络的准确度可以达到 77%。但是,这个项目目前还在研究阶段,目前还没有开始实际应用。


SketchRNN:训练一台机器画画

也许你听说过 Google 开发的 Quick,Draw!,其目标是在 20 秒内绘制各种目标的草图。如谷歌在博客和文章中所述,他们收集了一个数据集来训练神经网络。

这个数据集包含 7 万张草图,现已开源。草图不是图片,而是绘图的详细向量描述(在某一点用户按下“铅笔”,松开开始绘制等)。

研究人员已经使用 RNN 作为编码 / 解码机制,来训练序列到序列的变分自编码器(VAE)。

图 2:RNN 框架原理图

最终,为了适配自动编码器,该模型接收到表征原始图像的本征向量。

由于解码器可以从这个矢量中提取一幅图画,你可以通过改变向量得到新的草图。

甚至通过执行矢量算法来创建一个“猫猪”:


GANs

生成性对抗网络(GAN,Generative Adversarial Networks )是深度学习中最热门的话题之一。GANs 多用来处理图像,所以我用图像来解释这个概念。

  • 生成性对抗网络(GAN):引擎和应用
  • 生成性对抗网如何被用来改善我们的生活
  • blog.statsbot.co

GAN 的基本原理是两个网络——生成器和鉴别器之间相互竞争。生成器网络生成图片,而鉴别器网络判断图片是真实的,还是生成的。

示意图如下:

在训练期间,来自随机向量(噪声)的生成器生成图像,并将其反馈到鉴别器的输入端,由鉴别器判断输入的真假性。当然,鉴别器接收到的图像也包括数据集中的真实图像。

由于很难找到两个网络的平衡点,对这样的架构进行训练非常困难。大多数情况下,鉴别器都是获胜的一方,训练也因此停滞。但是,这个系统的好处在于可以解决那些难以设定损失功能的问题(例如提高照片的质量),这样的任务我们可以交给鉴别器来完成。

GAN 训练最典型的例子是卧室或人像。

之前,我们考虑过使用自动编码(Sketch-RNN),它将原始数据编码为隐藏表示。生成器同样可以完成这样的任务。

在一个人脸图像项目中,我们使用了矢量生成图像的方法。你可以改变矢量,看看脸部是如何变化的。

同样的算法在隐藏空间中同样有效:“一个戴眼镜的男人”减去“男人”,再加上一个“女人”就等于“戴眼镜的女人”。


用 GAN 改变人脸的年龄

如果在训练过程中向隐藏向量输入控制参数,在生成隐藏向量时就可以对之进行更改,以管理图片中的图像。这种方法被称为条件 GAN(conditional GAN)。

在《Face Aging With Conditional Generative Adversarial Networks》这篇文章中,作者也是这样做的。引擎在经过使用 IMDB 上已知年龄演员的数据集训练之后,研究人员可以改变人的面部年龄。


专业照片

Google 还为 GAN 找到了另一个有趣的用武之地——照片筛选和质量改善。他们使用了专业照片数据集对 GAN 进行了训练:生成器用来改善照片的质量(经过特殊滤镜处理的专业镜头),鉴别器则分辨哪些是经过“改善”的照片,哪些是真正的专业照片。

训练有素的算法通过谷歌街景全景图搜索最佳图片,并搜索到一些专业和半专业的照片(根据摄影师的评级)。


从文本描述中合成图像

GAN 的另一个令人印象深刻的应用案例,是根据文本描述生成图像。

该项目的研究者建议,不仅要将文本嵌入到生成器(条件 GAN)的输入中,而且还要将其嵌入到鉴别器中,以便验证文本与图片的对应性。为了确保鉴别器学会执行功能,除了训练之外,他们还为真实图片添加了对应的错误文本。


Pix2pix

2016 年,在众多文章中,Berkeley AI Research(BAIR)的一篇《 Image-to-Image Translation with Conditional Adversarial Networks》(使用 CAN 进行图像——图像翻译)脱颖而出。这项研究解决了图像到图像生成的问题,例如使用卫星图像创建地图,或使用目标草图创建逼真的纹理等。

这是条件 GAN 成功应用的另一个例子。在这种情况下,条件会覆盖整个图像,在图像分割中很受欢迎的 UNet,则被用作生成器的体系结构,并且使用一个新的 PatchGAN 分类器,作为处理模糊图像的鉴别器(图像被切割成 N 个补丁,并且对每个补丁进行真 / 假预测)。

研究者发布了这个网络的在线演示,引起了用户的极大兴趣。

源代码地址:

github.com/phillipi/pi…


CycleGAN

为了应用 Pix2Pix,我们需要一个包含来自不同域,两两相对应的图片数据集。一般情况下,收集这样的数据集不是问题,但是,如果你想做一些更复杂的事情,如“改变”对象或风格,原则上目标的对应的图片很难找到。

因此,Pix2Pix 的研究者决定开拓思路,并创建了在图像的不同域之间进行转换,而不需要配对图像的模型——CycleGAN(《Unpaired Image-to-Image Translation》)。

这个网络的基本原理,是训练两对生成器和鉴别器把图像从一个域转移到另一个域,在这个过程中需要保持循环一致性——在生成器一系列应用之后,我们预计可以得到一个类似于原始 L1 损失图像。为确保生成器将与原图像完全不相关的一个域传送到另一个域,我们需要一个循环损失。

这种方法可以学习在马 - >斑马之间进行转换。

但这种转变非常不稳定,往往导致不理想的结果:

源代码链接:

github.com/junyanz/Cyc…


肿瘤学分子的发展

机器学习现在也正在走向医学领域。除了识别超声波、MRI,进行诊断外,机器学习还可以用来发现对抗癌症的新药物。

简而言之,在对抗性自动编码器(AAE,Adversarial Autoencoder)的帮助下,我们可以学习分子的隐藏表示,然后用它来搜索新的分子。结果,我们发现了 69 个分子,其中一部分为可以抗癌的分子,其他的则有很大医疗价值。


对抗性攻击(Adversarial attacks)

人们对对抗性攻击的探索同样很积极。那么,什么是对抗性攻击?例如,经过 ImageNet 训练的标准网络在为分类图片添加特殊噪声时,是完全不稳定的。在下面的例子中,我们看到人眼噪声图片几乎没有变化,但模型却给出了一个完全不同分类的预测。


对此,我们可以使用快速梯度符号法(FGSM)实现稳定性:其可以访问模型的参数,能够对所需的类进行一个或多个渐变步骤,并更改原始图片。

Kaggle 的任务之一就与此相关:鼓励参与者生成攻击 / 防御,这些攻击 / 防御经过相互对立,优胜劣汰。

然而,我们为什么要研究这些攻击呢?首先,如果想要保护我们的产品,我们可以向验证码添加噪音,自动识别垃圾邮件。其次,算法与我们的生活越来越密切,例如面部识别系统和自动驾驶车车辆。在这些情况下,算法的缺点很肯会被攻击者利用,造成不可想象的后果。

例如,有一种特殊的眼镜可以成功欺骗脸部识别系统,“把你本人识别成另一个人”。所以,我们在训练模型时需要考虑到可能遭受的攻击。

对标识进行如下操作,也会导致它们不能被正确识别。

  • 竞赛组织者的一些文章。
  • 为预防攻击编写的库:cleverhans 和 foolbox。


强化学习

强化学习(RL)也是机器学习中最有趣,最引人关注的方法之一。

这种方法的本质,是 agent 在特定环境中学习得到奖励的经验,即“成功”的行为,就像人们从生活中得到经验教训一样。

目前,RL 在游戏、机器人和系统管理(例如流量)中被广泛使用。

当然,大家都知道 AlphaGo 在比赛中战胜职业选手的事迹,它的研究人员就是采用 RL 对其进行训练:机器人与自己博弈,改进策略。

不受控辅助任务强化学习

在过去的几年里,DeepMind 用 DQN 玩街机游戏比人类都溜。目前,DeepMind 正在训练算法来玩更复杂的游戏,如 Doom。

因为 agent 获取与环境交互的经验,需要在现在的 GPU 上进行数小时的训练,所以研究人员把大部分的精力都集中在学习加速方面。

Deepmind 在博客中表示,引入额外的损失(辅助任务),如预测帧变化(像素控制),可以让 agent 更好地理解行为的后果,这大大加快了学习速度。


学习机器人

OpenAI 一直在积极研究在虚拟环境中训练 agent,这比在现实中进行实验更安全。

在其中一项研究中,该团队表示,一次性完成学习并非不可能:在虚拟现实环境中,只需展示一次执行某项任务的过程,算法就可以掌握要领,并在真实条件下进行再现。

虽然这些任务对人类来说小菜一碟 :)

学习人的喜好

OpenAI 和 DeepMind 都在对这一课题进行研究。原理是 agent 需要完成一个任务,该算法为其提供两种可能的解决方案,并指出哪一个更好。迭代地重复该过程,并且从来自人类的反馈(二进制标记)中学习如何解决该问题。


和往常一样,人们必须十分小心,谨慎地对机器进行训练。这个例子中,鉴别器判定算法真的想拿到这个目标,但实际上它可能只是模拟了“拿”这个动作而已。

在复杂的环境中运动

DeepMind 还在进行另一项研究。为了训练机器人掌握复杂(走路、跳跃等),或与人类动作类似的行为,必须进行大量的参与损失函数选择,以鼓励其进行我们所期望的行为。而在这一方面,算法最好是通过简单的奖励来学习复杂的行为。

不负众望,DeepMind 研究人员成功实现了这一目标:他们通过构建一个充满复杂障碍的环境,并奖励算法移动的动作来训练 agent(身体模拟器)执行复杂的行为。


其他

冷却数据中心

2017 年 7 月,Google 在报告中称,其利用 DeepMind 机器学习来缩减数据中心的能源成本。

根据来自数据中心上千个传感器的信息,Google 开发人员训练了一个用来预测 PUE(电源使用效率),和提高数据中心管理效率的神经网络集。这是 ML 实际应用的一个令人印象深刻的重要案例。

适用于所有任务的模型

众所周知,我们很难把一个模型套用到其他的任务中去,因为每个任务都必须经过特定的模型训练。然而,Google Brain 在其文章《One Model To Learn The All》中,在创建一个“万能”的模型上迈出了一小步。

研究人员已经训练可以执行来自不同领域(文本、语音和图像)八个任务的模型。例如翻译不同语言,文本解析,以及图像和声音识别。

为了实现这个目标,他们建立了一个复杂的网络结构,用不同的区块来处理不同的输入数据并生成结果。编码器 / 解码器的区块分为三种类型:卷积、注意力和 gated mixture of experts (MoE)。

主要学习成果:

  • 接近完美的模型(未微调超参数)。
  • 不同领域间的知识转移,即在数据量大的任务上,性能几乎相同,而且解决小问题效果更好(例如解析)。
  • 不同任务所需的模块不会相互干扰,有时甚至可以互相帮助。

在一小时内学习 Imagenet

Facebook 的工作人员在他们的文章中称,该公司的工程师能够在一个小时内在 Imagenet 上完成 Resnet-50 模型训练。但是,这个过程需要在 256 个 GPU(Tesla P100)集群上完成。

他们使用 Gloo 和 Caffe2 进行分布式学习。为了提高效率,对学习策略进行大量调整(8192 个元素)是十分必要的,如梯度平均、热身阶段、特殊学习率等。

结果,当从 8 位扩展到 256 位 GPU 时,效率可以达到 90%。现在来自 Facebook 的研究人员可以更快地进行实验,而其他公司则没有这样的条件。


新闻

自动驾驶车辆

自驾车汽车领域的发展如火如荼,很多公司都在对自己的产品进行测试。最近,Intel 收购 MobilEye,Uber 和谷歌技术被千古怨盗窃的丑闻,以及自动驾驶车辆第一次死亡事故等,都非常引人注目。

另外一件值得注意的事是,Google Waymo 正在推出一个测试版程序。Google 是这个领域的先驱,看起来他们的技术不错,因为他们的汽车的行程已经达 300 多万英里。

另外,在美国,自动驾驶汽车已经可以在这个国家的所有州上路行驶了。

卫生保健

正如我所说,ML 技术已经开始引入医学领域。例如,谷歌与医疗中心合作进行疾病诊断。

DeepMind 甚至还开设了医疗保健部。

今年,在 Data Science Bowl 项目的基础上,还举行了一场在一年的时间内根据详细的图像预测肺癌的竞赛,奖金为一百万美元。

投资

目前,ML 收获了大量投资,一如此前的大数据领域。

中国在人工智能方面投资达 1500 亿美元,成为行业的全球领先者。

为了在 AI 领域占得先机,百度研究院雇用了 1300 人从事 AI 研究,Facebook 的 FAIR 则拥有 80 名雇员。在 2017 国际知识发现与数据挖掘大会(KDD)全球论文投稿中,阿里巴巴的员工介绍了他们的参数服务器鲲鹏,它运行 1000 亿个样本,普通任务的参数达万亿级。


通过我们对 2017 年深度学习领域取得成果,也许每个人都会从中得出不同的结论,但学习机器学习永远不会太晚。无论如何,随着时间的推移,所有开发人员都需要使用机器学习,机器学习也将成为开发人人员的必备常用技能,就像今天使用数据库的能力。

关注后回复「AI」你懂的