从Pix2Code到CycleGAN:2017年深度学习重大研究进展全解读

选自Statsbot前端

做者:Eduard Tyantovgit

机器之心编译程序员

2017 年只剩不到十天,随着 NIPS 等重要会议的结束,是时候对这一年深度学习领域的重要研究与进展进行总结了。来自机器学习创业公司的 Eduard Tyantov 最近就为咱们整理了这样一份列表。想知道哪些深度学习技术即将影响咱们的将来吗?本文将给你做出解答。


1. 文本github


1.1 谷歌神经机器翻译算法

去年,谷歌宣布上线 Google Translate 的新模型,并详细介绍了所使用的网络架构——循环神经网络(RNN)。数据库

关键结果:与人类翻译准确率的差距缩小了 55-85%(研究者使用 6 个语言对的评估结果)。可是该模型若是没有谷歌的大型数据集,则很难复现这么优秀的结果。数组

参考阅读:安全

重磅 | 谷歌翻译整合神经网络:机器翻译实现颠覆性突破(附论文)服务器

专访 | 谷歌神经网络翻译系统发布后,咱们和 Google Brain 的工程师聊了聊网络


1.2 谈判会达成吗?

你或许据说过「Facebook 由于聊天机器人失控、创造本身语言而关闭聊天机器人」的消息。这个机器人是用来进行谈判的,其目的是与另外一个智能体进行文本谈判,而后达成协议:如何把物品(书籍、帽子等)分红两份。谈判中每一个智能体都有本身的目标,而对方并不知道。谈判不可能出现未达成协议的状况。

研究者在训练过程当中收集人类谈判的数据集,训练监督式循环网络。而后,让用强化学习训练出的智能体本身与本身交流,直到得到与人类类似的谈判模式。

该机器人学会了一种真正的谈判策略——对某个交易的特定方面伪装产生兴趣,而后再放弃它们,以达到真实目标。这是第一次尝试此类互动机器人,并且也比较成功。

固然,称该机器人创造了一种新语言的说法过于夸张了。和同一个智能体进行谈判的训练过程当中,研究者没法限制文本与人类语言的类似度,而后算法修改了互动语言。这是很寻常的事。


参考阅读:

业界 | 让人工智能学会谈判,Facebook 开源端到端强化学习模型


2. 语音


2.1 WaveNet:一种针对原始语音的生成模型

DeepMind 的研究者基于先前的图像生成方法构建了一种自回归全卷积模型 WaveNet。该模型是彻底几率的和自回归的(fully probabilistic and autoregressive),其每个音频样本的预测分布的前提是全部先前的样本;不过研究代表它能够有效地在每秒音频带有数万个样本的数据上进行训练。当被应用于文本转语音时,它能够获得当前最佳的表现,人类听众评价它在英语和汉语上比当前最好的参数(parametric)和拼接(concatenative)系统所生成的音频听起来都显著更为天然。

单个 WaveNet 就能够以同等的保真度捕获许多不一样说话者的特色,并且能够经过调节说话者身份来在它们之间切换。当训练该模型对音乐建模时,咱们发现它能够生成全新的、并且每每具备高度真实感的音乐片断。该研究还证实其能够被用做判别模型,能够为音速识别(phoneme recognition)返回颇有但愿的结果。

该网络以端到端的方式进行训练:文本做为输入,音频做为输出。研究者获得了很是好的结果,机器合成语音水平与人类差距缩小 50%。

该网络的主要缺陷是低生产力,由于它使用自回归,声音按序列生成,须要 1-2 分钟的时间才能生成一秒音频。

参考阅读:

DeepMind WaveNet,将机器合成语音水平与人类差距缩小 50%


2.2 唇读

唇读(lipreading)是指根听说话人的嘴唇运动解码出文本的任务。传统的方法是将该问题分红两步解决:设计或学习视觉特征、以及预测。最近的深度唇读方法是能够端到端训练的(Wand et al., 2016; Chung & Zisserman, 2016a)。目前唇读的准确度已经超过了人类。

Google DeepMind 与牛津大学合做的一篇论文《Lip Reading Sentences in the Wild》介绍了他们的模型通过电视数据集的训练后,性能超越 BBC 的专业唇读者。

该数据集包含 10 万个音频、视频语句。音频模型:LSTM,视频模型:CNN + LSTM。这两个状态向量被馈送至最后的 LSTM,而后生成结果(字符)。

训练过程当中使用不一样类型的输入数据:音频、视频、音频+视频。即,这是一个「多渠道」模型。



参考阅读:

如何经过机器学习解读唇语?DeepMind 要经过 LipNet 帮助机器「看」懂别人说的话


2.3 人工合成奥巴马:嘴唇动做和音频的同步

华盛顿大学进行了一项研究,生成美国前总统奥巴马的嘴唇动做。选择奥巴马的缘由在于网络上有他大量的视频(17 小时高清视频)。

研究者使用了一些技巧来改善该研究的效果。


3. 计算机视觉


3.1. OCR:谷歌地图与街景

谷歌大脑团队在其文章中报道了如何把新的 OCR(光学字符识别)引擎引入其地图中,进而能够识别街头的标志与商标。

在该技术的发展过程当中,谷歌还给出了新的 FSNS(French Street Name Signs),它包含了大量的复杂案例。

为了识别标志,网络最多使用 4 张图片。特征经过 CNN 提取,在空间注意力(考虑像素坐标)的帮助下缩放,最后结果被馈送至 LSTM。

相同方法被用于识别广告牌上店铺名称的任务上(存在大量噪音数据,网络自己必须关注正确的位置)。这一算法被应用到 800 亿张图片之上。


3.2 视觉推理

视觉推理指的是让神经网络回答根据照片提出的问题。例如,「照片中有和黄色的金属圆柱的尺寸相同的橡胶物体吗?」这样的问题对于机器是很困难的,直到最近,这类问题的回答准确率才达到了 68.5%。

为了更深刻地探索视觉推理的思想,并测试这种能力可否轻松加入目前已有的系统,DeepMind 的研究者们开发了一种简单、即插即用的 RN 模块,它能够加载到目前已有的神经网络架构中。具有 RN 模块的神经网络具备处理非结构化输入的能力(如一张图片或一组语句),同时推理出事物其后隐藏的关系。

使用 RN 的网络能够处理桌子上的各类形状(球体、立方体等)物体组成的场景。为了理解这些物体之间的关系(如球体的体积大于立方体),神经网络必须从图像中解析非结构化的像素流,找出哪些数据表明物体。在训练时,没有人明确告诉网络哪些是真正的物体,它必须本身试图理解,并将这些物体识别为不一样类别(如球体和立方体),随后经过 RN 模块对它们进行比较并创建「关系」(如球体大于立方体)。这些关系不是硬编码的,而是必须由 RN 学习——这一模块会比较全部可能性。最后,系统将全部这些关系相加,以产生场景中对全部形状对的输出。

目前的机器学习系统在 CLEVR 上标准问题架构上的回答成功率为 68.5%,而人类的准确率为 92.5%。可是使用了 RN 加强的神经网络,DeepMind 展现了超越人类表现的 95.5% 的准确率。RN 加强网络在 20 个 bAbI 任务中的 18 个上得分均超过 95%,与现有的最早进的模型至关。值得注意的是,具备 RN 模块的模型在某些任务上的得分具备优点(如概括类问题),而已有模型则表现不佳。

下图为视觉问答的架构。问题在通过 LSTM 处理后产生一个问题嵌入(question embedding),而图像被一个 CNN 处理后产生一组可用于 RN 的物体。物体(图中用黄色、红色和蓝色表示)是在卷积处理后的图像上使用特征图向量构建的。该 RN 网络会根据问题嵌入来考虑全部物体对之间的关系,而后会整合全部这些关系来回答问题。

参考阅读:

关系推理水平超越人类:DeepMind 展现全新神经网络推理预测技术


3.3 Pix2Code

哥本哈根的一家初创公司 UIzard Technologies 训练了一个神经网络,可以把图形用户界面的截图转译成代码行,成功为开发者们分担了部分网站设计流程。使人惊叹的是,同一个模型能跨平台工做,包括 iOS、Android 和 Web 界面,从目前的研发水平来看,该算法的准确率达到了 77%。

为了实现这一点,研究者们须要分三个步骤来训练,首先,经过计算机视觉来理解 GUI 图像和里面的元素(按钮、条框等)。接下来模型须要理解计算机代码,而且能生成在句法上和语义上都正确的样本。最后的挑战是把以前的两步联系起来,须要它用推测场景来生成描述文本。

虽然该工做展现了这样一种能自动生成 GUI 代码的潜力系统,但该研究只是开发了这种潜力的皮毛。目前的 Pix2Code 模型由相对较少的参数组成,而且只能在相对较小的数据集上训练。而构建更复杂的模型,并在更大的数据集上训练会显著地提高代码生成的质量。而且采用各类正则化方法和实现注意力机制(attention mechanism [1])也能进一步提高生成代码的质量。同时该模型采用的独热编码(one-hot encoding)并不会提供任何符号间关系的信息,而采用 word2vec [12] 那样的词嵌入模型可能会有所好转。所以将图片转换为 UI 代码的工做仍处于研究之中,目前还没有投入实际使用。

项目地址:https://github.com/tonybeltramelli/pix2code


参考阅读:

深度学习助力前端开发:自动生成 GUI 图代码(附试用地址)


3.4 SketchRNN:教机器画画

你可能看过谷歌的 Quick, Draw! 数据集,其目标是 20 秒内绘制不一样物体的简笔画。谷歌收集该数据集的目的是教神经网络画画。

研究者使用 RNN 训练序列到序列的变分自编码器(VAE)做为编解码机制。

最终,该模型获取表示原始图像的隐向量(latent vector)。

解码器可从该向量中提取图画,你能够改变它,生成新的简笔画。

甚至使用向量算术来绘制猫猪(catpig):


参考阅读:

谷歌发布 Quick Draw 涂鸦数据集:5000 万张矢量图,345 个类别


3.5 GAN

GAN 是深度学习领域里的一个热门话题。目前这种方法大多用于处理图像,因此本文也主要介绍这一方面。GAN 的全称为生成对抗网络,是 2014 年由 Ian Goodfellow 及其蒙特利尔大学的同事们率先提出的。这是一种学习数据的基本分布的全新方法,让生成出的人工对象能够和真实对象之间达到惊人的类似度。

GAN 背后的思想很是直观:生成器和鉴别器两个网络彼此博弈。生成器的目标是生成一个对象(好比人的照片),并使其看起来和真的同样。而鉴别器的目标就是找到生成出的结果和真实图像之间的差别。鉴别器一般会从数据集中给出图像用于对比。

因为很难找出两个网络之间的平衡点,训练一般难以连续进行。大多数状况下鉴别器会获胜,训练陷入停滞。尽管如此,因为鉴别器的设计能够帮助咱们从损失函数设定这样的复杂问题中解决出来(例如:提高图片质量),因此 GAN 得到了众多研究者的青睐。

典型的 GAN 训练结果——卧室和人脸。

在此以前,咱们一般会考虑使用自编码器(Sketch-RNN),让其将原始数据编码成隐藏表示。这和 GAN 中生成器所作的事情同样。

你能够在这个项目中(http://carpedm20.github.io/faces/)找到使用向量生成图片的方法。你能够自行尝试调整向量,看看生成的人脸会如何变化。

这种算法在隐空间上一样适用:「一个戴眼镜的男人」减去「男人」加上「女人」就等于「一个戴眼镜的女人」。


参考阅读:

深刻浅出:GAN 原理与应用入门介绍


3.6 使用 GAN 改变面部年龄

若是在训练过程当中得到一个可控制的隐向量参数,咱们就能够在推断阶段修改这个向量以控制图像的生成属性,这种方法被称为条件 GAN。

论文 Face Aging With Conditional Generative Adversarial Networks 的做者使用在 IMDB 数据集上预训练模型而得到年龄的预测方法,而后研究者基于条件 GAN 修改生成图像的面部年龄。

参考阅读:

解读 | 艺术家如何借助神经网络进行创做?


3.7 专业摄影做品

谷歌已经开发了另外一个很是有意思的 GAN 应用,即摄影做品的选择和改进。开发者在专业摄影做品数据集上训练 GAN,其中生成器试图改进照片的表现力(如更好的拍摄参数和减小对滤镜的依赖等),判别器用于区分「改进」的照片和真实的做品。

训练后的算法会经过 Google Street View 搜索最佳构图,得到了一些专业级的和半专业级的做品评分。

参考阅读:

谷歌「虚拟摄影师」:利用深度学习生成专业级摄影做品


3.8 pix2pix

伯克利人工智能研究室(BAIR)在 2016 年很是引人注目的研究 Image-to-Image Translation with Conditional Adversarial Networks 中,研究人员解决了图像到图像的生成问题。例如须要使用卫星图像建立地图,或使用素描建立逼真的目标纹理等。

这里有另外一个很是成功的条件 GAN 应用案例。在该状况下,条件将变为整张图像。此外,UNet 在图像分割中十分受欢迎,常常用于生成器的体系结构,且该论文使用了新型 PatchGAN 分类器做为处理模糊图像的判别器。

该论文的做者还发布了他们网络的在线演示:https://affinelayer.com/pixsrv/

源代码:https://github.com/phillipi/pix2pix


参考阅读:

教程 | 你来手绘涂鸦,人工智能生成「猫片」:edges2cats 图像转换详解


3.9 CycleGAN

为了应用 Pix2Pix,咱们须要包含了不一样领域图像对的数据集。收集这样的数据集并不困难,但对于更复杂一点的转换目标或风格化目标等操做,原则上是找不到这样的目标对。

所以,Pix2Pix 的做者为了解决这样的问题提出了在不一样图像领域之间转换而不须要特定图像对的 CycleGAN 模型,原论文为《Unpaired Image-to-Image Translation》。

该论文的主要想法是训练两对生成器-判别器模型以将图像从一个领域转换为另外一个领域,在这过程当中咱们要求循环一致性。即在序列地应用生成器后,咱们应该获得一个类似于原始 L1 损失的图像。所以咱们须要一个循环损失函数(cyclic loss),它能确保生成器不会将一个领域的图像转换到另外一个和原始图像彻底不相关的领域。

这个方法容许咱们学习将马映射到斑马。

这样的转换一般是不稳定的,而且常常建立一些不成功的案例:

源代码:https://github.com/junyanz/CycleGAN


参考阅读:

学界 | 让莫奈画做变成照片:伯克利图像到图像翻译新研究


3.10 肿瘤分子学的进展

机器学习正在帮助改善医疗的手段,它除了在超声波识别、MPI 和诊断等方面的应用,还能寻找对抗癌症的性药物。

简单来讲,在对抗自编码器(AAE)的帮助下,咱们能够学习药物分子的潜在表征,并用来搜索新的药物结构。该项研究中,研究者发现了 69 个分子,且有一半的分子可用来治疗癌症和其它一些比较严重的疾病。

参考阅读:

深刻浅出:GAN 原理与应用入门介绍


3.11 对抗性攻击

对抗性样本这一领域也有很是大的活力,研究者但愿找到这种令模型不稳定的因素而提高识别性能。例如在 ImageNet 中,训练的模型在识别加了一些噪点的样本会彻底识别错误,这样加了噪点的图像可能在咱们人眼看来是没有问题的。这一问题展示在下图中,熊猫的图像加了一点噪声就会被错误识别为长臂猿。

Goodfellow et al. (2014b) 代表,出现这些对抗样本的主要缘由之一是模型过分线性化。神经网络主要是基于线性模块而构建的,所以它们实现的总体函数被证实是高度线性的。虽然这些线性函数很容易优化,但若是一个线性函数具备许多输入,那么它的值能够很是迅速地改变。若是咱们用 ϵ 改变每一个输入,那么权重为 w 的线性函数改变能够达到 ϵ∥w∥_1,若是 w 的维度较高,那么这会是一个很是大的数值。对抗训练经过鼓励网络在训练数据附近的局部区域恒定来限制这一高度敏感的局部线性行为。这能够被看做是一种明确地向监督神经网络引入局部恒定先验的方法。

下面一个例子表示特殊的眼镜能够欺骗人脸识别系统,因此在训练特定的模型时,咱们须要考虑这种对抗性攻击并使用对抗性样本提升模型的鲁棒性。

这种使用符号的方法也不能被正确地识别。

参考阅读:

学界 | OpenAI 探讨人工智能安全:用对抗样本攻击机器学习


4 强化学习

强化学习(RL)或使用了强化机制的学习也是机器学习中最有趣和发展活跃的方法之一。

该方法的本质是在一个根据经验给予奖励(正如人类的学习方式)的环境中学习智能体的成功行为。

RL 在游戏、机器人和系统控制(例如,交通)中被普遍应用。

固然,每一个人都已经据说了 AlphaGo 在游戏中击败过多个顶尖专业选手。研究者使用 RL 训练 AlphaGo 的过程是:让机器经过自我对弈提高决策能力。


4.1 结合非受控辅助任务的强化训练

去年,DeepMind 经过使用 DQN 玩电子游戏取得了超越人类的表现。最近,人们已经开发出了能让机器玩更加复杂的游戏(如 Doom)的算法。

大多数研究关注于学习加速,由于学习智能体与环境交互的经验须要在现代 GPU 上执行很长时间的训练。

DeepMind 的博客(https://deepmind.com/blog/reinforcement-learning-unsupervised-auxiliary-tasks/)中报告了引入附加损失(辅助任务)的办法,例如预测帧变化(像素控制)使智能体更充分地理解动做的后果,能够显著加快学习过程。


参考阅读:

突破 | DeepMind 为强化学习引入无监督辅助任务,人工智能的 Atari 游戏水平达到人类的 9 倍


4.2 学习机器人

OpenAI 对在虚拟环境中训练智能体进行了积极的研究,相比在现实世界中进行实验要安全得多。

在其中一个研究中(https://blog.openai.com/robots-that-learn/),他们证实了一次性学习(one-shot learning)是可能实现的:在 VR 中的一我的展现如何执行任务,而且算法只须要一次展现就能学会而后在实际条件下将其重现。

若是只有人类有这个能力就行了。:)

参考阅读:

学界 | OpenAI 推出机器人新系统:机器可经过 VR 演示自主学习新任务


4.3 学习人类的偏好

这是 OpenAI(https://blog.openai.com/deep-reinforcement-learning-from-human-preferences/)和 DeepMind 都曾研究过的课题。基本目标是智能体有一个任务,算法为人类提供两个可能的解决方案,并指出那个更好。该过程须要重复迭代,而且算法接收来自学习如何解决问题的人类的 900 比特大小的反馈(二进制标记)。

一如既往,人类必须谨慎判断,思考他教给机器到底是什么。例如,评估器得出算法确实想要拿到某个物体,但实际上,人类只是想进行一次模拟实验。

参考阅读:

OpenAI 联合 DeepMind 发布全新研究:根据人类反馈进行强化学习


4.4 在复杂环境中的运动

这是 DeepMind 的另外一项研究(https://deepmind.com/blog/producing-flexible-behaviours-simulated-environments/)。为了教会机器人执行复杂的行为(行走、跳跃,等),甚至达到相似人体的动做,你须要很是重视损失函数的选择,以得到想要的行为。然而,让算法自身经过简单的奖励机制学习复杂的行为或许会有更好的效果。

为了达到这个目标,研究者经过构建一个包含障碍物的复杂环境教智能体(人体模拟器)执行复杂的动做,结合简单的奖励机制提升动做质量。

能够经过视频查看研究取得的使人印象深入的结果。

最后,我给出 OpenAI 近日发布的应用强化学习的算法的连接(https://github.com/openai/baselines)。这个解决方案比标准的 DQN 方法更好。

参考阅读:
学界 | DeepMind论文三连发:如何在仿真环境中生成灵活行为


5 其它


5.1 数据中心冷却系统

在 2017 年 7 月,谷歌报告称他们利用 DeepMind 的机器学习研究成果下降了数据中心的能耗。

基于来自数据中心的几千个传感器的信息,谷歌开发者训练一个神经网络集成预测能量利用效率(PUE)以及更高效的数据中心管理方法。这是机器学习中很是使人印象深入和重要的实际应用案例。


5.2 通用模型

如你所知,已训练模型的任务迁移性能不好,由于每一个模型都是为特定的任务而设计的。谷歌大脑的一篇论文(https://arxiv.org/abs/1706.05137)在通用模型的研究上跨出了一小步。

研究者训练了一个模型,能够执行 8 个不一样领域(文本、语音和图像)的任务。例如,不一样语言的翻译、文本解析,以及图像、语音识别。

为了达到这个目的,他们使用多种不一样的模块构建了一个复杂的网络架构以处理不一样的输入数据并生成结果。编码器/解码器模块包含三种类型:卷积、注意和 MoE(https://arxiv.org/abs/1701.06538)。

他们几乎获得了完美的模型(做者并无细调超参数)。

模型中存在不一样领域知识的迁移,即,相比使用大量数据训练的任务(无迁移),该模型能得到几乎相同的性能。而且这个模型在小数据任务上表现得更好(例如,文本解析)。

不一样任务所需的模块之间并不会互相干扰,有时甚至能互相辅助,例如,MoE 能够辅助 ImageNet 图像识别任务。

模型的 GitHub 地址:https://github.com/tensorflow/tensor2tensor/blob/master/tensor2tensor/models/multimodel.py

参考阅读:

一个模型库学习全部:谷歌开源模块化深度学习系统 Tensor2Tensor


5.3. 一小时训练 ImageNet

Facebook 在其博文中告诉咱们其工程师可以用 1 小时的时间经过 Imagenet 教会 ResNet-50 模型,不过其实现须要 256 块 GPU (Tesla P100)。

他们经过 Gloo 和 Caffe2 实现分布式学习。为了更有效,采用大批量的学习策略颇有必要:梯度平均、特定学习率等。

结果,当从 8 块 GPU 扩展到 256 块时,效率可高达 90%。如今,Facebook 能够更快地进行实验。

参考阅读:

Facebook「1小时训练ImageNet」论文与MXNet团队发生争议,相关研究介绍


6. 新闻


6.1. 自动驾驶

自动驾驶领域正密集地发展,测试也在积极地开展。从最近事件中咱们注意到英特尔收购 MobilEye,Uber 从谷歌剽窃自动驾驶技术的丑闻,以及首个自动驾驶死亡案例等等。

这里我提醒一件事:谷歌 Waymo 推出了 beta 版。谷歌是该领域的先驱者,能够假定他们的技术很好,由于其自动驾驶汽车里程已超过 300 万英里。

更近的事件则有自动驾驶汽车已在美国全部州容许上路测试。


6.2. 医疗

就像我说的,现代机器学习正开始应用于医疗。好比,谷歌与某医疗中心展开合做提高诊断。DeepMind 甚至还为此成立了一个独立部门。

在今年的 Data Science Bowl 上,有一个奖金高达 100 万美圆的竞赛,根据标注图像预测一年之中的肺癌状况。


6.3. 投资

正如以前的大数据,机器学习当下也涌入了大量资本。中国在 AI 领域的投资高达 1500 亿美圆,从而成为行业领导者之一。

相比之下,百度研究院拥有 1300 名员工,而 Facebook FAIR 则只有 80 名。在今年闭幕的 KDD 2017 上,阿里巴巴介绍了其参数服务器鲲鹏,它带有万亿个参数,并使得运行 1000 亿个样本成为常规任务。

人工智能仍处于起步阶段,入门学习机器学习永远不嫌晚。无论怎样,全部开发者会慢慢用起机器学习,这项技术会成为程序员的必备技能之一,就像如今每一个人都会使用数据库同样。

原文连接:blog.statsbot.co/deep-learni…

相关文章
相关标签/搜索