深度学习企业级应用开发入门指南(一)

原文:Introduction to Deep Learning Business Applications for Developers

协议:CC BY-NC-SA 4.0

一、简介

这一章将描述这本书是关于什么的,这本书的目标和读者,为什么人工智能(AI)是重要的,以及如何解决这个问题。

人工智能的目标是教会计算机从经验中学习并理解世界。虽然人们并不完全理解大脑如何能够完成这一非凡的壮举,但人们普遍认为,人工智能应该依赖于弱监督的世界层次抽象概念的生成。开发能够在最少监督下学习的算法——就像婴儿学会自己理解世界一样——似乎是创造真正通用人工智能的关键(GAI) [GBC16]。

人工智能是一个相对较新的研究领域(始于 20 世纪 50 年代),有过一些成功,也有过许多失败。最初的热情起源于第一台电子计算机的时代,随着人们认识到大脑在一瞬间解决的大多数问题实际上很难用机器来解决,这种热情很快就消失了。这些问题包括在不受控制的环境中移动,语言翻译,声音和图像识别。尽管进行了许多尝试,但解决复杂数学方程甚至证明定理的传统方法(基于规则和描述性的)不足以解决最基本的情况,例如理解基本的语言概念,这对于 2 岁的幼儿来说没有任何困难。这一事实导致了所谓的艾龙冬天,许多研究人员干脆放弃了创造具有人类水平认知能力的机器,尽管在这之间取得了一些成功,如成为世界上最好的国际象棋选手的 IBM 机器深蓝,或 20 世纪 80 年代后期将神经网络应用于手写数字识别。

人工智能是当今最令人兴奋的研究领域之一,有大量的实际应用,包括自动驾驶汽车、药物研发、机器人、语言翻译和游戏。仅仅十年前看似不可逾越的挑战已经被解决——有时以超人的准确性——并且现在出现在产品和无处不在的应用中。例子包括语音识别、导航系统、面部情绪检测,甚至艺术创作,如音乐和绘画。人工智能第一次离开研究实验室,出现在科幻电影中的产品中。

这场革命是如何在如此短的时间内成为可能的?近年来发生了什么变化,让我们离 GAI 梦更近了一步?答案更多的是算法和硬件的逐步完善,而不是单一的突破。但是当然深度神经网络,通常被称为深度学习(DL),出现在列表的顶部[J15]。

1.1 范围和动机

计算能力、大数据和物联网的进步正在推动技术的重大变革,并推动所有行业的生产力。

通过本书中的示例,您将探索 DL 相对于其他传统(浅层)机器学习算法(如基于内容的推荐算法和自然语言处理)的优势。您将了解诸如 Word2vec、skip-thought vectors 和 Item2Vec 等技术。你还将考虑用堆叠式长短期记忆(LSTM)单元训练的循环神经网络和用于嵌入语言翻译的 sequence 2 序列模型。

DL 算法的一个关键特征是它们能够在最少监督的情况下从大量数据中学习,这与通常需要较少(标记)数据的浅层模型相反。在本书中,你将探索一些例子,如视频预测和图像分割,使用在 ImageNet 图像识别竞赛中取得顶级性能的全卷积神经网络(FCNNs)和残差神经网络(ResNets)。您将探索这些图像识别技术的商业含义,以及这个非常活跃的领域中的一些活跃的初创公司。

DL 支持的人工智能在商业中的意义是巨大的,动摇了许多行业的基础。这可能是自互联网以来最大的变革力量。

这本书将提出一些应用的 DL 模型的金融风险评估(信用风险与深度信念网络和期权优化与变分自编码器)。您将简要探索 DL 在控制和机器人方面的应用,并了解 DeepQ 学习算法(用于在围棋游戏中击败人类)和演员-评论家强化学习方法。

您还将探索一组最新的强大算法,名为生成对抗性神经网络(GANs),包括 dcGAN、条件 GAN 和 pixel2pixel GAN。这对于图像转换、图像着色和图像补全等任务非常有效。

您还将了解 DL 业务中的一些重要发现和意义,以及采用该技术的主要公司和初创公司。这本书将涵盖一些训练 DL 模型的框架、关键方法和微调模型的技巧。

这本书包含了使用 Python 3.6 编写的 Keras 代码的实例。

1.2 深度学习领域的挑战

机器学习,尤其是深度学习,正在迅速扩展到几乎所有的商业领域。DL 是众所周知的语音识别、图像处理和自然语言处理应用程序背后的技术。但是深度学习仍然存在一些挑战。

首先,深度学习算法需要大型数据集。例如,语音识别需要来自多种方言或人口统计的数据。深度神经网络可能有数百万甚至数十亿个参数,训练可能是一个耗时的过程——有时在装备良好的机器中需要数周时间。

超参数优化(网络的规模、架构、学习速率等。)可能是一项艰巨的任务。DL 还需要高性能的硬件进行训练,配备高性能的 GPU 和至少 12Gb 的内存。

最后,神经网络本质上是黑盒,很难解释。

1.3 目标受众

这本书是为学者、数据科学家、数据工程师、研究人员、企业家和业务开发人员编写的。

阅读本书时,你将学到以下内容:

  • 深度学习是什么,为什么它如此强大
  • 有哪些主要算法可用于训练 DL 模型
  • 在应用数字图书馆方面有哪些重大突破
  • 有哪些可用的 DL 库实现,以及如何运行简单的示例
  • 数字图书馆在商业和创业中的主要影响领域

这本书介绍了基础知识,同时给出了一些实用技巧,以涵盖与业务应用程序相关的动手项目所需的信息。它还从实用的角度介绍了数字图书馆的最新发展。它打破了喧嚣,并提供了如何在您的业务应用程序中实现 DL 的具体例子。

1.4 计划和组织

这本书分为四个部分。第一部分包含关于深度学习和最重要的网络架构的介绍和基本概念,从卷积神经网络(CNN)到 LSTM 网络。

第二部分包含核心的 DL 应用,换句话说,图像和视频、自然语言处理和语音、强化学习和机器人。

第三部分探索了 DL 的其他应用,包括推荐系统、对话机器人、欺诈和自动驾驶汽车。

最后,第四部分涵盖了 DL 技术的业务影响以及新的研究和未来的机会。

这本书分为 11 章。章节中的材料是为便于理解 DL 领域而组织的。这本书还包括许多插图和代码示例来阐明这些概念。

二、深度学习:概述

人工神经网络并不新鲜;它们已经存在了大约 50 年,并在 20 世纪 80 年代中期随着允许训练多层神经网络的方法(反向传播)的引入而得到了一些实际的认可。然而,深度学习的真正诞生可能要追溯到 2006 年,当时 Geoffrey Hinton [GR06]提出了一种算法,以无监督的方式有效地训练深度神经网络——换句话说,就是没有标签的数据。它们被称为深度信念网络(DBNs ),由堆叠的限制性玻尔兹曼机(RBM)组成,每一个都放置在另一个的顶部。DBNs 不同于以前的网络,因为它们是生成模型,能够在没有任何监督的情况下学习所呈现的数据的统计属性。

受大脑深度结构的启发,深度学习架构彻底改变了数据分析的方法。深度学习网络已经赢得了大量硬机器学习竞赛,从语音识别[AAB + 15]到图像分类[AIG12]到自然语言处理(NLP) [ZCSG16]到时间序列预测——有时是大幅度的。传统上,人工智能依赖于大量手工制作的功能。例如,为了在图像分类中获得令人满意的结果,必须应用几种预处理技术,如滤波、边缘检测等。DL 的美妙之处在于,如果有足够多(有时是数百万)的训练数据示例可用,大多数(如果不是全部)特征可以从数据中自动学习。深度模型在每一层(级别)具有特征检测器单元,其从原始输入信号中逐渐提取更复杂和不变的特征。较低层的目标是提取简单的特征,然后将其聚集到较高层,从而检测更复杂的特征。相比之下,浅层模型(具有两层的模型,如神经网络[NNs]或支持向量机[SVMs])只提供很少几层,用于将原始输入特征映射到特定问题的特征空间。图 2-1 显示了深度学习和机器学习(ML)模型在性能与构建模型的数据量方面的比较。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 2-1

Deep learning models have a high learning capacity

深度神经架构非常适合在结构化或非结构化数据中进行监督和非监督学习,比浅层神经架构的效率要高得多。由于架构的每个元素都是使用示例学习的,因此人们能够负担的计算元素的数量仅受训练样本数量的限制,而训练样本的数量可能高达数十亿。深度模型可以用数亿个权重来训练,因此往往优于 SVMs 等浅层模型。此外,理论结果表明,深度架构是学习代表高级抽象(例如,视觉、语言、语义)的复杂功能的基础,其特征在于以非线性方式交互的许多变化因素,这使得学习过程变得困难。

2.1 从漫长的冬天到繁花似锦的春天

今天,很难找到任何不依赖于深度学习的人工智能技术。事实上,DL 在人工智能技术应用中的意义将是如此深远,以至于我们可能即将迎来有史以来最大的技术革命。

DL 神经网络的一个显著特征是其(几乎)无限的能力来容纳来自大量数据的信息而不会过度拟合——只要应用强正则化。DL 既是一门科学,也是一门艺术,虽然在数百万个训练样本上用数十亿个参数训练模型非常常见,但只有通过仔细选择和微调学习机和复杂的硬件,这才有可能实现。图 2-2 显示了过去十年/十多年来机器学习、模式识别和深度学习的趋势。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 2-2

Evolution of interest in deep learning (source: Google Trends)

以下是使 DNN 与众不同的主要特征:

  • 高学习能力:由于 DNNs 有数百万个参数,它们不容易饱和。你的数据越多,他们学到的就越多。
  • 不需要特征工程:学习可以从头到尾进行——无论是机器人控制、语言翻译还是图像识别。
  • 抽象表示:dnn 能够从数据中生成抽象概念。
  • 高生成能力:dnn 不仅仅是简单的识别机器。他们可以根据潜在的表象产生看不见但似乎可信的数据。
  • 知识转移:这是最显著的特性之一——你可以在一大组数据(如图像、音乐或生物医学数据)中教授机器,并将学习转移到一个类似的问题,其中不同类型的数据已知较少。一个最显著的例子是捕捉和复制艺术风格的 DNN。
  • 出色的无监督能力:只要你有大量的数据,DNNs 可以学习隐藏的统计表示,而不需要任何标签。
  • 多模态学习:DNNs 可以无缝集成不同的高维数据源,如文本、图像、视频和音频,以解决自动视频字幕生成和视觉问答等难题。
  • 它们相对容易组合和嵌入领域知识——或优先事项——来处理不确定性和约束学习。

以下是 DNN 车型 1 不太吸引人的几个方面:

  • 它们很难解释。尽管能够从数据中提取潜在特征,dnn 是通过关联和共现来学习的黑盒。它们缺乏其他方法(如决策树)的透明性和可解释性。
  • 它们只能部分揭示复杂的因果关系或嵌套结构关系,这在生物学等领域很常见。
  • 训练它们可能相对复杂和耗时,有许多超参数需要仔细微调。
  • 它们对初始化和学习速率很敏感。网络很容易变得不稳定和不收敛。这对于循环神经网络和生成对抗网络来说尤其严重。
  • 必须提供损失函数。有时候很难找到一个好的。
  • 知识可能不会以递增的方式积累。对于每个新的数据集,网络必须从头开始训练。这也叫做知识持久性问题。
  • 知识转移对于某些模型是可能的,但并不总是显而易见的。
  • 如果 DNNs 有很大的容量,它可以很容易地记住训练数据。
  • 有时他们很容易被愚弄,例如,自信地对有噪声的图像进行分类。

2.2 为什么 DL 不一样?

机器学习(ML)是一个有点模糊但算不上新的研究领域。特别是模式识别,这是人工智能的一个小领域,可以用一句简单的话来概括:在数据中寻找模式。这些模式可以是任何东西,从股票市场的历史周期到区分猫和狗的图像。ML 也可以被描述为教机器如何做决定的艺术。

那么,为什么深度学习驱动的人工智能如此令人兴奋呢?如前所述,DL 既是定量的(语音识别方面 5%的改进使一个伟大的个人助理和一个无用的个人助理之间产生了巨大的差异),也是定性的(如何训练 DL 模型,它们可以从高维数据中提取的微妙关系,以及如何将这些关系集成到一个统一的视角中)。此外,他们在解决几个难题方面取得了实际成功。

如图 2-3 所示,让我们考虑一下经典的鸢尾问题:如何在 150 个观察值的数据集上,基于四个测量值(输入值),具体来说,花瓣和萼片的宽度和长度,区分三种不同类型的花卉物种(输出值)。简单的描述性分析将立即告知用户不同测量的有用性。即使使用像朴素贝叶斯这样的基本方法,您也可以构建一个具有良好准确性的简单分类器。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 2-3

Iris image and classification with Naïve Bayes (source: predictive modeling, supervised machine learning, and pattern classification by Sebastian Raschka)

这种方法假设在给定一个类(输出)的情况下输入是独立的,并且对于许多问题都非常有效。然而,最大的问题是这是一个很难成立的假设。因此,如果你想超越朴素贝叶斯,你需要探索输入之间所有可能的关系。但是有一个问题。为简单起见,我们假设每个输入有十个可能的信号电平。您需要在训练集中考虑的可能输入组合的数量(观察值的数量)将是 10 4 = 10000。这是一个很大的数字,比 150 个观测值大得多。但是随着输入数量的增加,问题会变得更加严重(指数级恶化)。对于图像来说,每张图像可能有 1000(或更多)个像素,因此组合的数量将是 10 1000 ,这是一个遥不可及的数字——宇宙中的原子数量小于 10 100

因此,DL 的巨大挑战是用有限的一组数据来处理非常高维的问题(如语言、声音或图像),并对看不见的输入区域进行归纳,而不使用蛮力来探索所有可能的组合。DL 的技巧是将一个高维空间(离散的或连续的)转换或映射到一个连续的低维空间(有时称为流形),在那里你可以找到问题的简单解决方案。这里的解决方案通常意味着优化一个函数;它可以是最大化可能性(相当于最小化 iris 问题等问题中的分类误差)或最小化均方误差(在股票市场预测等回归问题中)。

这说起来容易做起来难。必须使用几个假设和技术来近似这个困难的推理问题。(推论简单来说就是一句话“获取前面提到的图”或者描述最大化似然函数的后验分布的模型的参数。)关键的(有点令人惊讶的)发现是,一种叫做梯度下降的简单算法,当仔细调整时,足以强大到将深度神经网络导向解决方案。神经网络的优点之一是,经过适当的训练后,输入和输出之间的映射是平滑的,这意味着你可以将一个离散的问题,如语言语义,转化为连续或分布式的表示。(当你在本章后面阅读 Word2vec 时,你会学到更多的东西。)

这就是深度学习的秘密。没有魔法,只有一些众所周知的数值算法,一台强大的计算机,和数据(很多!).

2.2.1 机器的年龄

在经历了漫长的冬天之后,我们现在正在经历人工智能领域百花齐放的春天。这一由人工智能推动的快速技术创新浪潮正在以如此快的速度影响着商业和社会,以至于很难预测其影响。不过,有一点是肯定的:由人工智能驱动的认知计算将在许多重复甚至创造性的任务中赋予(有时取代)人类权力,社会将发生深刻的变化。这将影响从医生到法律文员等看似不可能自动化的工作。

卡尔·b·弗雷和 m·奥斯本 2013 年的一项研究表明,美国 47%的工作岗位在不久的将来有被取代的风险。此外,2015 年 4 月,麦肯锡全球研究所发表了一篇文章,指出人工智能正在以比工业革命快 10 倍、规模 300 倍(或影响约 3000 倍)的速度改变社会。

我们可以尝试建立一个关闭按钮或硬编码规则来防止机器对人类造成任何伤害。问题是这些机器是自己学习的,不是硬编码的。此外,即使有办法建造这样一个“安全出口”,怎么可能有人将伦理编码到机器中呢?顺便问一句,我们人类能就道德问题达成一致吗?

我们的观点是,因为 AI 正在赋予机器超人的认知能力,所以这些担忧不应该被轻视。目前,世界末日的场景只是一个幻想,但我们最终将面临困境,机器不再是决定性的设备(见 https://www.youtube.com/watch?v=nDQztSTMnd8 )。

将伦理纳入机器的唯一方法与人类相同:通过漫长而持续的教育。问题是机器不像人类。例如,你如何向一个没有生命的实体解释“饥饿”或“死亡”的概念?

最后,这很难量化,但人工智能肯定会对社会产生巨大影响,以至于一些人,如埃隆·马斯克和斯蒂芬·霍金,担心我们自己的存在处于危险之中。

2.2.2 对 DL 的一些批评

有人批评 DL 是一种蛮力的方法。我们认为这一论点是站不住脚的。虽然训练 DL 算法确实需要许多样本(例如,对于图像分类,卷积神经网络可能需要成千上万的带注释的例子),但事实是,人们认为理所当然的图像识别实际上是复杂的。此外,dnn 是通用计算设备,可能是高效的,尤其是循环的。

另一个批评是,网络无法重用积累的知识,以快速将其扩展到其他领域(所谓的知识转移、可组合性和零射击学习),这是人类做得非常好的事情。例如,如果你知道什么是自行车,你几乎立刻就能理解摩托车的概念,而不需要看成千上万的例子。

一个共同的问题是,这些网络是黑匣子,因此人类不可能理解它们的预测。但是,有几种方法可以缓解这个问题。例如,参见最近的工作“ PatternNet 和 PatternLRP:提高神经网络的可解释性”此外,零射击学习(在看不见的数据中学习)已经成为可能,知识转移在生物学和艺术中被广泛使用。

这些批评虽然有道理,但已在最近的方法中得到解决;参见[LST15]和[GBC16]。

2.3 资源

这本书将从实用的角度引导你通过 DNNs 中最相关的里程碑和最近的成就。您还将探索该技术的商业应用和含义。技术细节将保持在最低限度,所以你可以专注于本质。以下是理解这一激动人心的话题所必需的一些好资源。

书籍

这是一些关于这个主题的好书:

新闻通讯

以下是一些不错的时事通讯:

  • 杰克-克拉克。net 是一个很好的深度学习和 AI 的周评。
  • Dataelixir。com 是一份每周时事通讯,包含来自网络的数据科学新闻和资源。
  • www.getrevue.co/profile/nathanbenaich 来自 Nathan Benaich 是一份关于人工智能新闻、研究、投资和应用的月度评论。
  • Wildml。com 是 Denny Britz 为 DL 教程维护的一个很好的博客,它有一个每周时事通讯。
  • 数据玛奇纳是一份关于大数据和机器学习的每周时事通讯。
  • www.getrevue.co/profile/azeem 的指数视图包含关于基于人工智能的技术及其对社会影响的新闻。
  • Datascienceweekl y. org 是机器学习和数据科学新相关方面的每周总结。
  • CognitionX 是关于数据科学、人工智能和机器学习的每日简报。

2.3.3 博客

以下是一些相关的博客:

  • 对于那些想要获得深度学习工具实践经验的人来说,Andrew Karpathy 的博客是一个很好的灵感来源,从图像处理到循环神经网络。
  • KDnuggets 是一个很好的博客,涵盖了关于人工智能和人工智能的各种主题。
  • 数据科学中心提供关于 ML 商业含义的有趣帖子,并且有每日时事通讯。
  • 创意。net 是一个展示人工智能和艺术融合作品的优秀博客。
  • Arxiv。org 是包括计算机科学在内的许多领域的公开出版物的最佳储存库。
  • Gitxiv。com 是一个博客,结合了 Arxiv 上的出版物和 GitHub 上的代码。
  • Arxiv-理智。com 是由 A. Karpathy 创建的一个网站,负责管理 Arxiv 的内容。

2.3.4 在线视频和课程

以下是一些相关的视频和课程:

播客

以下是一些播客:

其他网络资源

以下是一些其他的网络资源:

2.3.7 一些开始玩游戏的好地方

尝试这些方法获得实践经验:

2.3.8 会议

以下五个会议被认为是与深度学习最相关的:

  • NIPS -被认为是关于 DL 的最重要的会议,关注理论和实际应用。
  • ICML -机器学习国际会议,最负盛名的机器学习会议之一。
  • ICLR -学习代表国际会议,这是一个最近召开的专注于深度学习的会议。
  • KDD -一个关于机器学习和知识发现的广泛认可的会议。
  • ij CNN IEEE 会议,涵盖了广泛的神经网络概念和应用。

2.3.9 其他资源

由 OpenAI 和加州大学伯克利分校共同主办的 Deep RL Bootcamp 以强化学习基础知识讲座和最先进的研究为特色。

斯坦福大学名为用于视觉识别的卷积神经网络的课程是必须的,同样重要的还有带有深度学习的自然语言处理课程。

Coursera 有深度学习专业,蒙特利尔大学提供深度学习和强化暑期学校。此外,请查看加州大学伯克利分校 2017 年秋季的深度强化学习TensorFlow 开发峰会,其中包含 DL 基础知识和 TensorFlow APIs 的演示。

DL 框架

DL 可以简单有趣,你可以从网上的许多教程开始。你可以用几十行代码训练一个模型。然而,真正的问题很少完全符合现有学术基准的类别。事实上,训练 DL 模型可能是困难和令人沮丧的——取决于你想要解决的问题、所需的预处理、可用的数据以及你理解学习算法背后的复杂性的意愿。它肯定需要大量的贝叶斯统计、图形模型、非参数估计、统计推断(要么是确定性的[如变分估计],要么是近似的[如马尔可夫链蒙特卡罗])。你不需要全部了解,但是在成为专科医生的旅途中,你会遇到这些概念。

DL 研究的一个显著特点是大部分工作(论文、数据甚至代码)都是开源的,要么来自学术界,要么来自公司,因此任何人都可以用它来玩和学习。

许多开源库和框架可用于 DL。最常见的是咖啡、TensorFlow、Keras、Theano 或 Torch。简要描述如下:

  • TensorFlow 是 Google 最近开源的一个项目,由于它支持几种类型的架构,包括卷积神经网络、堆叠自编码器、深度信念网络和循环神经网络,所以变得越来越流行。在 TensorFlow 中,网络被指定为向量运算的符号图,如矩阵加/乘或卷积,每一层都是这些运算的组合。TensorFlow 使用一种高级脚本语言,这种语言对于快速部署模型非常有用。该接口可以通过 Python 或 C++访问,它有一个用于调试的有用的浏览器界面,称为 TensorBoard。
  • Keras.io 是一个很棒的框架,可以运行在 Theano 或 TensorFlow 之上;使用起来简单直观。
  • Torch 提供了一个高级脚本接口(很像 Matlab),对于卷积神经网络和循环神经网络都有很好的性能。如果用户希望在更细粒度的级别上导航,它的灵活性会更低。Torch 运行在 Lua 上,与其他实现相比,它允许快速执行。最近的 Pytorch 是一个 Python 包,它通过强大的 GPU 加速和建立在基于磁带的自动签名系统上的深度神经网络,为张量计算(如 Numpy)提供了高级功能。
  • 来自微软的 MxNet 最近被亚马逊采用作为其深度学习平台。它最近被列为 Keras 的后端之一。
  • Gluon 是亚马逊和微软最近发布的开源深度学习接口。胶子是一个设计和定义机器学习模型的高级框架。根据亚马逊的说法,“刚接触机器学习的开发者会发现这个界面对传统代码更熟悉,因为机器学习模型可以像任何其他数据结构一样被定义和操作。”Gluon 最初将在 Apache MXNet(亚马逊)中提供,不久将在 CNTK(微软)中提供。
  • Caffe 是最早的深度学习工具包之一,主要用于卷积神经网络。但是,它不支持递归网络和 NLP 模型。它的界面也不友好。
  • Theano 是实现深度学习模型的最通用和最强大的工具包之一,正在用于最近的研究,如注意机制和双向递归网络。Theano 使用符号图,并为大多数最先进的网络提供了实现,有时作为高级框架提供,如 Keras.io。它具有良好的性能,并支持单个和多个 GPU。另一方面,它有一个陡峭的学习曲线,有点难以调试。

2.3.11 数字图书馆即服务

所有大玩家(亚马逊、IBM、谷歌、脸书、Twitter、百度、雅虎和微软)都在创建自己的 DL 平台,并开源(部分)他们的核心算法。我们正在进入人工智能即服务的时代。表 2-1 总结了这些公司提供的主要服务。

表 2-1

Main Machine Learning Platforms

| 公司 | 基于云的 ML 平台 | DL 技术(开源) | | :-- | :-- | :-- | | 亚马孙 | 亚马逊机器学习 | DSSTNE | | 百度(全球最大的中文搜索引擎) | 深度演讲 2 | 涉水 | | 脸谱网 | 火炬网, Pytorch | 快速文本 | | 谷歌 | 下一朵云 | TensorFlow | | 国际商用机器公司 | 沃森 | IBM 系统 | | 微软 | 蓝色 | CNT(消歧义) | | 推特 | 皮质 |   |

图 2-4 比较了不同的 DL 平台。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 2-4

Comparison of different Deep Learning frameworks (source: www.kdnuggets.com/2017/03/getting-started-deep-learning.html )

深度学习正在转向开源和云计算。谷歌、脸书、IBM、亚马逊和微软正试图围绕云中提供的人工智能服务建立生态系统。深度学习是一项横向技术,将应用于每个行业,因此竞争很激烈,所有参与者都试图通过云服务和集成平台来获胜。Forrester Research 最近估计,2016 年亚马逊的云收入为 108 亿美元,微软为 101 亿美元,谷歌为 39 亿美元。

对于这些公司来说,最稀缺的资源可能是人才,这可能是 M&A 狂热“收购”深度学习初创公司的理由。此外,有才华的人工智能专家大多来自学术界,他们要求开放并参与活跃的开源社区。这就是为什么 Apache Institute 对任何平台的接受都是可信度的主要来源。这有助于解释为什么苹果相对于其他大公司来说是落后的,它的封闭文化对此没有帮助。

硬件也很关键。大多数 DL 算法需要巨大的计算能力,无论是在本地还是在云上。具体来说,它们需要游戏控制台和现场可编程门阵列(FPGAs)中的图形处理单元(GPU),这些芯片可以配置用于特殊用途的操作。由 DL 执行的大部分统计推断涉及难以处理的问题(例如,计算复杂的积分),这些问题只有通过计算代价昂贵的近似才有可能解决。DL 可能很快会变成一个硬件问题,而不是算法问题。英伟达和英特尔正在推出专门应对深度学习计算需求的新处理器。

由 Elon Musk 创建的 OpenAI 是一个非营利组织,它为 DL 社区增加了一个新的角度。由于担心社会可能受到人工智能的威胁,OpenAI 制定了一项长期计划来确保人工智能的安全,并推动该技术尽可能开源和透明。有趣的是,OpenAI 正在快速发展其人才团队,这可能是一个问题有多真实(和严重)的迹象。

谷歌在 2017 年 6 月宣布了一个新的开源系统,以加快用 TensorFlow 创建和训练机器学习模型的过程。库 Tensor2Tensor (T2T) 支持深度学习模型的创建。T2T 可用于为文本翻译或解析以及图像字幕等过程构建模型,并允许您加速模型的创建和测试,从而降低用户尝试 DL 的门槛。它利用一个标准接口,包括数据集、模型、优化器和不同的超参数集,因此用户可以交换这些组件的版本,并在运行中测试它们。

根据 Forrester 的数据,机器学习平台的市场将在 2021 年前以每年 15%的速度增长。图 2-5 比较了现有的主要平台。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 2-5

Comparison of different DL platforms (source: http://searchbusinessanalytics.techtarget.com/feature/Machine-learning-platforms-comparison-Amazon-Azure-Google-IBM )

2.4 最近的发展

这是该领域的一些最新进展。

2.4.1 2016

2016 年,无论是在研究、应用、项目,还是在资金和平台方面,DL 都取得了巨大的突破。根据 Yann LeCunn 的说法,生成对抗网络可能是过去十年机器学习中最重要的想法。虽然在 2014 年由 Ian Goodfellow 引入,但直到最近 GANs 才开始显示其潜力。最近推出的有助于训练和更好的架构设计的改进技术(深度卷积 gan)修复了以前的一些限制,并为新的应用打开了大门。gan 的工作原理是让一个判别网络(D)与一个生成网络(G)一起玩,生成网络试图用伪造的数据表示来欺骗 D 网络。随着游戏的发展,G 网络学习如何构建接近真实的例子。好的方面是你不需要一个显式的损失函数来最小化。

2.4.2 2017

2017 年的特点是在深度学习方面取得了几项突破。最热门的领域之一是应用于游戏和机器人的强化学习。AlphaGo 可能是强化学习最臭名昭著的例子,因为它能够击败世界上最好的围棋选手。

AlphaGo Zero 通过在没有人类训练数据的情况下学习下围棋,使算法更进了一步;参见参考文献 https://arxiv.org/abs/1705.08439 。它太棒了,以至于打败了 AlphaGo 的第一个版本。这个算法的一个推广,叫做 AlphaZero,是由 Deepmind 提出的,能够掌握象棋和 shogi。

CMU 研究人员开发的 Libratus 系统在为期 20 天的单挑无限注德州扑克锦标赛中击败了顶级扑克玩家。强化学习的研究现在已经转移到难度更大的多人游戏上。DeepMind 正在开发星际争霸 2,并发布了一个研究环境,一个 OpenAI 在 Dota 2 bot 的标准锦标赛规则下的 1v1 游戏比赛中取得了初步成功。机器人在复杂和混乱的目标中从头开始学习游戏。这个想法是在不久的将来与完整的 5v5 游戏竞争。

谷歌的 Tacotron 2 文本到语音系统基于 WaveNet 产生了良好的文本音频样本,wave net 是一种自回归模型,也部署在谷歌助手中,在过去一年中速度大幅提高。WaveNet 以前曾被应用于机器翻译,从而加快了递归架构的训练时间。

努力使用更便宜的递归架构是机器翻译的一个趋势。在注意力是你所需要的全部中,研究人员消除了循环和回旋,并使用更复杂的注意力机制,以训练成本的一小部分实现了最先进的结果。

另一个活跃的研究领域是药物发现。深度学习在所有可能的化学排列的巨大搜索空间中有效搜索新分子的潜力被证明是非常成功的。例如,参见最近使用生成递归网络进行重新药物设计的工作或深度学习在生物医学数据上的应用综述【MVPZ16】。

Waymo 的自动驾驶汽车在 2017 年 4 月有了第一批真正的乘客,后来完全取消了人类操作员。Lyft 宣布,它正在建立自己的自动驾驶硬件和软件,波士顿的试点项目目前正在进行中。特斯拉 Autopilot 有一些新奇的东西,而苹果证实,它正在开发自动驾驶汽车的软件。

进化算法

2017 年,进化策略(es)成为训练人工神经网络的一种流行替代方法。搜索空间的探索不依赖于梯度,并且对于强化学习是有效的。其优点是进化策略不需要可微的损失函数。此外,进化算法可以线性扩展到数千台机器进行快速并行训练,并且不需要昂贵的 GPU。

来自 OpenAI 的研究人员证明,ES 可以实现与深度 Q 学习等标准强化学习算法相当的性能。来自优步的一个团队发布了一篇博文,证明了遗传算法优化神经网络的潜力。通过简单的遗传算法,优步能够教会一台机器玩复杂的雅达利游戏。

2.4.4 创造力

生成模型在图像、音乐、草图甚至视频的创建、建模和改进中无处不在。NIPS 2017 大会包容性地组织了一次机器学习促进创造力和设计研讨会。

GANs 在 2017 年取得了重大进展。CycleGAN、DiscoGAN 和 StarGAN 等新模型在生成图像,尤其是人脸方面取得了惊人的成果。例如,参见 pix2pixHD

最近一个为漫画着色的项目声称是最好的自动着色工具。

使用 GAN 从噪声中创建女性漫画角色的生成模型也是可用的。如果你想用 GANs 改善图像质量,试试 Letsenhance。io

2017 年也是 DL 在生物学中应用的一年。例如,利用深度生成模型生成和设计 DNA,这为从零开始创造合成 DNA 打开了大门。另一个例子是谷歌研究深度变异的工作,该团队在基因组测序中发现 DNA 变异方面有很大的进步。

Footnotes 1

关于这几点,请注意这是一个活跃的研究领域,许多困难正在被解决。其中一些问题得到了部分解决,而其他问题(比如缺乏可解释性)可能永远也不会解决。

三、深度神经网络模型

深度学习的概念起源于人工神经网络研究,其中前馈神经网络或具有许多隐藏层的多层感知器(MLPs)通常被称为深度神经网络(DNNs)。

MLP 网络通常由梯度下降算法训练,称为反向传播(BP)。BP 的思路很简单:对于每一组输入/输出,你将神经网络最后一层(输出层)的信号与数据中的真实输出进行比较;区别就是误差。由于您可以计算网络中从输入到输出的信号,因此您可以校正连接各层神经元的权重,以便在下一次迭代中减少误差。为此,通过与误差成比例的度量来更新权重。

对于训练深度网络,仅 BP 就有几个问题,包括非凸目标函数中的局部最优陷阱和消失梯度(当信息通过层反向传播时,输出信号呈指数下降)。为了理解这个问题是如何解决的,首先你将探索人工神经元网络(ann)的一些历史。

3.1 神经网络的简史

人工神经网络始于 McCullogh 和 Pitts 的一项工作,他们证明了简单单元(人工神经元)的集合可以执行所有可能的逻辑运算,因此能够进行通用计算。这项工作伴随着冯·诺依曼和图灵,他们首先处理了大脑信息处理的统计方面,以及如何建造一台能够复制它们的机器。Frank Rosembalt 发明了感知器机器来执行简单的模式分类。然而,这种新的学习机无法解决简单的问题,如逻辑异或。1969 年,明斯基和帕普特指出,感知机有无法超越的内在限制,因此对人工神经网络的热情逐渐消退。

1983 年,John Hopfield 提出了一种特殊类型的人工神经网络(Hopfield 网络),并证明它们具有强大的模式完成和记忆特性。

Linnainmaa,S. (1970)首先将反向传播算法描述为算法的累积舍入误差的表示(作为局部舍入误差的泰勒展开),而不涉及神经网络。1985 年,鲁梅尔哈特、麦克莱兰和辛顿重新发现了这个强大的学习规则,允许他们用几个隐藏单元训练人工神经网络,从而超越了明斯克批评。

表 3-1 展示了神经网络发展的概况。

表 3-1

Some Milestones in Neural Networks

| 年 | 捐助者 | 贡献 | | :-- | :-- | :-- | | One thousand nine hundred and forty-nine | 唐纳德希伯 | 希伯恩学习法则 | | One thousand nine hundred and fifty-eight | 罗森布拉特 | 推出了第一台感知器 | | One thousand nine hundred and sixty-five | 伊瓦赫年科和帕拉 | 介绍了 MLP 的前身——成组方法数据处理(GMDH) | | One thousand nine hundred and seventy | 城堡的铁匠 | 提出了反向传播算法 | | One thousand nine hundred and eighty | 拉高 | 自组织映射 | |   | 福岛幸子 | 出版了新认知神经,CNN 的先驱 | | One thousand nine hundred and eighty-two | 约翰·霍普菲尔德 | Hopfield 递归网络 | | One thousand nine hundred and eighty-five | 辛顿和塞诺夫斯基 | 玻尔兹曼机 | | One thousand nine hundred and eighty-six | 鲁梅尔哈特和辛顿 | 推广反向传播训练 MLP | | One thousand nine hundred and ninety | Yann LeCun 先生 | 介绍了 LeNet,展示了深度神经网络在实践中的可能性 | | One thousand nine hundred and ninety-one | Sepp 高纯度 | 探讨了 BP 算法中的消失梯度和爆炸梯度问题 | | One thousand nine hundred and ninety-seven | 舒斯特和帕利瓦尔 | 双向循环神经网络 | |   | 更高的标准 | LSTM;解决了循环神经网络中梯度消失的问题 | | Two thousand and six | 杰弗里·辛顿 | 深度信念网络;引入分层预训练,开启当前深度学习时代 | | Two thousand and nine | 萨拉胡季诺夫和辛顿 | 深层玻尔兹曼机 | | Two thousand and twelve | 杰弗里·辛顿 | 一种训练神经网络的有效方法——辍学 | | Two thousand and thirteen | 金玛和韦林 | 引入了变分自编码器(VAE),它可能会在深度学习和贝叶斯概率图形模型领域之间架起一座桥梁 | | Two thousand and fourteen | Bahdanau 等人。 | 介绍注意力模型 | |   | 伊恩·古德费勒 | 引入生成对抗网络 | | Two thousand and fifteen | 斯里瓦斯塔瓦和施密德胡伯 | 介绍了高速公路网 | |   | 他和其他人。 | 介绍了残差块和残差网络,这是目前视觉问题的最新进展 | | Two thousand and sixteen | Wang 等人。 | 介绍了选择-加法网络,它可能在深度学习领域和因果推理领域之间架起一座桥梁 | | Two thousand and seventeen | mnh 等人。 | 推出了 RL DNN、Q-learning 和 A3C |

3.1.1 多层感知器

多层感知器被提出来解决不可线性分离的问题。换句话说,你不能用一组直线来区分类别。图 3-1 显示了一个多层感知器的例子。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-1

The MLP, with inputs, a hidden layer, and outputs. Training consists of finding the best weights, W and v, and bias.

人工神经网络包括一组输入,通过权重 w 连接到一组隐藏单元。隐藏单元通过权重 v 连接到输出。最初,所有权重和偏差项都设置为随机数。网络中的活动通过从输入层到隐藏层的权重向前传播,在隐藏层中计算网络激活的一些函数。通常传递函数是 sigmoid、tanh 或最近的整流线性单位(ReLU)。然后,活动通过更多的权重传播到输出神经元。

必须更新两组权重,即隐藏层和输出层之间的权重以及输入层和隐藏层之间的权重。由第一组权重引起的误差可以通过最小均方规则来计算。为了向后传播由于第二组权重(W)中的误差引起的那部分误差,通常使用反向传播算法。这简单地说明了误差应该与重量贡献成比例。该算法有两个主要参数:学习速率和动量(以避免陷入局部最小值)。此外,隐藏层中单位的数量是一个重要的输入(更多的隐藏单位将增加计算能力,但也可能损害泛化能力)。

网络参数的选择通常通过 k 重交叉验证来执行,固定 k-1 部分训练数据用于训练,剩余部分用于测试,然后交换这些段。

随机梯度下降(SGD)算法是一种用于加速神经网络训练的技术。与通过所有训练样本执行优化的梯度下降相反,在 SGD 中,仅使用训练样本的子集。SGD 收敛更快,因为它在每个时期只使用一小部分训练样本。

3.2 什么是深度神经网络?

人们早就知道,具有更多隐藏层(更深)的人工神经网络可能具有更高的计算能力,更适合解决分类或回归问题[AV03,YAP13,BLPL06]。挑战在于如何训练它们,换句话说,学习连接一层神经元和另一层神经元的权重或连接。反向传播算法对于具有单个隐藏层的 ann 工作良好,但是由于所谓的消失梯度问题,它努力推广到更深的体系结构。换句话说,输出端的校正信号在传输到较低层时会消散。

在 2006 年,Hinton 等人[GR06]提出了一种无监督学习算法,该算法使用了一种称为对比发散(CD)的方法,该方法成功地训练了称为深度信念网络(DBNs) [HOT06]的深度生成模型。CD 是一种逐层学习算法,如图 3-2 所示。它通常用于无监督的任务,但可以通过将 softmax 层附加到顶层来进行微调,以执行监督学习。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-2

Contrastive divergence (CD) simulated as an MCMC process with k steps. CD–1 stops in stage 1 and ignores further iterations, as the input x is nicely reconstructed as x1.

有许多 DL 方法和架构,但大多数 dnn 可以分为五大类。

  • 用于无监督学习的网络,旨在通过在相关类别可用时联合捕获统计分布来捕获数据的高阶相关性。贝叶斯规则可以在以后被用来创建一个有辨别能力的学习机器。
  • 用于监督学习的网络,设计用于在分类问题中提供最大的辨别能力,并且仅使用标记数据进行训练。所有输出都应贴上标签。
  • 混合或半监督网络,目标是使用生成(无监督)模型的输出对数据进行分类。通常,数据用于预先训练网络权重,以加速监督阶段之前的学习过程。图 3-2 显示,知道未标记数据 x 的结构,或者用统计学术语来说,知道分布 P(x ),可能比在标记数据中的纯监督学习更有效。
  • 强化学习,代理交互并改变环境,只有在一组动作完成后才接收反馈。这种类型的学习通常用于机器人和游戏领域。
  • 生成神经网络,其中深度生成模型是无监督和半监督学习的强大方法,目标是在不依赖标签的情况下发现数据中的隐藏结构。由于它们是可生成的,这样的模型可以形成一个丰富的使用它们的世界的图像。这种想象力可以用来探索数据的变化,推理世界的结构和行为,并最终做出决策。这些模型的一个很大的优点是不需要补充外部损失函数,因为它们自主地学习数据的结构。

尽管围绕深度学习进行了各种宣传,但传统模型仍然在解决机器学习问题方面发挥着重要作用,尤其是在数据量不是很大、输入特征相对“干净”的情况下。此外,如果与训练样本的数量相比,变量的数量很大,则支持向量机(SVMs)或集成方法(如随机森林或极端梯度提升树(XGBoost ))可能是更简单、更快速和更好的选择。

最流行的 DNN 架构类型是堆叠去噪自编码器(SdAEs)、深度信念网络、卷积神经网络(CNN)和循环神经网络(RNNs)。使用 CNN 实现了机器视觉的许多进步,使这种 DNN 类型成为图像处理的标准。然而,根据所使用的架构、连接性、初始化、训练方法和损失函数,有许多类型的 dnn 适用于各种业务应用。

图 3-3 总结了这些流行的 DNN 架构。以下部分为所使用的术语和最流行的深度神经网络类型提供了一些指导。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-3

Four of the most popular classes of deep learning architectures in data analysis. A. A CNN has several levels of convolutional and subsampling layers optionally followed by fully connected layers with deep architecture. B. The stacked auto-encoder consisting of multiple sparse auto-encoders. C. A DBN is trained layer-wise by freezing previous layer weights and feeding the output to the next layer. D. The RBM architecture includes one visible layer and one layer of hidden units.

3.3 玻尔兹曼机

玻尔兹曼机[AHS85]是 Hopfield 网络[Mac03,SA08]的随机版本,具有隐藏单位;它的名字来源于玻尔兹曼分布。

玻尔兹曼机的能量函数以类似于 Hopfield 网络的方式定义,除了可见单元 v 和隐藏单元 h 具有不同的标签。

)

(3.1)

这里 v 是指可见单位,h 是指隐藏单位,b 是偏差,w ij 是单位 I 和 j 之间的权重。

给定该能量函数,可见单元和隐藏单元上的联合配置的概率如下:

)

(3.2)

可见/隐藏单元的概率由该联合概率的边缘化来确定。例如,通过边缘化隐藏单元,可以得到可见单元的概率分布。

)

(3.3)

现在可以利用这一点对可见单位进行采样。

当玻尔兹曼机被完全训练并且已经达到所谓的热平衡时,概率分布 p(v,h)保持不变,因为能量分布本身是常数。然而,每个可见或隐藏单元的概率可能不同,并且其能量可能不是最小的。

玻尔兹曼机通过获得使观察数据的可能性最大化的参数来训练。似然函数的对数的梯度下降是通常的目标函数。

该算法按描述运行。首先,计算可见单元的对数似然函数。

)

(3.4)

现在你把对数似然函数的导数作为 w 的函数,并简化它。

)

(3.5)

)

(3.6)

这里,)表示期待。渐变由两部分组成。第一部分是能量函数相对于条件分布)的预期梯度。第二个是关于所有状态的联合分布的能量函数的期望梯度。

计算这些期望值通常是一个棘手的问题,因为它涉及对大量可能的状态/配置求和。解决这个问题的一般方法是使用马尔可夫链蒙特卡罗(MCMC)来近似这些量。

)

(3.7)

这里,)表示期待。

等式 3.7 是数据馈入可见状态时状态乘积的期望值与无数据馈入时状态乘积的期望值之差。当可见和隐藏单元由观测数据样本驱动时,通过取能量函数梯度的平均值来计算第一项。

第一项很容易计算,但第二项更难,因为它涉及在所有可能的状态上运行一组马尔可夫链,直到它们达到当前模型的平衡分布,最后取平均能量函数梯度。这种复杂性导致了受限玻尔兹曼机的发明。

3.3.1 受限玻尔兹曼机

受限玻尔兹曼机(RBM)是由 Smolensky [Smo86]发明的。这是一台波尔兹曼机,在可见单元和隐藏单元之间都没有联系。

图 3-4 显示了如何基于玻尔兹曼机实现受限玻尔兹曼机。隐藏单元之间的连接以及可见单元之间的连接都被删除,模型变成了一个二分图。有了这个限制,RBM 的能量函数就简单多了。

)

(3.8)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-4

Illustration of restricted Boltzmann machine . With the restriction that there are no connections between hidden units () nodes) and no connections between visible units () nodes), the Boltzmann machine turns into a restricted Boltzmann machine. The model now is a bipartite graph.

对比分歧

RBM 仍然可以像波尔兹曼机一样被训练。由于 RBM 的能量函数要简单得多,用来推断方程 3.7 中第二项的取样方法就变得容易了。尽管相对简单,这种学习过程仍然需要大量的采样步骤来近似模型分布。

为了强调这种采样机制的困难,以及为了简化后续介绍,可以用一组不同的符号重写等式 3.7,如下:

)

(3.9)

这里你用 p 0 来表示数据分布,用)来表示模型分布。其他符号保持不变。因此,上述学习参数的方法的困难在于,它们需要潜在地“无限”多个采样步骤来近似模型分布。

Hinton 通过引入一种叫做对比发散的方法解决了这个问题。根据经验,他发现不必执行“无限”的采样步骤来收敛到模型分布;有限的 k 步采样就足够了。因此,等式 3.9 被有效地改写成这样:

)

Hinton 等人[Hin02]证明了使用)足以使学习算法收敛。这就是所谓的 CD1 算法。

3.3.2 深度信念网络

深度信念网络是由[GR06]引入的,它表明 RBM 可以逐层堆叠并以贪婪的方式训练。

图 3-5 展示了一个三层深度信念网络的结构。与堆叠 RBM 相反,DBN 仅允许顶层的双向连接(自上而下和自下而上)。所有剩余的较低层只有单向连接。您可以将 DBN 视为一个多阶段生成模型,其中每个神经元都是一个随机细胞。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-5

Illustration of deep belief networks. The bottom layers (all layers except the top one) do not have the bidirectional connections, but only connections from the top down.

因此,该模型只需要对上层的热平衡进行采样,然后回溯性地将信息传递给可见状态。

使用两步过程来训练 dbn:逐层预训练和参数微调。

逐层预训练包括一次训练一层。训练完第一层后,冻结连接并在第一层上添加新层。第二层以与第一层相同的方式训练,并且该过程根据需要继续进行多层。这种预训练可以视为有效的权重初始化[BLPL06,EBC + 10,RG09]。

使用两种不同的微调策略之一来执行微调以进一步优化网络。

  • 生成模型的微调:生成模型的微调是通过对比版本的唤醒-睡眠算法[HDFN95]实现的,这是一个受神经科学启发的过程。在唤醒阶段,信息从底层流向上层,以调整自下而上的权重,从而在上层创建表示。在睡眠阶段,情况正好相反;信息向下传播以调整顶部-底部连接。
  • 用于判别模型的微调:在这种情况下,通过使用较高层上的数据标签将标准反向传播应用于预训练的网络,可以简单地完成 DBN 的微调。除了提供良好的网络初始化之外,DBN 还有其他重要的特性。首先,所有的数据都可以使用,甚至是未标记的数据集。第二,它可以被视为一个概率生成模型,这在贝叶斯框架内是有用的。第三,过拟合问题可以通过预训练步骤和其他强正则化方法(如 dropout)得到有效缓解。然而,DBN 存在以下问题:
    • 由于“解释”效应,DBNs 中的推理是一个问题。
    • DBN 只能使用贪婪的再训练,而不能对所有层进行联合优化。
    • 近似推理是前馈的;没有自下而上和自上而下的信息流。

3.3.3 深波尔兹曼机

深玻尔兹曼机是由[RG09]推出的。图 3-6 为三层深玻尔兹曼机。DBM 和 DBN 与上一节的区别在于,DBM 信息在底层的双向连接上流动。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-6

Illustration of deep Boltzmann machine (DBM). The deep Boltzmann machine is more like stacking RBMs together. Connections between every two layers are bidirectional (source: ​www.​cs.​toronto.​edu/​~rsalakhu/​DBM.​jpg).

能量函数被定义为 RBM(等式 3.8)的能量函数的扩展,如下所示为具有 N 个隐藏层的 DBM:

)

(3.10)

因为能量函数的相似性,你也可以使用对比散度(CD1)来训练 DBM。

DBN 和 DBM 确实有一些相似之处,因为他们都是受受限玻尔兹曼机启发的深度神经网络。但是 DBM 的双向结构提供了在数据中学习更复杂模式的能力。

3.4 卷积神经网络

CNN 由具有不同类型堆叠层的几个块组成。每个块由一个卷积层和一个池层组成,通常是最大池[SMB10]。这些模块通常一个接一个地堆叠起来,或者在其上堆叠一个 softmax 逻辑层,以形成一个深度模型。CNN 使用了一些技巧,使其非常适合图像处理,如权重共享、自适应滤波器和池化。池将卷积层的子样本提供给下一层,作为一个强大的正则化器。权重共享和池化方案(最常见的是最大池化)允许 CNN 生成像平移不变性这样的守恒属性。细胞神经网络是非常有效的,并已普遍用于计算机视觉和图像识别[AIG12]。

CNN 对信号流而不是特征向量进行操作。也就是说,完全连接的神经网络由绑定到特征向量的所有输入的激活单元组成。每个单元都有一个特定于输入中每个特征的权重。另一方面,卷积层通过在输入向量(或 2D 输入图,因为 CNN 经常用于图像)上滑动一个小的(可训练的)权重滤波器,并使用滤波器卷积每个重叠的输入区域,来利用权重共享。

具有最大池的 CNN 足够强大,可以模仿灵长类动物视觉皮层的低级阶段,并具有生物学上似乎合理的特征检测器,如 Gabor 滤波器[CHY + 14]。然而,一旦经过训练,CNN 就像一台简单的前馈机器,具有固定的权重。最近,Stollenga 等人提出了一种具有后处理行为的迭代版本的 CNN,称为深度注意力选择网络(dasNet) [SMGS15]。这种架构能够模拟 CNN 中的选择性注意力,允许每一层通过调制卷积滤波器活动的特殊连接(自下而上和自上而下)在图像上连续传递时影响所有其他层。这些特殊连接的权重实现了一种控制策略,该策略是在 CNN 已经通过监督学习以通常的方式被训练之后通过强化学习来学习的。给定一个输入图像,注意力策略可以在多次传递中增强或抑制特征,以改善初始监督训练没有捕捉到的困难病例的分类。dasNet 架构允许自动检查内部 CNN 过滤器,防止手动检查。

3.5 深度自编码器

自编码器是一种将输入数据本身作为输出的 DNN。如果用一些添加的噪声对它们进行训练,这些架构可以充当生成模型,并被称为去噪自编码器。自编码器可以用贪婪的逐层模式进行训练,就像 DBNs 一样,以形成深度模型[VLBM08]。

通过将下一层中的自编码器的输出作为上一层的输入转发,自编码器可以被堆叠以形成深度网络。无监督的预训练一次完成一层,并且训练每一层以最小化其输入重构中的误差。经过预训练后,网络可以通过添加 softmax 层和应用监督反向传播进行微调,就好像它们是多层感知器一样。

堆叠去噪自编码器(SdAE)是 AE 的随机版本,通过将噪声添加到输入来获得,以防止同一性映射的学习。他们试图对输入进行编码,同时消除破坏的影响,捕捉输入中的统计相关性。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-7

Different types of networks architectures (source: http://www.asimovinstitute.org/neural-network-zoo/ )

3.6 循环神经网络

传统的 ML 方法,如支持向量机、逻辑回归和前馈网络,已被证明是有用的,无需通过将时间投影为空间来显式地对时间过程中的时间进行建模。然而,这种假设不能模拟长期依赖性,并且在复杂的时间模式中具有有限的可用性。循环神经网络是一个丰富的端到端可微分的模型族,因此适合于基于梯度的训练,随后通过标准技术进行正则化,如丢弃或噪声注入。重现是解决语言等难题的关键,因为它似乎存在于大多数大脑机制中。图 3-7 给出了几种类型神经网络的图表说明,包括循环网络。

RNNs 的第一个结构是由 Jordan [Jor90]提出的,作为具有用特殊单元扩展的单个隐藏层的前馈网络。输出节点值被提供给特殊单元,然后特殊单元在下一时间步将这些值提供给隐藏节点。如果输出值是动作,则特殊单位允许网络记住在先前时间步采取的动作。此外,Jordan 网络中的特殊单元是自连接的。

Elman [Elm90]介绍的架构更简单。与隐藏层中的每个单元相关联的是上下文单元。每个这样的单元沿着固定权重的边,将相应的隐藏节点在前一时间步的状态作为输入。然后,该值沿着标准边反馈到相同的隐藏节点 j 中。这种架构相当于一个简单的 RNN,其中每个隐藏节点都有一条自连接的递归边。使隐藏节点自连接的固定权重循环边的想法是 LSTM 网络后续工作的基础[HS97]。

rnn 是一类无监督或有监督的架构,用于学习时间或顺序模式。RNN 可用于使用先前的数据样本预测序列中的下一个数据点。例如,在文本中,前一个单词上的滑动窗口用于预测句子中的下一个单词或一组单词。rnn 通常使用 Schmidhuber 等人[HS97]提出的长短期记忆(LSTM)算法或门控递归单元(GRUs)进行训练。另一方面,由于众所周知的梯度消失或梯度爆炸问题,以及优化超参数时需要非常小心,因此很难训练它们捕捉长期相关性。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-8

Topologies of recurrent networks (source: http://karpathy.github.io/2015/05/21/rnn-effectiveness/ )

RNN 最近变得非常受欢迎,特别是随着几个技巧的引入,例如双向学习(向前和向后序列预测)和允许使用动态大小滑动窗口的注意力机制,这对构建语言模型特别有用。

图 3-8 描述了在输入和输出向量序列上运行的几个 rnn。每个矩形是一个向量;自下而上,输入向量在底部,输出向量在顶部,中间的矩形保存 RNN 状态。

一个很好的教程可以在 http://blog.echen.me/2017/05/30/exploring-lstms/?utm_content=buffer1bdf8 访问,关于可视化 LSTMs。另外,请参见 Andrej Karpathy 关于在 https://skillsmatter.com/skillscasts/6611-visualizing-and-understanding-recurrent-networks 训练 RNNs 的视频教程。

3.6.1 强化学习的 rnn

强化学习(RL)通过使用延迟的奖励信号来调整学习机的参数。对于 RL 来说,最大的挑战是环境状态仅部分可观测且必须考虑隐藏状态的任务,即所谓的非马尔可夫任务或部分可观测马尔可夫决策过程。许多现实世界的任务都属于这一类,比如迷宫导航任务。然而,隐藏状态使问题变得更加困难,因为代理不仅要学习从环境状态到动作的映射,还需要在每个位置确定他们处于哪个环境状态。

用 LSTM 训练的 rnn 特别适合于处理这些复杂的任务,尤其是在没有先验环境模型的情况下。人们可以在线建立一个模型,学习预测观察和奖励,从而学习推断环境或将其分解为一组马尔可夫子任务,每个子任务都可以通过将观察映射到行动的反应式控制器来解决[WS98]。另一种无模型方法是试图通过使选择的动作不仅依赖于当前的观察,而且依赖于观察和动作的历史的某种表示来解决隐藏状态。总的想法是,当前的观察连同历史的这种表示可以产生马尔可夫状态信号。

如果事件之间存在长期相关性,所有这些方法在迷宫导航任务中可能会面临困难,在迷宫导航任务中,T 形接头看起来相同,区分它们的唯一方法是考虑先前的事件序列。对于这些情况,没有直接的方法将任务分解成马尔可夫子任务,代理必须记住相关信息。Schmidhuber 提出了 LSTM 单位,通过结合从数据中学习到的记忆状态和遗忘项来帮助解决这个问题[HS97];参见图 3-9 。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-9

An LSTM cell with forgetting memory gate (source: https://arxiv.org/pdf/1506.00019.pdf )

强化学习,即代理学习在给定环境中应该采取的行动,以最大化累积奖励,通过利用深度学习进行特征表示,已经取得了进展。

https://arxiv.org/pdf/1604.06778.pdf【DCH+最近的一项工作中,作者提出了一种新的标准化和挑战性的测试床,用于评估连续控制领域中的算法,其中数据是高维的,并且经常使用无模型方法。该框架由 31 个连续的控制任务组成,从基本到运动到分层,将理想地帮助研究人员了解他们算法的优势和局限性。

彼得·阿比尔(来自 openAI)在 https://www.youtube.com/watch?v=evq4p1zhS7Q 的视频演示很好地概述了 DL 如何从一个新的角度来解决机器人技术中的强化学习问题。

LSTMs

RNNs 的吸引力之一是它能够连接以前的信息来解决实际的任务,例如使用以前的单词来预测句子中的下一个单词。

LSTM 网络是一种特殊类型的 RNN,能够学习长期依赖性。它们是由 Hochreiter 和 Schmidhuber 在 1997 年[HS97]提出的,后来经过改进,现在已经广泛应用于从语言翻译到视频处理的各种问题。

LSTMs 被设计用于解决长期依赖性以及消失和梯度爆炸问题。LSTM 中的重复模块包含四个交互层:输入、输出、单元状态和遗忘门。LSTM 具有删除或添加信息到细胞状态的能力,由控制信息流的门来调节。门由一个 sigmoid 或 tanh 神经神经元和一个逐点乘法运算组成。

LSTM 的每个记忆单元都包含一个节点,该节点具有固定权重 1 的自连接递归边,确保梯度可以穿过许多时间步长而不消失或爆炸。

简单的循环神经网络具有长期记忆(在训练期间缓慢变化的权重)和作为激活的短期记忆,这些记忆从每个节点传递到连续的节点。LSTM 有一种中间类型的存储方式,即存储单元。存储单元由几个元件形成。

  • 输入节点:这个单元是一个节点,它从上一个时间步(t–1)的隐藏层激活当前时间步的输入层。求和的加权输入通过一个双曲正切激活函数。
  • 输入门:门是一个 s 形单元,它从当前数据 x(t)以及前一时间步的隐藏层获取激活。但是,它的值用于乘以(而不是相加)另一个节点的值。如果其值为零,则来自其他节点的流被断开。
  • 内部状态:这是一个自连接的递归边,具有固定的单位权重。因为此边以恒定权重跨越相邻时间步长,所以误差可以在时间步长间流动,而不会消失或爆炸。
  • 忘记门:这些对于网络释放内部状态的内容是至关重要的。
  • 输出门:存储单元中的值是内部状态乘以输出门的值。内部状态首先通过 tanh 激活函数传输,因为这使每个单元的输出具有与普通 tanh 隐藏单元相同的动态范围。

LSTM 非常适合于分类和预测演化时间序列,并且在许多应用中通常优于隐马尔可夫模型和其他序列学习方法。然而,它们在计算上是昂贵的。

gru 是由 Felix Gers 介绍的,他最初称之为忘记盖茨。它们将遗忘门和输入门合并成一个“更新门”它还合并了单元格状态和隐藏状态,并进行一些其他更改。由此产生的模型比标准的 LSTM 模型更简单,并且越来越受欢迎。Greff 等人(2015 年)对流行的变体进行了比较,发现它们几乎无法区分。

然而,根据这份报告,香草 LSTM 在自然语言处理和机器翻译方面一直优于 GRUs。

大多数问题可以通过无政府的 LSTM 来解决。在无状态模式下,LSTM 不会记住前几批的内容。如果有状态,批次中索引 I 处每个样本的最后状态将用作下一批次中索引 I 处样本的初始状态。因此,要了解序列之间的依赖关系,您必须使用有状态的 LSTM,在 LSTM Keras 层中作为布尔标志给出。

关于 LSTM 如何工作的详细解释,见 http://colah.github.io/posts/2015-08-Understanding-LSTMs/ 的博文,其中有一个使用 Keras 的分步示例

截至 2017 年 8 月,五大公司(苹果、谷歌、微软、亚马逊和脸书)正在大规模地将 LSTM 添加到他们的产品中,用于语音、图像或自动翻译。

  • 脸书在 2017 年 8 月宣布,它正在使用 LSTM 每天进行高达 45 亿次翻译,每秒超过 5 万次。
  • LSTM 还被用于改善近 10 亿部 iPhones 上的苹果 Siri 和 QuickType。
  • LSTM 已经学会了基于生成序列到序列模型来创建亚马逊 Alexa 的答案。
  • 位于 LSTM 的系统还学会了控制机器人、分析图像、总结文档、识别视频和笔迹、运行聊天机器人和智能助手、预测疾病、点击率和股市,以及作曲。
  • 百度和其他亚洲公司也在大量使用 LSTM,它正渗透到现代世界。你可能一直在用 LSTM。但其他深度学习方法也大量使用。下面是引用众多的概览页面: http://people.idsia.ch/~juergen/impact-on-most-valuable-companies.html

3.7 生成模型

理查德·费曼曾经说过,“我不能创造的,我不理解。”能够生成数据远比简单地对数据进行分类要强大得多。我们可能低估了我们的大脑包含了多少关于这个世界的隐含信息。我们知道重力总是把我们往下推,汽车不会飞,物体不会溶解到稀薄的空气中,等等。然而,这些知识大部分在我们的日常生活中完全被忽略了,如果我们想将其表达为规则,我们会很挣扎,因为可能性的数量可能会爆炸。此外,这些规则中的大多数都有例外,更糟糕的是,其中一些规则可能会相互矛盾。

生成模型是实现这一目标的最有前途的方法之一。要训练生成模型,首先要收集某个领域(图像、视频、声音)的大量数据,然后训练模型生成类似的数据。所使用的神经网络被迫发现数据的潜在压缩表示,以便生成它。

生成模型假设你有一组潜在的(未观察到的)变量,解释观察到的数据 x .潜在变量 z 的一个向量,可以按照某个概率密度函数 P(z)进行采样。然后你假设你有一族函数 f(z;θ),其中θ是参数的向量。你想优化θ使得 f(z;θ)在从 P(z)采样 z 时,对于数据集中的每个 X,以高概率产生类似 X 的样本。形式上,你最大化训练集中每个 X 的概率。

)

这里,)是 f(z;θ)导致所谓的最大似然。

有几种类型的生成模型。深度卷积生成对抗网络是由拉德福德等人发明的。在这个工作中,这个例子将从一个均匀分布(潜在变量)中抽取的 100 个随机数作为输入,并输出一个图像(在这个例子中,右边是 64×64×3 的绿色图像)。随着代码的不断变化,生成的图像也会随之变化。这表明模型已经学会了描述世界看起来是什么样子的特征,而不仅仅是记忆一些例子。

你可以在 http://shakirm.com/slides/DLSummerSchool_Aug2016_compress.pdf 找到 Deepmind 的 Shakir Mohamed 关于生成模型的很好的演示,也可以在 https://blog.openai.com/generative-models/ 找到 OpenAI 的博客帖子。

3.7.1 可变自编码器

变分自编码器(VAE)是最简单的生成模型之一。它是自编码器[Doe16]的更高级版本,增加了对正在学习的编码表示的约束。它学习关于输入数据的变量 z 的潜在变量模型和从潜在变量近似采样的函数,从而使它成为一个易处理的问题。不是让神经网络学习任意函数,而是学习对数据 P(x)建模的概率分布的参数。通过从潜在分布 P(z)中采样点,VAE 生成与训练数据匹配的新输入数据样本。

该模型的参数通过两个损失函数来训练:重建损失,其迫使解码样本匹配初始输入(就像普通的自编码器一样),以及学习的潜在分布和先前分布之间的 KL 散度,用作正则化项,使用重新参数化技巧。可以排除后一项,尽管它确实有助于学习结构良好的潜在空间并减少对训练数据的过度拟合。参见 https://jaan.io/what-is-variational-autoencoder-vae-tutorial/ 处的教程以及应用于 https://blog.keras.io/building-autoencoders-in-keras.html 处的 MNIST 数据集的一些代码示例。

在 VAEs 中,这种输出分布的选择通常是高斯分布。

)

(3.11)

为了求解这个方程,VAEs 必须处理两个问题:如何定义潜在变量代表什么信息,以及如何计算 z 上难以处理的积分?VAE 对第一个问题的处理方法是简单地假设潜在变量没有明确的解释。第二个问题(由于潜在空间 z 的高维性而产生)在 VAE 框架中通过随机梯度下降优化一个近似分布)来解决,该近似分布预测 z 的哪些值可能产生 x。VAEs 给出了两个问题的答案。

与稀疏自编码器不同,通常没有调整参数,并且与去噪自编码器不同,您可以直接从 P(X)采样(无需执行马尔可夫链蒙特卡罗[MCMC])。VAEs 假设 z 的维数没有简单的解释,而是断言 z 的样本可以从简单的分布中抽取;换句话说,),其中 I 是单位矩阵。

变分自编码器背后的关键思想是试图对可能产生 X 的 z 值进行采样,并根据它们计算 P(X)。说 z 是用 p.d.f. Q(z)从任意分布中采样的,不是)。我们试着把)和 P(X)联系起来。

联系)和 P(X)的一种方法是从)和 Q(z)之间的 Kullback-Leibler 散度(KL 散度或 D)的定义开始。

(3.12)

通过对)应用贝叶斯规则,可以将 P(X)和)都代入这个等式。

(3.13)

在这里,log P(X)出于预期,因为它不依赖于 z。对两边取反,重新排列,并将)的一部分收缩成 KL-divergence 项,得到如下:

(3.14)

注意 X 是固定的,Q 可以是任意分布。既然你对推断 P(X)感兴趣,那么用 X 构造 Q 是有意义的,它将被写成))这样将会很小。

(3.15)

这个方程是变分自编码器的基础。从左侧开始,您将 log P(X)最大化,同时将最小化。)不是你可以分析计算出来的;它描述了在图 3-10 的模型下可能产生类似 X 的样本的 z 值。然而,左边的第二个任期正在拉着)去配合)。假设您对)使用任意高容量模型,那么)将理想地实际匹配),在这种情况下,KL 散度项将为零,并且您将直接优化 log P(X)。作为额外的奖励,你让棘手的)变得容易处理。你可以用)来计算它。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-10

Encoder and decoder in a variational auto encoder (source: Jaan AltoSaar blog)

因此,作为随机梯度下降的标准,你取 z 的一个样本,并把 z 的)作为的近似。

你要优化的全方程如下:

(3.16)

您可以从分布)中采样 X 的单个值和 z 的单个值,并计算梯度如下:

(3.17)

然后你可以在 X 和 z 的任意多个样本上平均这个函数的梯度,结果收敛于方程 3.16 的梯度。

3.7.2 生成敌对网络

生成网络是以无人监督的方式训练的,因为你对生成的数据没有任何明确的期望目标;它们应该尽可能真实。

以监督方式训练生成网络的一种有趣的方法是生成对抗网络。gan 于 2014 年由 Ian Goodfellow 等人引入。它们由一个鉴别器网络(在图像的情况下,是标准的卷积神经网络)组成,该网络被训练来区分真实的输入图像和由生成器(通常也是 CNN)创建的生成图像。这两个网络被锁定在一个 min-max 游戏中:鉴别器试图区分真实图像和虚假图像,生成器试图创建图像,使鉴别器相信它们是真实的。最终,生成器网络创建的图像与真实图像无法区分。

生成器(G)试图捕捉从中提取数据的模型,从而从随机噪声输入中生成图像,而鉴别器(D)是传统的 CNN,它试图区分真实数据(训练数据)和由 G 生成的数据,从而估计后验概率 P(标签|数据),其中标签指的是“假”或“真”。

在训练期间,向 D 呈现来自训练数据的真实图像和由 G 生成的虚假图像的混合,并且其损失函数是正确地分离正确和虚假输入。两个网络都将与相反的目标竞争,训练将不断发展,直到达到平衡。

GAN 训练是一个两人游戏,其中生成器最小化其生成分布和数据分布之间的差异,而鉴别器试图区分来自生成器分布的样本和真实数据样本。当鉴别器的表现不比随机猜测好的时候,你说生成器“赢”了。训练 GANs 是困难的,因为系统动力学经常偏离平衡。

基本 GAN 的优化问题是最小-最大问题,由以下等式给出,其中 V 是值函数,x 是观测值,z 是潜在变量。

(3.18)

最近,瓦瑟斯坦距离被引入来测量两个分布之间的差异。Wasserstein 是一个更一致的指标,并已被证明能够创造更好的收敛性。更多信息参见 https://casmls.github.io/general/2017/04/13/gan.html

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-13

Generating rooms from noise with several types of GANs (source: https://casmls.github.io/general/2017/04/13/gan.html )

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-12

Model of a GANs

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-11

Cumulative number of papers referring to GANs (source: https://github.com/hindupuravinash/the-gan-zoo )

图 3-11 描述了 GANs 文件在创建后的最后几年中的累积活动。图 3-12 展示了一个 GANN 的主要模块组件模型。图 3-13 显示了几种模型 GANs 在从噪声中生成房间图像中的应用。

Makhzani 等人引入了对抗性自编码器(AAE)的概念。AE 是一种概率自编码器,它使用生成式对抗网络来执行变分推理。将聚集后验值与先验值相匹配确保了从先验空间的任何部分产生有意义的样本。AAE 可用于半监督分类、理清图像的风格和内容、无监督聚类、维度缩减和数据可视化。

您可以在 https://deephunt.in/the-gan-zoo-79597dc8c347 找到到目前为止提出的所有类型的 gan 的更新列表。

当很少有样本可用于训练时,GANS 可以非常有效地进行数据扩充和数据生成,从而避免了使用深度学习的困难。在最近的一次实验中(见 https://arxiv.org/abs/1606.03498 ),作者仅使用了 MNIST 数据集上 10 位数字中的每一位的 50 个例子来生成带有 GAN 的训练数据集,从而实现了 1.5%的错误率,相比之下,使用原始的 50,000 个例子的错误率为 0.5%。

文本到图像合成是 GANs(称为 stack GANs)的一个有趣的应用,用于从文本描述中生成鸟和花的图像。检查 GitHub 上可用的 Torch 中的代码。

伊恩·古德菲勒在 http://on-demand.gputechconf.com/gtc/2017/video/s7502-ian-goodfellow-generative-adversarial-networks.mp4 有一篇关于甘斯的精彩教程。

四、图像处理

深度学习(DL)影响最大的领域可能是图像处理。软件可以使用人工神经网络运行新皮层模拟的梦想已经存在了几十年,导致了许多失望和突破。即使在嘈杂的环境中或者在几何变换或背景变化的情况下,人类视觉感知系统也能实现显著的物体识别性能。多年来,计算机视觉社区一直试图复制这一惊人的能力,但收效甚微。关于深度神经网络图像处理发展的广泛综述,请参见 www.sciencedirect.com/science/article/pii/S0925231215017634 的“用于视觉理解的深度学习:综述”。

然而,DNNs 的最新进展,特别是使用卷积神经网络,导致了图像处理的革命,达到(甚至超过)人类水平的性能。最近,Cadieu 等人的一项工作[CHY + 14]表明,在具有挑战性的视觉对象识别任务中,DNNs 与在灵长类动物的下颞叶(IT)皮层中发现的 DNNs 具有相当的性能。这些作者声称,“这些 dnn 是否依赖于类似于灵长类视觉系统的计算机制还有待确定,但是,与之前所有的生物启发模型不同,这种可能性不能仅仅因为代表性表现而被排除。”我们现在有人工模型,可以在复杂的感知活动中与类似人类的大脑相媲美。此外,Eberhardt 等人在“快速视觉分类背后的特征分析有多深?”( http://arxiv.org/abs/1606.01167 )比较了 CNN 与人类的表现,表明 CNN 在快速视觉识别上可以达到超人的表现。

下一节将展示深度学习在图像处理上的一些应用。图 4-1 总结了 DNN 架构。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 4-1

A summary of DNN architectures for image processing

4.1 用于图像处理的 CNN 模型

CNN 是受哺乳动物视觉皮层生物启发的首批深度学习模型之一。LeCun [LBD + 89]表明,手工特征提取可以被一种称为 CNN 的神经网络所取代。CNN 在手写数字识别(MNIST)数据集上取得了相当大的成功,LeCun 在 1995 年表明,CNN 优于所有传统的机器学习方法,如逻辑回归、主成分分析或最近邻法。

CNN 已经经历了爆炸性的适应,并且已经取代了传统的图像处理技术,成为所有计算机视觉问题的事实上的方法。它们也被积极地研究和应用到其他领域,如语音、生物医学数据,甚至文本。

CNN(也称为 ConvNets)是 ann 的一种变体,它充分利用了输入的空间性质。CNN 不是像常规神经网络那样堆叠线性层,而是使用空间滤波器处理三色通道。他们利用了以下概念:

  • 局部感受野:与 MLP 不同,CNN 没有一层的神经元连接到下一层的所有神经元。CNN 有一组过滤器,作用于局部区域,在输入图像的二维小区域中建立联系,称为局部感受野。这大大减少了网络中必要的连接数量,并降低了计算复杂度。receptive1 字段的典型值为 5×5。步幅是控制局部感受野在图像上滑动的参数,并且是感受野一次移动的像素数(通常是两个或三个)。感受局部区域和步幅控制输出体积的空间大小。
  • 共享权重和偏差:CNN 对每个隐藏神经元使用相同的权重和偏差。通过共享权重,网络被迫学习图像不同区域的不变特征。因此,该层中的所有神经元检测相同的特征,但是在图像中的不同位置。这使得 CNN 的平移不变性成为图像处理的一个关键特征。一旦检测到图像中的特征,该特征的位置就变得无关紧要了。这些定义特征图的权重被称为内核或过滤器。为了执行图像识别,需要几个特征图;卷积层由几个不同的特征图组成(通常使用几十个特征图)。同样,共享权重和偏差有助于减少网络需要学习的参数数量,并减少过度拟合的机会。
  • 池层:池层是一种通常在卷积层之后使用的层。它们通过执行应用于每个特征图的统计聚合函数(通常是平均值或最大值)并生成压缩的特征图来汇总来自卷积层的信息。前向传播评估激活,后向传播计算来自上面层的梯度和局部梯度,以计算层参数的梯度。总的来说,CNN 利用卷积、轮询和丢弃层的正则化特性,大大减少了可训练参数的数量和过拟合的风险。批量标准化等新技术减少了内部协方差变化,有助于平滑学习。最后,使用校正线性单位(ReLU)或泄漏的 ReLU 激活有助于加速训练并避免神经元饱和。整个 CNN 网络可以使用反向传播算法通过梯度下降来训练。

LeNet5,第一个强大的 CNN,其特点可以概括为:一个卷积神经网络,具有一系列卷积和池层;使用地图的空间平均和多层神经网络(MLP)作为最终分类器(完全连接的层),从子样本提取空间不变特征的卷积;以及层之间的稀疏连接矩阵(权重共享),以避免大的计算成本并减少过拟合。

完整的 CNN 由多个卷积层叠加而成(每个卷积层都有特征映射平面和局部感受野)。添加子采样层作为正则化层,以提高对偏移和失真的不变性。早在 20 世纪 90 年代,越深的网络表现越好就变得显而易见,但当时我们缺乏必要的数据和计算资源。图 4-2 表示用于语义切分的学习反卷积网络。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 4-2

Example of a fully convolutional neural network for image segmentation (source: https://handong1587.github.io/deep_learning/2015/10/09/segmentation.html )

4.2 ImageNet 及其他

2009 年,发布了 ImageNet 数据集,其中包括 1500 多万张高分辨率图像,分为 22,000 多个类别。在 2012 年,Krizhevsky 等人[AIG12]率先使用图形处理器单元(GPU)来快速实现包含多达 650,000 个神经元和 6000 万个参数的 CNN(相比之下,LeNet5 的权重为 60,000),并以仅 15.3%的前五名错误率获胜。这一结果远远好于当时达到 26.2%的最新方法。除了使用更大的数据集和更大的网络,这些作者还使用积极的正则化技术来避免过度拟合,如数据扩充(在形状、旋转和颜色方面应用轻微的失真)和放弃来缩小神经元的共同适应。这最后一种技术允许单个神经元在不依赖其他相邻神经元的情况下学习更健壮的特征。

用无监督的目标函数以贪婪的逐层方式预训练神经网络是另一种避免过拟合的流行技术,特别是对于 RBM。这种想法背后的直觉是,无监督训练将基于其将用于的数据(例如,对象图像、人类语音等)的实际统计属性,给出神经网络的权重的良好初始化。)而不是随机初始化,随机初始化经常陷入糟糕的局部最小值。该网络可以在受监督的任务上进行微调,例如物体识别。从数学上讲,CNN 将图像原来的高维转换成低维的特征向量表示。这样,一个好的 CNN 模型也可以作为图像的一个好的特征提取器,得到的图像可以用于更复杂的任务。图 4-3 显示了用于对象分类的 CNN(见 https://handong1587.github.io/deep_learning/2015/10/09/segmentation.html )。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 4-3

Results of a CNN and dense layers used for object classification (source: [AIG12])

2012 年,谷歌用来自 YouTube 视频的超过 1000 万张图片训练了一只 DNN。经过训练后,神经网络能够识别猫和狗,比以前的算法准确率提高了一倍。令人瞩目的是,该算法基本上无人监管。没有为图像提供人类标签。神经元不仅能识别猫和狗,还能识别人脸、黄花和其他常见的物体。该算法对 YouTube 图像中的对象(22,000 个类别)进行分类,准确率比以前的方法高 16%至 70%。它可能不会给人留下深刻印象,但它是一个具有挑战性的任务,因为它包含许多类似的对象。当类别数量减少到 1000 个时,准确率提高到了 50%。

2013 年,泽勒提出了一个更容易理解和校准的 CNN 模型( https://arxiv.org/pdf/1311.2901.pdf ),在 ImageNet 数据集上取得了 12.4%的最高性能。2014 年,谷歌推出了 Inception5 (Google LeNet),这是一个深度 CNN(有 20 层),以仅 6.7%的错误率赢得了 ImageNet 竞赛。这项工作表明了使用非常深的模型从图像中提取更高层次特征的重要性。

2015 年末,一个微软团队在 ImageNet 上实现了超人的性能,错误率仅为 3.7%,网络名为 ResNet(残余网络)。论文《图像识别的深度残差学习》( https://arxiv.org/abs/1512.03385 )在 MS COCO 数据集上取得了最先进的结果(代码可在 GitHub 上获得)。MS COCO 是一个众所周知的数据集,有两个挑战:分类(通过错误率评估)和图像字幕生成(通过 BLEU 评分评估)。

ResNet 基于一个简单的想法:馈送两个连续卷积层的输出,绕过下一层的输入。绕过单个层并没有提供太多的改进,而两个层本身可以被视为一个分类器。该团队能够训练高达 1000 层深度的网络[HZRS15]。图 4-4 展示了 imageNet 数据集上人类和深度网分类性能的对比。)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 4-4

Evolution of the performance of DNN in Imagenet (source: https://www.excella.com/insights/top-3-most-popular-neural-networks )

ResNet 在输入级别使用 7×7 conv 层,然后是两层池,这与 Google 团队在 Inception V3 和 V4 中使用的更复杂的格式形成了对比。 www.sciencedirect.com/science/article/pii/S0925231215017634

在 ResNet 中,输入被并行馈送到许多模块,并且每个模块的输出被串行连接。ResNet 可以被认为是并行/串行模块的合奏机器,在较小深度层(十分之一层)的块中运行。图 4-5 说明了残差学习的公式,残差学习可以通过具有“快捷连接”的前馈神经网络来实现。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 4-5

Architecture of a residual network (source: https://arxiv.org/abs/1512.03385 )

黄等人提出了一种 ResNet 的变体,他们称之为具有随机深度的 DN[HSL+16]。这个想法是从非常深的网络开始,在训练过程中,随机丢弃一个层的子集,并用每个小批量的身份函数绕过它们。简化的训练加速了收敛并提高了性能。在 CIFAR-10 基准测试中,该团队能够实现的最先进的测试误差仅为 4.91%。

沈等人提出了一种称为加权残差网络的技术,以缓解训练非常深的网络以及 ResNet 与 ReLU 不兼容的问题[SZ16]。他们能够训练深度超过 1000 层的网络。图 4-6 显示了自 2010 年以来关于 ILSVRC 挑战数据集中分类性能的深度网络深度大小的演变。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 4-6

Accuracy versus size versus operations of several CNN architectures (source: https://icml.cc/2016/tutorials/icml2016_tutorial_deep_residual_networks_kaiminghe.pdf )

Srivastava 等人[SGS15]提出了一种新的架构,旨在简化非常深的网络的基于梯度的训练,这种网络被称为高速公路网络,因为它们允许信息在“信息高速公路”的几个层之间畅通无阻地流动该体系结构的特征在于使用门控单元,这些门控单元学习调节通过网络的信息流。他们表明,具有数百层的高速公路网络可以直接使用 SGD 进行训练。

4.3 图像分割

图像分割是图像处理和计算机视觉的关键组成部分。它包括将一幅图像分割成若干段,或具有一些共同特征的簇。有许多图像分割算法。最基本的是阈值分割。阈值分割试图根据一定的准则自动确定最优的类阈值,并在聚类前根据灰度级使用这些像素。区域增长通过组合具有相似属性的像素来形成区域;类似于 k 均值。边缘检测分割使用像素灰度或颜色不连续检测区域的不同区域。

所有这些技术都相当有限。最后,也是最强大的图像分割算法是基于 CNN 的。这是一个监督问题,目标是给图像中的每个像素分配一个标签,并将其作为一个分类问题来处理。它包括三个部分:取一幅带有一些物体的输入图像,给出相应的分割掩模,训练算法使交叉熵最小化。

全卷积网络(FCN)是最常用的图像分割架构。FCN 由一个卷积层组成,在网络末端没有任何全连接(密集)层。作为输出,相应的分割掩模被呈现,并且包含图像中每个像素的注释。全卷积网络学习各处的过滤器,包括网络末端的层(图像分割)。

FCN 基于局部空间输入来学习制图表达。添加完全连接的层使网络能够捕捉全局信息,并在图像分割任务中获得成功。

用于细分的常见 FCN 是 U 型网络架构,如图 4-7 所示。它由一个向下漏斗形路径(左侧)和一个扩展路径(右侧)组成。左侧是卷积网络的典型架构,由 k×k 个卷积的重复应用组成,每个卷积之后是一个整流线性单元(ReLU)和一个最大 2×2 的汇集操作,跨距为 2,用于漏斗路径。每一步都使特征通道的数量加倍。扩展路径中的每一步都包括特征图的上采样,然后是将特征通道数量减半的 2×2 卷积;与来自左侧路径的相应裁剪的特征地图的连接;和两个 3×3 卷积,每个卷积后面跟一个 ReLU。由于每次卷积都会丢失边界像素,因此需要进行裁剪。在最后一层,使用 1×1 卷积将每个 n 特征向量映射到期望数量的类;详见 https://arxiv.org/abs/1505.04597 。U 型网络的缺点是它们包含混合的渠道。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 4-7

Example of a U-network for image segmentation (source: http://juliandewit.github.io/kaggle-ndsb/ )

与卷积层相比,膨胀卷积使用了一个附加参数:膨胀率。这定义了内核中值之间的间距。膨胀率为 2 的 3×3 内核将具有与 5×5 内核相同的视野,同时仅使用 9 个参数。这以相同的计算成本提供了更宽的感受域。膨胀卷积通常用于实时分割,因为它们具有较少的计算成本。这是不使用多重卷积或更大内核的更宽感受野的自然选择。

4.4 图像字幕

符号接地问题,或者说如何将意义融入一个符号,是一个很古老的问题。约翰·塞尔(John Searle)对著名的中国房间论点提出的论点基本上是这样的:“人类如何将内部符号与它们所指的外部物体联系起来?”对塞尔来说,“意义”不能被简化为一组有限的基于规则的计算,例如,大脑将单词与图像联系起来的方式不能被计算机复制。然而,最近结合 CNN 和 RNNs 的图像和视频自动文本捕获工作挑战了这种怀疑,并有助于解决这一难题。图 4-8 显示了 CIFAR-10 数据集上普通网和 ResNets 的性能对比。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 4-8

Performance on CIFAR-10 (source: ​arxiv.​org/​pdf/​1512.​03385.​pdf)

循环神经网络(RNNs)最近已被用于成功地生成语句来描述图像[KFF17],使用具有成对图像和相应标题的训练集。Vinyals 等人[VTBE14]提出了用卷积神经网络对图像进行编码,然后应用 LSTM 对其进行解码并生成文本的想法。Mao 等人[MXY + 14]独立开发了一个类似的图像字幕网络,并在 Pascal、Flickr30K 和 COCO 数据集上取得了当时最先进的结果。

卡帕西和飞飞[KFF17]使用卷积网络对图像进行编码,同时使用双向网络注意力机制和标准 RNN 对字幕进行解码,使用 Word2vec 嵌入作为单词表示。他们考虑了全图像字幕和捕捉图像区域和文本片段之间对应关系的模型。在 https://github.com/tylin/coco-caption 可以获得更多关于图像标题的神经网络资源。图 4-9 显示了提交给 ImageNet 挑战赛的网络单次转发所需的最具信息量的精确度和操作量(从最左边的 AlexNet 到性能最佳的 Inception-v4)。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 4-9

Size and accuracy of different neural network architectures (source: https://arxiv.org/abs/1605.07678 )

4.5 Visual Q&A (VQA)

查询图像内容是一项具有挑战性的任务,需要能够将单词与图像绑定的语义知识。

H.高等人【GMZ + 15】使用了一种结合语言模型和 CNN 的模型,CNN 学习图像嵌入的表示,以创建一个可视化的问答机。机器学习回答关于图像内容的自由问题。通过最小化训练集上给出的正确答案的损失函数来训练该模型。为了降低过度拟合的风险,作者在第一和第三部分的 LSTMs 之间引入了单词嵌入层的权重共享。通过机械土耳其人的方法,用大约 158,000 幅图像和 316,000 个中文问答训练了该模型。鉴于任务的复杂性,该模型取得了可观的性能。图 4-10 显示了深度神经网络生成的图像描述结果,该网络首先识别图像元素,然后得出它们之间的关系。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 4-10

Caption generated by multimodal ANN. Green (left) shows good captions, and red (right) shows failure cases (source: https://cs.stanford.edu/people/karpathy/cvpr2015.pdf ).

AgraWal 等人[AAL + 15]也研究了自由形式、开放的视觉 Q & A (VQA)问题,并创建了一个包含大约 250,000 张图像的数据集;76 万个问题;以及 1000 万个答案。在 www.visualqa.org 有售。最好的模型被称为 LSTM-Q(也是 CNN 和 LSTM 的组合),能够在许多类型的问题上达到惊人的准确性,比如“这是什么?”以及“有多少?”以及“什么动物?”和“谁?”有时它非常接近人类的表演,就像在“有吗?”问题,算法的准确率是 86.4%,而人类的准确率是 96.4%。图 4-11 显示了一个结合了语言模型和 CNN 的模型,该模型学习图像嵌入的表示以创建一个可视问答机。两个 LSTMs(一个用于问题,一个用于答案)的单词嵌入层中的权重矩阵。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 4-11

Multimodal learning model, combining an RNN trained with LSTM for text and an CNN for pictures (source: https://arxiv.org/pdf/1505.05612.pdf )

Noh 等人[NSH15]使用动态参数层训练卷积神经网络,其权重基于问题自适应确定,并使用单独的参数预测网络,该网络由以问题作为输入的门控递归单元(GRU)和生成一组候选权重作为输出的全连接层组成。他们还使用哈希技术来降低复杂性,并规范网络,声称在所有可用的公共基准上具有最先进的性能。图 4-12 展示了一种新颖的端到端序列到序列模型,用于为视频生成字幕。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 4-12

Sequence-to-sequence model for video description (source: https://vsubhashini.github.io/s2vt.html )

已经提出了几个模型用于组合文本、图像和视频的序列到序列处理。见 https://vsubhashini.github.io/s2vt.html 举例。所有这些方法都使用 CNN + LSTM 或 GRU 的编码器-解码器模型来创建连接嵌入,并从视频中生成图例和字幕。

Cadene 等人最近发布了一个 GitHub 库( https://github.com/Cadene/vqa.pytorch ),实现了一个 VQA(代码在 Pytorch 中)。VQA 多模态塔克融合项目(MUTAN)的作者声称在 VQA 1 号数据集上取得了最先进的结果。

蒙特利尔大学、里尔大学和 DeepMind 的研究人员合作,在将语言与图像绑定方面产生了一个有趣的结果。他们提出了一种称为调制 RESnet (MORES)的技术来训练视觉和语言模型,以便单词表征与视觉表征紧密结合并一起训练( https://arxiv.org/pdf/1707.00683.pdf )。神经科学界有越来越多的证据表明,文字设定了视觉先验,从一开始就改变了视觉信息的处理方式。更准确地说,观察到与低级视觉特征相关的 P1 信号在听到特定单词时被调制。人们在图像前听到的语言提示激活了视觉预测,加速了图像识别过程。这种方法是一种通用的融合机制,可以应用于其他多模态任务。他们在 GuessWhat 上测试了他们的系统,这是一个游戏,其中两个人工智能系统以丰富的视觉场景呈现;其中一个代理是 oracle,它专注于图像中的特定对象,而另一个代理的工作是向 oracle 询问一系列是/否问题,直到它找到正确的实体。他们发现,与基线算法实现相比,MORES 增加了 oracle 的得分。

4.6 视频分析

视频已经成为最常见的视觉信息来源之一。互联网上可用的视频数据量非常诱人;一天之内看完所有上传到 YouTube 的视频需要 82 年以上的时间。因此,用于分析和理解视频内容的自动工具是必不可少的。DL 对视频分析的影响可分为以下几类:

  • 目标检测和识别
  • 高光检测
  • 动作识别和事件检测
  • 分割和跟踪
  • 分类和标题
  • 运动检测和分类
  • 场景理解
  • 事件检测和识别(动作、手势)
  • 人物分析(人脸识别、姿态分析等。)
  • 目标跟踪和分割行为识别和人群分析

DNNs 对视频处理产生了巨大的影响,视频处理是一个具有时空高维数据特征的复杂问题。序列数据表示的神经网络监督学习具有许多优点,但是捕获序列数据的区别行为是一个具有挑战性的问题。

在[DHG + 14 中,Donahue 等人用 RNNs 研究了一个 CNN 模型,并提出了一个递归卷积架构,用于端到端的大规模视觉挑战性任务,如活动识别、图像字幕和视频描述。这个模型脱离了固定的视觉表征,能够学习空间和时间的组合表征。该模型是一个完全可微分的 RNN,能够学习长期依赖关系。这很有吸引力,因为它可以将可变长度的视频映射到自然语言文本。该模型经过反向传播的全面训练。作者表明,该模型可以在区分性或生成性文本生成任务中取得良好的效果。他们在 TACoS 多级数据集上评估了该模型,该数据集包含 44,762 个视频/句子对,获得了 28.8 的 BLEU 分数。

Fernando 等人[FG16]最近使用一种方法,通过 CNN 对视频场景进行分类,从视频中联合学习有区别的动态表示。他们提出了一种卷积神经网络视频序列分类任务的时间编码方法,在端到端学习中使用 CNN 架构之上的池层。他们能够在 UCFsports 数据集上比传统的等级池方法提高 21 %,在 Hollywood2 数据集上提高 9.6 mAP。模型参数可以在几毫秒内更新,允许每秒处理高达 50 帧。

在[VXD + 14 中,作者还结合了 CNN 和 LSTM 共同学习视频和文本的嵌入,生成视频的自动标注。由于缺乏数据集,作者依赖照片注释数据,并使用知识转移技术。他们在主语、动词和宾语(SVO)方面取得了很好的准确性,但仍然远没有达到人类的水平,可能是因为缺乏训练数据。

朱等人[ZKZ + 15]开发了一种算法,将图书故事与各自的电影对齐。其目的是为视觉内容创造丰富的叙事,而不仅仅是标题。为了实现这一目标,他们使用神经网络来嵌入书籍语料库中的句子,并使用视频-文本神经嵌入来计算电影剪辑和书中句子之间的相似性,从而将电影和书籍对齐。这种被描述为上下文感知 CNN 的方法被应用于由 11 本书和各自的电影组成的 MovieBook 数据集,同时使用基于 LSTM 的文本编码器和用于视频的 CNN 在 11,038 本书中训练单词嵌入。结果在质量上是有趣的,并且证明了 DL 能够探索理解复杂问题的新领域,这在几年前是不可想象的。

然而,所有这些基于 CNN-RNN/LSTM 的模型都有大量的参数来捕获序列信息。因此,这些方法是非常数据密集的,并且需要大量的训练标记的例子。获取视频的标签数据比静态图像的成本更高,并且可能需要一些扩展或生成标签的技术(像 Cycle GAN 这样的生成模型可以是一个选项)。

用于编码视频序列数据的最直接的基于 CNN 的方法是在视频帧上应用时间最大池或时间平均池。然而,这些方法不能捕捉视频序列的任何有价值的时变信息。例如,对帧的任意重排将使用池化方案产生类似的表示。

最近,卷积 LSTM 在视频预测方面引起了相当大的兴趣。Lotter 将卷积 LSTM 用于无监督的视频预测(下一个视频帧的预测);代码(Keras)和结果可在 GitHub 上获得。参见 Prednet ( https://coxlab.github.io/prednet/ )。结果令人鼓舞,因为这是一个完全无人监管的模型。其思想是将卷积视为一个动态过程,然后像任何时间过程一样,将其训练为序列到序列模型。唯一的缺点是计算时间(因为 LSTMs 是计算非常密集的层)。然而,它仍然比得上视频像素网络( https://arxiv.org/pdf/1610.00527v1.pdf ),后者要求更高的精度,但计算成本更高。这些类型的网络正在积极研究自动驾驶汽车,因为事件预测是增加响应时间的关键,并使这些系统更具预测性,更少反应。

视频使用呈指数级增长;仅英国就有超过 400 万台闭路电视,用户每分钟向 YouTube 上传超过 300 小时的视频。分析视频是一项计算密集型任务,因为需要查询、检测异常事件或筛选长视频。最先进的对象检测方法在最先进的 GPU 上以每秒 10 到 80 帧的速度运行。这对于一个视频来说很好,但对于大规模的实际部署来说是站不住脚的;将这种计算开销放在上下文中,仅硬件就要花费超过 50 亿美元来实时分析英国所有的 CCTVs。

斯坦福大学的一个团队提出了一种叫做 NoScope 的方法,与当前的方法相比,它能够以数千倍的速度处理视频。关键在于视频是高度冗余的,包含大量的时间局部性(即时间上的相似性)和空间局部性(即场景中外观上的相似性)。他们实现了高达 100 倍的查询加速;详见 https://arxiv.org/pdf/1703.02529.pdf 的实现细节。

最近的一次 Kaggle ( https://www.kaggle.com/c/youtube8m )比赛要求参赛者建立一种算法,将 800 万个 YouTube 视频(45 万小时)分类为 4716 个类别。一种方法获得了第三名,在论文“大规模 Youtube-8M 视频理解的时间建模方法”( https://arxiv.org/pdf/1707.04555.pdf )中进行了描述。他们使用在 PaddlePalddle 百度框架上实现的双向注意力 LSTM 编码(用于视频和音频)。

自动视频摘要(AVS)是帮助人类用户简洁地表示视频而不丢失重要信息的关键。最近的工作集中在监督学习技术上。视频摘要是一个结构化的预测问题:摘要算法的输入是一个视频帧序列,输出是一个二进制向量,表示一个帧是否被选中。对于视频摘要,相互依赖性是复杂且高度不均匀的,因为人类依赖于对视频内容的高级语义理解(通常在观看整个序列之后)来决定是否应该将一帧保留在摘要中。在许多情况下,视觉上相似的帧不必在时间上接近。Zhang 等人[ZCSG16]提出了一种用于监督视频摘要的方法,该方法使用循环神经网络来自动选择关键帧或关键子镜头,以对可变范围依赖性进行建模。他们在两个基准视频数据集(SumMe 和 TVSum)上取得了最先进的结果,F 值分别为 41.8 和 58.7。他们还引入了一种技术,通过利用辅助带注释视频数据集的存在来规避一些带注释数据的存在,即使它们包含不同的视觉风格和内容。

语义视频检索有很多技术。例如, http://ieeexplore.ieee.org/abstract/document/7947017/

4.7 GANs 和生成模型

如前所述,生成对抗网络(GANs)已经彻底改变了图像处理的神经网络领域。作品[vdOKV + 16]使用 PixelCNN 架构,探索使用新的图像密度模型进行条件图像生成的思想。生成模型可以以包括标签和标记在内的任何向量为条件。作者根据 ImageNet 数据集的类别标签对模型进行了调整,并能够生成代表物体、风景、动物和结构的多样化、逼真的场景。如果模型以嵌入向量(可以从经过训练的 CNN 中提取)为条件,从人脸的唯一输入图像中,它可以生成同一个人的具有不同面部表情、光照条件和姿势的多种新肖像。见图 4-13 。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 4-13

PixelCNN generating images interpolated between left and right. Notice the smoothness of the transitions (source: https://arxiv.org/pdf/1606.05328.pdf ).

在“利用领域引导的退出来学习深度特征表示以进行个人重新识别”( https://arxiv.org/pdf/1604.07528v1.pdf )中,作者用来自多个领域的数据集训练了一个神经网络,以使提取的特征尽可能通用。作者开发了一个多领域学习管道,用于识别在不同闭路电视摄像机之间移动的人。中枢神经系统中的领域偏向神经元成为领域特异性的。领域引导的脱落根据每个神经元在该领域的有效性,为每个神经元分配特定的脱落率,从而实现显著的改进。

在[MZMG15]中,他们展示了如何处理图像标记中的人类主观判断,即没有使用一致的词汇,并且丢失了图像中存在的大量信息。他们使用一种算法,通过一个网络来区分物体的存在和另一个网络的相关性,将人类报告偏差与正确的视觉基础标签分离开来。例如,一幅有一串香蕉的图像可以(正确地)标注为黄色,但缺少内容。他们提供了图像分类和图像字幕的传统算法的显著改进的证据,在某些情况下将现有方法的性能提高了一倍。

http://robots.stanford.edu/cs221/2016/restricted/projects/rak248/final.pdf 所示,团队引入了一个有趣的概念 graphlets 来编码图像的语义。这些 graphlets 可以用来编码句子的语义,允许图像和句子之间的语义比较,这与图像检索相关。

克里斯托赫·赫斯在 https://affinelayer.com/pix2pix 发表了一篇关于使用 TensorFlow 进行图像到图像翻译的博文。代码可以在 GitHub 页面上找到。它在 pix2pix 网络上实现了 Isolda 等人的想法,该网络使用 GAN 框架将图像从一个域转换到另一个域,例如,从夜晚到白天,从黑白到彩色图片,或者从草图到物体。在 https://affinelayer.com/pixsrv/ 也有在线试玩。

最近,Nvidia 的一个团队提出了( https://github.com/NVIDIA/pix2pixHD )一个增强版本的条件 GAN(基于 Pix2pix 框架),能够生成非常高质量的图像。他们使用了一系列创新技术,如整合对象实例分割信息,以实现对象操作,如删除/添加对象和更改对象类别。这是一种从给定输入生成不同结果的方法。也可以在 YouTube ( https://www.youtube.com/watch?v=XOxxPcy5Gr4 )上看到他们应用这些技术生成真实感人脸的视频。图 4-14 despicts 带条件 GANs 的高分辨率图像合成。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 4-14

Example of high-resolution Pix2pix from Nvidia team. Left: the segmentation map; right: one possible high quality generated image (source: https://github.com/NVIDIA/pix2pixHD ).

Pix2pix 是一个很棒的工具;然而,对于许多任务,成对的训练数据将不可用。朱等最近提出了一种新的图像知识转移技术。在他们的论文“使用循环一致的对抗网络进行不成对的图像到图像的翻译”( https://arxiv.org/abs/1703.10593 )中,他们将这种技术命名为 CycleGAN。这是一种图像到图像的转换,目标是使用对齐图像对的训练集来学习输入图像和另一个输出图像(来自不同的域)之间的映射。该方法允许在没有对应对的情况下将图像从源域 X 翻译到目标域 Y。学习映射 G:X→Y,使得来自 G(X)的图像的分布应该与分布 Y 本身不可区分。因为这种映射是欠约束的,所以它进一步与逆映射 F:Y→X 耦合,从而引入循环一致性损失来推 F(G(X))≈X(反之亦然)。他们用它来进行风格转换、照片增强、物体变形、季节转换等等。 https://github.com/junyanz/CycleGAN 处的代码在 Pytorch 中有;还有一个很好看的视频,是一匹马变成了斑马。

4.8 其他应用

在[CCB15]中,Cho 等人使用基于注意力的编码器-解码器(结合 CNN 和 RNNs)来描述多媒体内容。新颖之处在于注意机制的广泛使用,尤其是在基于 RNN 的条件语言模型中。他们将该模型应用于机器翻译、图像字幕生成、视频描述生成和语音识别。作者声称注意机制在任意数据流(语音和视频、文本和图像等)之间的映射的无监督学习中的重要性。).他们证明,注意力模型可以有效地推断排列,而不需要明确使用任何领域知识,这使它成为神经科学的一个有趣的模板。

Kemelmacher-Shlizerman 等人最近创建了一个大数据集,称为 MegaFace,用于面部图像识别;参见“大规模人脸基准:100 万张人脸识别”( https://arxiv.org/abs/1512.00596 )。它包括 100 万张照片,捕捉了超过 69 万个不同的个人。他们评估了画廊集中“干扰物”数量不断增加(从 10 到 100 万)的算法的性能。他们测试了关于姿势和人的年龄的识别和验证,并将它们作为训练数据大小(照片数量和人数)的函数进行比较。他们对 100 万个干扰物的准确率从 99%到 80%不等。MegaFace 数据集、基线代码和评估脚本已经公开发布,以供进一步实验。

唇读包括从静音的扬声器视频图像中猜测单词和声音。S. Petridis 等人提出了( https://arxiv.org/pdf/1709.00443.pdf )基于双向长短记忆(BLSTM)网络的端到端多视角唇读系统。它声称是第一个同时学习直接从像素中提取特征和从多个视图中执行视觉语音分类的模型,同时实现了最先进的性能。该模型由多个相同的流组成,每个视图一个,这些流直接从不同姿态的嘴部图像中提取特征。每个流/视图中的时间动态由 BLSTM 建模,并且多个流/视图的融合通过另一个 BLSTM 进行。在 OuluVS2 数据集上,最佳三视图模型的绝对性能比当前多视图的最先进性能提高了 10.5%,而无需使用外部数据库进行训练,最高分类准确率达到 96.9%。

识别面部情绪的真实性是很难的,因为区别性的面部反应是短暂而微妙的。这些作者提出了 SASE-FE,这是一个包含真实和欺骗性情绪面部表情的视频数据集,用于自动识别。他们表明,识别欺骗性面部表情的问题可以使用数据的时空表示来解决,该数据沿着潜在特征空间中的基准轨迹聚集特征。

Gregor 等人介绍了 Deep Recurrent attention Writer(DRAW)(见 https://arxiv.org/abs/1502.04623 ),这是一种用于图像生成的神经网络架构。DRAW networks 结合了一种模拟人眼视觉的新型空间注意力机制,以及一种允许复杂图像迭代构建的顺序变分自编码框架。该系统在生成 MNIST 实例和街景门牌号码数据库上取得了非常好的结果。图像无法与真实数据区分开来。

卫星图像

卫星图像分类是一个涉及遥感、计算机视觉和机器学习的复杂问题。由于数据的高度可变性,这个问题具有挑战性。Basu 等人[SSS + 15]提出了一种基于深度信念网络和仔细预处理卫星图像的方法,在两个公开数据集上实现了 97.95%的准确率。一个数据集由 500,000 个图像斑块组成,涵盖四大类土地覆盖物:荒地、树木、草地和其他;选择 400,000 个补丁用于训练,剩余的 100,000 个用于测试。

塞拉提出了一种使用 CNN 对高分辨率遥感数据进行语义标注的方法[GLO + 16]。他们使用无缩减采样(或合并图层)的全分辨率标注,因此无需去卷积阶段或插值。他们还在混合网络环境中对 CNN 的遥感数据进行了预处理,获得了比从头开始训练的网络更好的结果。他们将该方法应用于标记高分辨率航空影像的问题,其中精细的边界细节非常重要,从而在 ISPRS Vaihingen 和 Potsdam 基准数据集上实现了最先进的精度。

工作“学习匹配航空图像与深度关注的建筑”( http://vision.cornell.edu/se3/wp-content/uploads/2016/04/1204.pdf )是一种努力,以弥合神经网络和基于局部对应的传统图像匹配技术之间的差距。作者提出了一个可端到端训练的框架,使用两个神经网络架构来解决这一在卫星和航空图像中常见的超宽基线图像匹配问题。他们通过一个用于特征提取的连体架构和一个二元分类器,在航空数据上微调预训练的 AlexNet,在超宽基线匹配中实现了最先进的精度,几乎达到了人类水平的性能。

Maggiori 等人设计了一种受偏微分方程启发的迭代增强过程,表示为循环神经网络卫星图像标注和定位,从而提高卫星图像分类图的质量; http://ieeexplore.ieee.org/abstract/document/7938635/。这解决了 CNN 架构中的问题;他们擅长识别,但不擅长精确定位物体。

4.9 新闻和公司

以下是需要关注的新闻和公司:

  • Cargometrics ( www.cargometrics.com/ )是一家初创公司,通过深度学习算法使用甚高频无线电跟踪以及卫星图像处理来分析海上交通数据,以帮助预测商品价格。它追踪全球 12 万艘船只的动向。这项工作被对冲基金用来识别定价和证券机会。
  • Terrapattern ( www.terrapattern.com/ )使用 DL 对未标记的卫星照片执行基于相似性的搜索。它通过实例为可视化查询提供了一个开放的接口。用户点击 Terrapattern 地图上的一个点,它会找到其他看起来相似的位置。
  • Vicarious ( https://www.vicarious.com/ )是一家从事图像处理的初创公司,正在开发用于视觉、语言和运动控制的深度学习算法。它主要关注视觉感知问题,如识别、分割和场景解析。Vicarious 声称,在部署生成概率模型时,其系统需要的训练数据比传统的机器学习技术少几个数量级。受生物学的启发,它声称已经设计出了具有想象能力的算法。
  • Affectiva ( https://www.affectiva.com/ )使用计算机视觉算法来捕捉和识别对视觉刺激的情绪反应。
  • 笛卡尔实验室( https://www.descarteslabs.com/ )正在基于深度学习和先进的遥感算法,教计算机如何看待世界以及世界如何随着时间的推移而变化。他们的第一个应用是使用大量可见和不可见光谱的卫星图像,以更好地了解全球作物产量。Skymind 分析媒体、图像和声音,以定位和量化影响业务的模式。
  • Salesforce 收购的 MetaMind ( https://einstein.ai/ )正在建立一个人工智能平台,用于自然语言处理、图像理解和知识库分析。该公司为医疗成像、食品识别和定制解决方案提供产品。
  • Magic Poney(已被 Twitter 收购)开发了将低分辨率图像提高到高分辨率的技术。通过在网络末端从低分辨率提升到高分辨率,与最先进的 CNN 方法相比,它能够实现 10 倍的速度和性能,使在单个 GPU 上实时运行超分辨率高清视频成为可能。
  • 斯坦福大学 http://sustain.stanford.edu/predicting-poverty 的项目能够结合卫星数据预测贫困。这是机器学习和大数据如何取代昂贵调查的一个显著例子。它将从高分辨率卫星获得的夜间照明关联起来,以估计一些非洲国家的支出和资产财富。卷积神经网络被训练来识别图像特征,这些特征可以解释地方一级经济成果中高达 75%的变化。
  • 斯坦福大学的一个团队设计了一种有趣的方法,通过分析谷歌街景的图像并对街道上停放的汽车的品牌和型号进行分类,来估计一组人口普查数据指标;参见 http://ai.stanford.edu/tgebru/papers/pnas.pdf “利用深度学习和谷歌街景估算美国人口构成”。这可以为美国社区调查(ACS)节省 10 亿美元,ACS 是一项劳动密集型的上门调查,测量与种族、性别、教育、职业、失业等相关的统计数据。该方法通过谷歌街景车在 200 个美国城市收集的 5000 万幅街景图像来确定社会经济趋势。他们能够准确地估计收入、种族、教育和投票模式,并具有单选区的分辨率。例如,如果在一个城市开车 15 分钟遇到的轿车数量高于皮卡数量,这个城市很可能在下一次总统选举中投票给民主党人(88%的可能性);否则,它可能会投票给共和党(82%)。
  • 在“上下文编码器:通过修复进行特征学习”( https://arxiv.org/abs/1604.07379 )中,作者提出了一种基于上下文的像素预测驱动的无监督视觉特征学习算法。与自编码器类似,上下文编码器是一个卷积神经网络,被训练来生成受其周围环境制约的任意图像区域的内容。它使用了对抗性损失,产生了更清晰的结果,因为它可以更好地处理输出中的多种模式。上下文编码器学习不仅捕捉外观而且捕捉视觉结构的语义的表示。火炬中的代码在 https://github.com/pathak22/context-encoder 可用。
  • 初创公司 Twentybn ( https://www.twentybn.com/ )希望教授机器关于世界的常识。它依靠 DL 架构进行视频分析。它发布了 Something-Something(对象交互)和 Jester(手势)数据集,这些数据集代表了人类在现实世界中做出的原始动作,从中你可以学到常识。在 https://www.youtube.com/watch?v=hMcSvEa45Qo 查看演示文稿。

4.10 第三方工具和 API

有许多 API 服务在云中提供图像识别,可以轻松地与现有的应用程序集成,以构建特定的功能或整个业务。它们可以用于检测地标、特定位置或风景,也可以用于过滤掉用户上传的令人不快的个人资料图像。

谷歌云视觉提供了几种图像检测服务,从面部和光学字符识别(文本)到地标和明确的内容检测。

微软认知服务提供了一系列视觉图像识别 API,包括情感、名人和人脸检测。

Clarifai 和 Alchemy 提供计算机视觉 API,帮助公司组织他们的内容,过滤掉不安全的用户生成的图像和视频,并根据观看或拍摄的照片提出购买建议。

谷歌最近的一个项目提供了用于图像中物体检测的预训练模型(在 COCO 数据集上);参见 TensorFlow 中 https://research.googleblog.com/2017/06/supercharge-your-computer-vision-models.html 处的博文和 https://github.com/tensorflow/models/tree/master/object_detection 处的代码。用户可以在本地机器或云中安装代码。有几种型号可供选择,包括:

  • 带 MobileNets 的单次多盒检测器(SSD)
  • 采用 Inception v2 的固态硬盘
  • 基于区域的全卷积网络(R-FCN)
  • 利用 ResNets 101 实现更快的 RCNN
  • 利用 Inception ResNets v2 实现更快的 RCNN

五、自然语言处理和语音

深度学习(DL)对自然语言处理(NLP)产生了巨大的影响。继图像和音频之后,这可能是 DL 释放最大变革力量的领域。例如,斯坦福大学几乎所有与 NLP 相关的项目都涉及到 DL 研究,斯坦福大学是该领域最受尊敬的机构之一。

语言理解是人工智能中最古老的问题之一,也可能是最困难的问题,因为它是非常高维的(任何语言都可以很容易地包含成千上万的单词),因为数据是非常倾斜的(因为 zip 定律分布),因为数据遵循具有微妙结构的语法规则(像否定中的单个单词甚至标点符号都可以改变含义),因为单词的含义交织在文化中的许多层隐含假设中, 最后,因为文本不像图像那样具有明显的时空结构(组合在一起的单词可能不像图像中的像素那样与相同的概念相关)。

然而,随着大量的数据在互联网上变得可用,DL 成为解决与理解人类语言相关的众多问题的自然选择。以下是与 NLP 相关的一些主要问题:

  • 从语法上分析
  • 词性标注
  • 翻译
  • 文本摘要
  • 名称实体识别(NER)
  • 情感分析
  • 问答(会话式)
  • 主题建模
  • 解疑

DL 有助于提高许多困难的 NLP 问题的准确性,特别是在语法分析方面,这是语音和翻译的一部分。然而,即使准确度有所提高,其中一些仍然是一个挑战,该技术还没有准备好完全产品化,就像在无限制的对话中一样。

当在大量数据上训练时,语言 DL 模型紧凑地提取编码在训练数据中的知识。经过电影字幕的训练,语言模型能够生成关于物体颜色或事实的基本答案。最近的带有条件语言模型的序列到序列模型能够解决复杂的任务,例如机器翻译。

尽管更简单的模型,如 n-grams,仅使用前一个单词的短暂历史来预测下一个单词,但它们仍然是语言建模的关键组成部分。事实上,最近对大规模语言模型的研究表明,rnn 与 n-gram 结合得非常好,因为它们可能具有互补的优势。

5.1 解析

句法分析包括将一个句子分解成它的成分(名词、动词、副词等)。)并建立它们之间的语法关系,称为解析树。这是一个复杂的问题,因为可能的分解(见图 5-1 )描述了两种可能的方法来解析一个句子。

例如,句子“Alice 开着她的车在街上行驶”至少有两种可能的依赖分析。第一个对应于(正确的)解释,爱丽丝正在驾驶她的汽车;第二个对应于(荒谬但可能的)解释,街道位于她的汽车里。产生歧义是因为介词 in 既可以修饰 drove,也可以修饰 street。人类消除这些选项歧义的方式是通过常识;我们知道街道无法在汽车中定位。对于融入这个世界的机器来说,信息是非常具有挑战性的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 5-1

Two possible parsings of a sentence

Google 最近推出了 SyntaxNet 来解决解析困难的问题。(代码基于 TensorFlow,可在 GitHub 的 https://github.com/tensorflow/models/tree/master/research/syntaxnet 获得)。)一个 20 到 30 个单词的句子可以有成千上万种句法结构。Google 使用了一个全局标准化的基于转换的神经网络模型,实现了最先进的词性标注、依存解析和句子压缩。该模型是一个简单的前馈神经网络,它在特定任务的转换系统上运行,但达到了与递归模型相当或更好的精度。

使用 SyntaxNet,一个句子由一个前馈神经网络处理,并输出一个可能的句法依赖分布,称为假设。SyntaxNet 使用启发式搜索算法(beam search ),在处理每个单词时运行多个假设,当出现其他更高级别的假设时,只丢弃不太可能的假设。关键的见解是基于标签偏差问题的一个新颖的证明。SyntaxNet 英语语言解析器 Parsey McParseface ( https://research.googleblog.com/2016/05/announcing-syntaxnet-worlds-most.html )被认为是最好的解析器,在某些情况下超过了人类水平的准确性。最近,这项服务已经扩展到 40 种语言。

5.2 分布式表示

NLP 中的核心问题之一与数据的高维性有关,这导致了巨大的搜索空间和语法规则的推断。Hinton [Hin02]是最早提出单词可以通过分布式(密集)表示法来表示的人之一。这个想法首先是由 Bengio [BLPL06]在统计语言建模的背景下提出的。分布式表示的优点是语义可以很容易地被访问,知识可以从不同的领域甚至不同的语言中传递。

对每个单词的分布式(矢量化)表示的学习被称为单词嵌入。Word2vec 是创建单词分布式表示的最流行的方法。这是一个公开可用的库,提供了单词的跳格向量表示的有效实现。该模型和实现基于 Mikolov 的工作[MLS13]。Word2vec 的工作原理是将大型语料库中的每个单词作为输入,将定义窗口中围绕它的其他单词作为输出。然后我们输入一个训练成分类器的神经网络(见图 5-2 )。在训练之后,它将预测每个单词实际出现在焦点单词周围的窗口中的概率。除了实现之外,作者还提供了通过在谷歌新闻数据集(约 1000 亿个单词)上训练该模型而学习到的单词和短语的向量表示。向量可以达到 1000 维,包含 300 万个单词和短语。这些向量表示的一个有趣的特征是,它们捕捉了语言中的线性规律。例如,矢量化单词方程“马德里”——“西班牙”+“法国”的结果是“巴黎”。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 5-2

Left: Representation of a Siamese network behind the Word2vec model. The hidden nodes h1,…,hN contain the vectorized representation of the word. Right: The schematic representation of word2vec using a skip-gram (word W(t) is used to predict context words W(t – 2) … W(t + 2). Here a context window of K = 5 is considered (source: https://stackoverflow.com/questions/30835737/word2vec-data-setup ).

在使用 TFIDF 技巧的单词袋(BOW)之后,Word2vec 可能是 NLP 问题使用最多的方法。这相对容易实现,并且有助于理解单词中隐藏的关系。有一个很好的、有据可查的 Word2vec 的 Python 实现,叫做 Gensim ( https://radimrehurek.com/gensim/models/word2vec.html )。Word2vec 可以与预先训练的向量一起使用,或者在给定大型训练语料库(通常是数百万个文档)的情况下,被训练以从头开始学习嵌入。

Quoc Le 等人[LM14]提出了一种使用与 Word2vec 类似的技术对完整段落进行编码的方法;叫做段落向量。每个段落映射到一个向量,每个单词映射到另一个向量。然后,对段落向量和单词向量进行平均或连接,以预测给定特定上下文的下一个单词。这就像一个记忆单元,从给定的上下文(或者换句话说,段落主题)中回忆起缺失的部分。上下文向量是固定长度的,并且它们是从文本段落上的滑动窗口中采样的。段落向量在从同一段落生成的所有上下文中共享,但是它们不与其他段落共享任何上下文。

Kiros 等人[KZS + 15]引入了使用无监督学习来编码句子的跳过向量的思想。该模型使用递归网络(RNN)来重建给定段落的相邻句子。共享语义和句法属性的句子被映射成相关的向量表示。他们在几项任务中测试了该模型,如语义相似性、图像句子排序、释义检测、问题类型分类、基准情感和主观性数据集。最终的结果是一个可以产生健壮的高度通用的句子表示的编码器。

5.3 知识表示和图表

关于实体及其关系的推理是人工智能中的一个关键问题。通常这样的问题被公式化为对知识的图形结构表示的推理。大多数先前关于知识表示和推理的工作依赖于由命名实体识别(NER)、实体解析和共同引用、关系提取和知识图推理组成的典型流水线。这个过程可能是有效的,但是也可能导致来自每个组件子系统的误差的复合问题。最近关于图嵌入方法的调查见 https://arxiv.org/pdf/1709.07604.pdf

在图中,实体(图的节点)由关系(边)连接,并且实体可以具有由它的关系表示的类型(例如,苏格拉底是哲学家)。

随着关联数据的出现,人们提出在语义网中链接不同的数据集。知识图(knowledge graph)一词是谷歌在 2012 年创造的,指的是它在网络搜索中对语义知识的使用,最近也被用来指代 DBpedia 等其他网络知识库。

知识图(KG)是由实体(节点)及其关系(边)组成的结构化信息的优雅而强大的表示。推荐系统可以被视为一个直接的二分图,其中用户属于一组节点,电影属于另一组节点。排名可以被认为是一条边(因此,是一个加权图),但也可以包括其他类型的边,如用户在电影评论中使用的文本表示或用户分配给电影的标签。

尽管一个典型的 KG 可能包含数百万个实体和数十亿个关系事实(边),但它通常是不完整的(稀疏的)(见图 5-3 )。知识图完成是一项任务,旨在通过使用来自现有已知连接的监督信号预测节点之间的关系来填充该图。目标是找到新的关系事实,或三元组。

这个任务可以看作是对从纯文本中提取关系的补充。知识图完成类似于社会网络分析中的链接预测,但它更具挑战性,原因如下:知识图中的节点是具有不同类型和属性的实体,而 KG 中的边是不同类型的关系(不仅仅是开关连接)。通过测量两个节点之间是否存在关系以及关系的具体类型来评估 KG 算法的质量。

DBpedia 和 Freebase 是广泛和著名的 KG 数据库的例子。Freebase 包含大约 30 亿个事实(边),涉及大约 5000 万个节点(实体)。大多数抓取和分类网页的公司都有基于 KGs 的产品,包括 Wolfram Alpha、Google 和百度。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 5-3

An example of a knowledge graph (source: https://github.com/aaasen/kapok )

知识图嵌入连续向量空间是一种受神经网络启发的技术,已被证明非常有用。有几种方法:TransE [BUGD + 13,GBWB13]和 TransH [WZFC14]是简单有效的方法。TransE 受到 Mikolov [BUGD + 13]工作的启发,学习实体和关系的矢量嵌入。TransE 背后的基本思想是,两个实体之间的关系对应于一个实体嵌入之间的平移,即当(h,r,t)成立时(见图 5-4 )。因为 TransE 在建模 1 对 N、N 对 1 和 N 对 N 关系时存在问题,所以 TransH 被提议在涉及各种关系时启用具有不同表示的实体。TransE 和 trans 都假设实体和关系嵌入在同一个空间中。

由 R. Socher 提出的神经张量网络(NTNs) 更具表达性,因为它们将实体和关系表示为张量,但是计算量更大,并且与更简单的方法相比在性能上没有显示出太大的改进。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 5-4

Idea behind TransE model (head, relation, tail)

通常有三种方法来比较这些方法:实体预测、关系类型预测和三元预测。前两个是根据等级和前 N 名的表现(通常 N= 1 和 N=10)来评估的。最后一个是基于模型表现的分类问题,区分真实关系和随机关系。

KG completion 有几个应用,即在 Cortana 和 Google Now 等个人助理中。这些技术可以帮助回答自然语言问题,比如“哪个作者写的书 A 是从 X 自然而来的?”谷歌最近推出了一个 API 来查询其 KG ( https://developers.google.com/knowledge-graph )。随着 Freebase 在 2014 年 12 月的关闭,Knowledge Graph API 允许用户使用标准模式类型找到驻留在 Google Knowledge Graph 中的实体。结果以 JSON 格式返回。

巫昂等人最近的一项工作[WWY15]使用了一种叫做 RCNET 的方法,能够用与理解智商测试问题相关的复杂文本击败人类。他们测试了几种类型的问题。

类比:等温线对于温度就像等压线对于?

  1. 空气
  2. 纬度
  3. 目前的

类比二:找出两个单词(每组括号中一个)与大写单词配对时形成连接。

  1. 章节(书、诗、阅读)
  2. 表演(舞台、观众、戏剧)

分类:哪一个是特别的?

  1. 平静
  2. 放松的
  3. 安详的
  4. 平静的

同义词:哪个词最接近无理数?

  1. 不妥协的人
  2. 不可救药的
  3. 危险的
  4. 遗失
  5. 荒谬的

反义词:哪个词和音乐剧最对立?

  1. 不一致的
  2. 大声地
  3. 感情丰富的
  4. 动词的
  5. 悦耳的

这些都是具有挑战性的任务,因为这些词有多种定义,它们之间的关系也很复杂。为了应对这些挑战,作者使用了一个框架,通过联合考虑单词的多义性和单词之间的关系信息来改善单词嵌入(见图 5-5 )。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 5-5

RCNET for IQ test (source: [WWY15])

变分图自编码器(VGAE) ( https://arxiv.org/pdf/1611.07308.pdf )是一个基于变分自编码器(VAE)的无监督学习和链接预测框架。作者使用潜在变量来学习无向图的可解释表示。使用图卷积网络(GCN)编码器和内积解码器,他们在引用网络的链接预测上取得了与 DeepWalk 模型的谱聚类相比的竞争性结果。该模型可以自然地结合节点特征,从而提高预测性能。TensorFlow 实现在 https://github.com/tkipf/gae 可用。

最近 Bansal 等人提出了一种用于问答任务的端到端方法,直接将文本中的实体和关系建模为内存槽。他们不依赖任何外部的 KG,而是认为所有的信息都包含在文本中,这意味着基于记忆的语言理解神经网络模型[SsWF15]。Munkhdalai 等人提出了 RelNet,它用关系存储器扩展了存储器增强的神经网络,以便用存储器增强的神经网络来推理文本推理中存在的多个实体之间的关系( http://arxiv.org/abs/1610.06454 )。这是一种端到端的方法,可以读写内存插槽和边缘。内存槽对应于实体,边对应于实体之间的关系,每个实体表示为一个向量。唯一的监督信号来自于对课文的答题。

5.4 自然语言翻译

自 20 世纪 50 年代人工智能出现以来,自然语言翻译一直是一个难以令人满意解决的难题。传统的 DNNs 在处理这个问题时有一些限制,例如要求输入和目标应该用固定维数的向量编码。对于任意长度的序列,这是一个严重的限制。此外,虽然某些任务(如文档分类)可以使用忽略词序的词袋表示法成功执行,但词序在翻译中至关重要。句子“被肆虐的病毒杀死的科学家”和“被肆虐的科学家杀死的病毒”具有相同的单词袋表示。

翻译的质量用 BLEU 来衡量;它是介于 1 和某个上限(通常为 4)之间的所有 n 值的 n 元语法精度的几何平均值。因为通过提供过短的翻译可以提高精确度,所以 BLEU 分数也包括了简短的惩罚。

与传统的统计机器翻译不同,DNNs 通常使用单个神经网络来联合表示两种语言的分布,并最大化翻译分数。大多数模型使用编码器-解码器的方案将源句子编码成固定长度的向量,解码器从该向量生成相应的翻译。

具有 LSTM 单位的 RNNs 是处理输入序列并将其压缩成大的固定维向量的自然选择。这个向量后来被另一个 LSTM 用来提取输出序列。第二 LSTM 本质上是循环神经网络语言模型,除了它以输入序列为条件。由于输入和相应的输出之间可能出现大的时间滞后,LSTM 成功学习具有长期时间相关性的数据的能力使其成为该任务的自然选择。

Sutskever 等人[SVL14]使用具有长短期记忆(LSTM)单元的 RNNs 在 2014 年实现了传统的基于短语的机器翻译系统在英语到法语翻译任务中的最先进性能。该网络由编码模型(第一 LSTM)和解码模型(第二 LSTM)组成。他们使用没有动量的随机梯度下降,在前五个时期之后,每个时期将学习率减半两次。该方法获得了 34.81 的 BLEU 分数,优于以前最好的神经网络 NLP 系统,并与非神经网络方法的最佳公布结果相匹配,包括具有显式编程的领域专业知识的系统。当他们的系统被用于重新排列来自另一个系统的候选翻译时,它获得了 36.5 的 BLEU 分数。

实现涉及八个 GPU,培训需要十天才能完成。LSTM 的每一层都分配了一个 GPU,另外四个 GPU 仅用于计算 softmax。实现是用 C++编写的,LSTM 的每个隐藏层包含 1000 个节点。输入词汇包含 160,000 个单词,输出词汇包含 80,000 个单词。权重在–0.08 和 0.08 之间的范围内均匀随机初始化。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 5-6

BLEU score accuracy for translation using sequence to sequence as a function of the sentence length. Note the stability of model for long sentences (source: [BCB14]).

Bahdanau 等人[BCB14]使用可变长度编码机制和自编码器,在英语到法语的翻译任务中实现了与现有的最先进的基于短语的系统相当的翻译性能(图 5-6 )。(预复杂度是概率倒数的加权几何平均值。)

)

最近,谷歌团队公布了一份详细的文件,解释了其于 2016 年 11 月投入生产的新谷歌机器翻译算法。它依赖于传统的编码器-解码器架构,使用具有注意机制的双向堆叠 LSTMs 并在字符级工作。它是在 TensorFlow 中实现的,该团队声称它几乎可以匹配人类在几种语言翻译中的表现,如英语到法语或西班牙语或汉语,甚至是很长的句子。唯一的缺点是,它只能翻译单句,因此无法将整个文档放在上下文中。参见原论文《谷歌的神经机器翻译系统:弥合人类与机器翻译的鸿沟》( https://arxiv.org/pdf/1609.08144.pdf )。

2017 年 9 月,谷歌提出了 Transformer ( https://research.googleblog.com/2017/08/transformer-novel-neural-network.html?m=1 ),这是一种新型的递归网络架构,在学术英语到德语和英语到法语的翻译基准上,它优于传统的递归和卷积模型。Transformer 需要更少的计算来训练,更适合机器学习硬件,将训练速度提高了一个数量级。参见图 5-7 和图 5-8 ,它们是针对人类的基准模型。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 5-8

Translation quality of Google language translation using sequence-to-sequence model (source: https://research.googleblog.com/2016/09/a-neural-network-for-machine.html )

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 5-7

BLEU score accuracy for translation using transformer architecture (source: https://research.googleblog.com/2017/08/transformer-novel-neural-network.html?m=1 )

5.5 其他应用

社交网站、博客和评论网站的激增提供了大量的信息,其规模在几年前是不可想象的。数百万人对从电影和书籍到照片和政党的一切事物发表意见。在过去,这种反馈几乎被忽略,但现在公司已经意识到这些意见和评论在产品开发、客户关怀和客户参与方面的重要性。情感分析(SA)的任务是理解这些信息并将其分类成易于阅读的见解。最基本的情况是分为积极或消极的分类。SA 通常涉及命名实体识别和情感类型(积极、消极或中性),通常用图形表示。

然而,情感很少是明确的积极或消极的,而是关于各种特性的观点的混合。考虑一下评论“我喜欢 XXX 的多媒体功能,但电池寿命很差。”对多媒体功能的看法是正面的,而对电池寿命的看法是负面的。具体特征和观点之间的关联可以通过词之间的短程和长程依赖性来捕捉。在图上使用聚类来仅检索那些与目标特征(用户指定的特征)最相关的意见表达,其余的被删减。

自然语言阅读能力,比如能够回答给定文本的问题,已经被证明对机器来说是困难的。赫尔曼等人【HKG + 15】引入了一种新的可区分注意力机制,允许神经网络专注于输入的不同部分。这些作者提出了两个新的语料库,包含大约一百万个新闻故事以及来自 CNN 和 Daily Mail 网站的相关查询。受[SVL14]的启发,他们使用带有注意力机制的 RNN 来回答关于文本的开放式问题,并在文本中最常见的十个实体中取得了大约 85%的正确结果。Bahdanau 等人成功地将这个想法的一个优雅的变体应用于机器翻译。

张等人[ZCSG16]使用字符级时态卷积网络来抽象文本概念。诀窍是使用一个特殊的池模块,允许训练一个超过六层的网络。他们将其应用于大规模数据集,包括本体分类、情感分析和文本分类,并实现了比其他基线高得多的性能,即使没有单词、短语、句子和任何其他关于人类语言(无论是英语还是汉语)的句法或语义结构的知识。

Ghosh [GVS + 16]使用了上下文 LSTM (CLSTM),这是循环神经网络 LSTM 模型的一种扩展,它将上下文特征(例如,主题)融入到模型中,以显著改善单词预测、下一句选择和句子主题预测。他们在两个语料库中进行了测试:维基百科中的英文文档和英文谷歌新闻的子集。在下一个句子的选择任务中,他们的相对准确率比 LSTM 提高了 21%。

OpenAI 团队最近的一项工作( https://arxiv.org/pdf/1704.01444.pdf )展示了一种使用 LSTM 进行情感分析的有趣方法。他们表明,在亚马逊评论数据集上训练 LSTM 预测下一个字符足以学习复杂而有用的数据表示。具体来说,他们发现在用于情感分析的网络中使用单个神经元单元就足以在斯坦福情感树库的二进制子集上获得最先进的结果。

5.6 多模式学习和问答

计算机视觉和 NLP 正变得越来越交织在一起。例如,字幕生成比图像分类或对象识别要困难得多。标题应该捕捉图像中的对象,但也必须表达它们或动作之间的关系。最近的一项工作开创了自动生成图像开放式语言描述的先河[VTBE14]。Vinyals 等人引入了一个端到端的神经网络模型,该神经网络由一个处理图像的 CNN 和一个生成语言的 RNN 组成。它从输入图像中生成自然语言的完整句子。参见展示和讲述:一个神经图像字幕生成器[VTBE14]。他们在 Flickr 和 COCO 数据集上取得了接近人类的 BLEU 分数。

此外,最近的自然语言处理方法通过将语言根植于视觉世界来学习语言的语义。图像和词语之间的关系类似于词语之间的上位词关系和短语之间的文本蕴涵。你可以把标题看作是图像的抽象。解决上位词、蕴涵和图像标题问题的最新方法包括从单词或图像构建分布式表示或嵌入。这是一种强大的方法,其中相似的实体被映射到高维嵌入空间中的相邻点。一些度量,通常是余弦,用于比较和检索文本中的图像,反之亦然。

Vendrov 等人[VKFU15]提出了一种称为顺序嵌入的方法,通过学习视觉语义层次和嵌入空间上的偏序之间的不保持距离但保持顺序的映射,来利用视觉语义层次的偏序结构。他们表明,顺序嵌入为上义关系预测和字幕图像检索提供了最先进的结果,并且还在自然语言推理方面提供了非常好的性能。他们在微软 COCO 数据集上进行了测试,该数据集包含超过 120,000 张图像,每张图像至少有五个人类注释的说明。他们在字幕检索中分别获得了 23.3%和 65.0%的前一名/前十名准确率,在图像检索中获得了 18.0%和 57.6%的准确率。

5.7 语音识别

自动语音识别(ASR)指的是将语音翻译成文本的问题。这是机器学习中的一个老问题,被证明很难通过依赖马尔可夫链过程的传统技术来解决。

这个问题的参考基准是数据集 Switchboard 和 TIMIT。TIMIT 包含了美国英语八种主要方言的 630 名使用者的宽带录音,每个人朗读十个语音丰富的句子。TIMIT 语料库包括时间对齐的拼写、语音和单词转写,以及每个话语的 16 位、16kHz 语音波形文件。

深度信任网络(DBNs)在 TIMIT 数据集上的首次应用达到了大约 23%的准确率;www.cs.toronto.edu/asamir/papers/NIPS09.pdf见。但是,在最后一层使用后正则化 DBN 时,最先进的精度为 16.5%;https://www.researchgate.net/profile/Jan_Vanek/publication/320038040见。准确率如此之高,以至于很多移动应用完全依赖语音。

Graves 等人[AG13]率先使用深度双向 LSTM 解决这个问题,在 TIMIT 数据库中实现了 17.7%的错误率。他们应用了一种端到端的方法,通过循环神经网络进行区分性序列转录。这些方法不需要任何对齐来预分割声学数据,因为它们直接优化了以输入序列为条件的目标序列的概率,并且能够从声学训练数据中学习隐式语言模型。

百度的一个团队最近提出了一个将语音翻译成文本的 ASR 模型[AOS + 16]。该算法性能的提高是由于深度学习用单个神经模型代替了特征提取模块。该系统被称为 Deep Speech 2,在几种语言中接近人类的准确性。该系统建立在端到端深度学习的基础上,使用在干净和噪声环境中训练的双向 RNN。在英语中,语音系统被训练了 11,940 小时的语音,而在普通话中,它被训练了 9,400 小时。数据合成用于在训练期间扩充数据。在这种规模下训练一个模型需要数十亿次浮点运算,这需要三到六周的时间才能在一个 GPU 上执行。

2017 年 8 月,微软推出了一种新的算法,将 Switchboard 的错误率降至 5.1%,switch board 是一种广泛用于行业的语音转录准确性标准测试。相比之下,一个人类转录员的平均错误率为 5.9%。它结合使用了 CNN 和双向 LSTM。 https://arxiv.org/abs/1708.06073

然而,根据 Temple 的一项研究,在依赖语音的个人助理的准确性方面,谷歌处于领先地位。参见图 5-9 。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 5-9

Accuracy of several personal assistants (source: http://uk.businessinsider.com/siri-vs-google-assistant-cortana-alexa-knowledge-study-chart-2017-6?r=US%20IR=T )

Deepmind 发布了 WaveNet ( https://deepmind.com/blog/wavenet-launches-google-assistant/ ),这是一款用于语音合成的产品——这种过程通常被称为语音合成或文本到语音(TTS)——质量非凡。传统的模型依赖于拼接的 TTS,其中从单个说话者记录非常大的短语音片段数据库,然后重新组合以形成完整的话语。WaveNet 一次一个样本地直接模拟音频信号的原始波形,产生听起来更自然的语音。WaveNet 可以模拟任何类型的音频,包括音乐。

5.8 新闻和资源

这里有一些资源给你:

  • 位于 https://github.com/andrewt3000/DL4NLP 的 GitHub 页面包含一些很好的参考资料,可以通过深度学习技术来了解 NLP,比如分布式表示和对话机器人。
  • 脸书的语言技术团队是 Applied ML 的一部分,也是《福布斯》杂志最近披露其各种计划的主题。该团队最近发布了他们的文本理解引擎 DeepText ( https://code.facebook.com/posts/181565595577955/introducing-deeptext-facebook-s-text-understanding-engine/ ),它能够理解超过 20 种语言的情感、意图和实体。脸书还建立了一个新的多语言作曲家,使脸书网页上的帖子的作者能够使用自动机器翻译达到其他语言的受众。
  • Google 团队最近的一篇博文( https://research.googleblog.com/2016/08/text-summarization-with-tensorflow.html )详细解释了一种使用 TensorFlow 进行文本摘要的方法。作者达到了最先进的性能,代码是开源的。
  • Matthew Honnibal 维护一个 GitHub 知识库( https://github.com/explosion/spaCy/tree/master/examples/keras_parikh_entailment ),它是一个用于自然语言推理的可分解注意力模型。它是使用 Keras 和 spaCy 实现的,旨在比较两个文档。代码是干净的,并且依赖于预训练的手套字嵌入和具有 ab 注意机制的双向 GRU。实现细节在 https://explosion.ai/blog/deep-learning-formula-nlp 的博文中有解释。
  • Spnis 筹集了1300 万美元来创建一个语音助手平台来搜索和购买产品,作为谷歌和亚马逊的替代品。Snips 声称其自然语言技术的准确性超过了脸书的 Wit.ai、谷歌的 API.ai 和微软的 Luis。该平台支持五种语言:法语、英语、西班牙语、德语和韩语
  • 位于 www.wildml.com/2016/01/attention-and-memory-in-deep-learning-and-nlp/ 的博客文章很好地概述了有记忆神经网络的注意机制。
  • 在最近的一篇论文( https://arxiv.org/abs/1611.01599 )中,作者提出 LipNet 是一种能够阅读人类嘴唇并猜测他们窃窃私语内容的网络,准确率为 93.4%,而人类的准确率为 52.3%。
  • 微软提出了一种用于语音识别的算法( https://arxiv.org/abs/1609.03528 ),在 Switchboard 数据集上实现了 5.8%的 SOTA 性能,比人类低 0.1%。作者使用了基于递归和卷积神经网络的巧妙架构。
  • https://github.com/tensorflow/nmt 的教程给读者一个完整的序列到序列(seq2seq)模型的理解,以及如何从头开始建立一个。它专注于神经机器翻译(NMT)的任务,这是 seq2seq 模型的第一个测试床,取得了巨大的成功。包含的代码是轻量级的、高质量的、生产就绪的,并且结合了最新的研究思想。
  • 将自然语言处理应用于商业的先驱之一是贝克·霍斯特勒( https://www.bakerlaw.com/ )。人工智能助理罗斯是第一个基于 IBM 认知计算机沃森的人工智能律师。它旨在阅读和理解语言,产生假设,并制定回应(以及参考和引用)来支持结论。
  • Google Tacotron 2 ( https://research.googleblog.com/2017/12/tacotron-2-generating-human-like-speech.html )最近的一个项目使用了 DL 技术的组合(包括 Wavenet 和 LSTMs)来解决文本到语音(TTS)的问题。生成的样本质量非常优秀,合成的语音几乎与真实的人类无法区分。

5.9 总结和展望

尽管取得了进步,但理解语言和拥有一个能够进行有意义对话的代理是 GAI 最困难的问题,在目前的 DL 环境下可能无法解决。约翰·塞尔在他的《中国房间》一文中的批评是有道理的。加里·马库斯在他的《纽约客》专栏中的论点( www.newyorker.com/contributors/gary-marcus )也非常中肯。也许我们需要一个不同的范例,因为所有的 DL 方法基本上都是统计模式匹配。例如,语言翻译可以理解为符号到符号的模式匹配吗?如果没有“自我”意识和对人类基本行为的理解,我们能建造一个对话机器人吗?

语言并不是一个不可能解决的问题,但可能人类如此容易消除语言意义歧义的原因是因为我们依赖于一个非常大的关于世界和我们自己的显性和隐性假设,我们可以据此轻松提取“意义”。这些假设可能被框定为 ML,但是我们需要一种新类型的目标函数,并在这些算法中创建持久感和“自我”感。

要做到这一点,我们需要一个新的学习范式,不是来自外部数据源,而是由代理决定什么是“外部”和“内部”。这可能需要一些我们已经有的工具,比如无监督的概念理解,但是需要一个重要的组成部分:社会互动。只有当机器进化成自己的社会,并发展出某种基本的主体间性意识时,完全有意义的对话才有可能;关于这一点,见 www.princeton.edu/graziano/

六、强化学习和机器人技术

由于深度学习[GBC16]受益于大数据、强大计算和新算法技术的最新成就,我们一直在见证强化学习的复兴,特别是强化学习和深度神经网络的结合,即所谓的深度强化学习(deep RL)。深度 Q 网络(dqn)通过让机器在雅达利游戏和非常艰难的围棋棋盘游戏中实现超人的表现,点燃了深度 RL [MKS + 15]的领域。

众所周知,当用非线性函数(如神经网络)逼近动作值 Q 函数时,RL 是不稳定的。然而,DQNs 在提高学习的稳定性方面做出了一些贡献。

  • DQNs 使用带重放的 CNN 稳定了 Q-动作值函数近似的训练。
  • DQNs 使用端到端 RL 方法,仅将原始像素和游戏分数作为输入。
  • DQNs 使用具有相同算法、网络架构和超参数的灵活网络来玩不同的 Atari 游戏。

以下是 RL 的一些最新进展和架构:

6.1 什么是强化学习?

强化学习解决的是顺序决策问题,即在获得奖励之前需要几个步骤的问题,比如电子游戏。RL 代理通常会随着时间的推移与环境交互并改变它,因此它们在移动的背景下工作并追逐移动的目标。

在每个时间步 t,代理处于状态 s t 并遵循策略)从某个动作空间 A 中选择动作 a t ,这是代理的行为,换句话说,是从状态 s t 到动作 a t 的映射。它接收奖励 r t ,并且根据环境动态或模型,分别对于给定的奖励函数 R(s,a)和状态转移概率),移动到下一个状态)。

价值函数是对预期的、累积的、贴现的、未来的回报的预测,衡量每个状态或状态-行动对有多好。这里,动作值是在状态 s 下选择动作 a,然后遵循策略π:

(6.1)

最佳动作值函数 Q* (s,a)是状态 s 和动作 a 的任何策略可实现的最大动作值。您可以类似地定义状态值 V π (s)和最佳状态值 V*(s)。时间差异学习是强化学习的一个中心思想。它通过自举,以无模型、在线和完全增量的方式,直接从具有 TD 误差的经验中学习价值函数 V(s)。更新后的规则如下:

(6.2)

这里,α是学习率,γ是折现因子,)是 TD 误差。

类似地,Q-learning 用更新规则学习动作值函数,这里显示:

(6.3)

Q-learning 是一种与 SARSA 相反的非策略控制方法,SARSA 代表状态、行动、奖励、(下一个)状态、(下一个)行动。这是一种基于策略的控制方法,具有更新规则。

(6.4)

SARSA 在行动价值方面贪婪地提炼策略。

6.2 传统 RL

传统控制理论中的强化学习可以被构造如下:假设一个智能体位于一个复杂多变的环境中(例如,一个突围游戏)。在每个时间步,环境处于给定的状态(例如,球拍的位置、球的方向、砖块的位置等)。).代理能够实现环境中的许多动作并改变它们(例如,移动桨)。这些行为可能会导致奖励或惩罚,有些行为可能会改变环境并导致一种新的状态,在这种状态下,代理可以执行一组新的行为。选择这些操作的规则由策略指定。一般来说,环境是随机的,这意味着下一个状态将有一个小的随机成分(例如,如果你发射一个球,它可能会朝着随机的方向)。这种情况的特点是具有可观察或不可观察(隐藏)状态的马尔可夫决策过程(MDP)(见图 6-1 )。

在这种情况下,RL 表示为一个迭代方程,称为贝尔曼方程。

)

这里,s 是状态,a 是可能的行动,F 是当代理人改变到一个新的状态 t 时的收益,代理人试图找到一组行动,使收益随着时间的推移而最大化。

强化 DL 的最终目标是创建一个通用的表示学习框架,其中给定一个目标,用最少的领域知识直接从原始输入中学习实现该目标所需的表示。深度学习 RL 在玩游戏(如围棋和视频游戏)、探索世界(3D 世界和迷宫)、控制物理系统(操纵物体、行走、游泳)和进行用户交互(推荐算法、优化、个性化)方面取得了成功。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 6-1

Markovian states in a traditional reinforcement learning problem

一个 RL 代理通常包括以下组件:策略(代理的行为函数)、价值函数(每个状态和/或动作有多好)和模型(代理对环境的表示)(见图 6-1 )。一个策略,或者代理的行为,基本上是从内部状态到动作的映射。它可以是确定性的,如π(s),也可以是随机性的,如

DNNs 可以用来表示世界的价值函数、政策、模型等所有组成部分,损失函数可以通过随机梯度下降得到。

价值函数是对状态 s 中行动 a 的未来回报的预测。Q 值函数给出了状态 s 和行动 a 在政策π下的预期总回报,贴现因子为γ。

折扣系数只是一种传播延迟回报的方式(见图 6-2 )。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 6-2

Learning: adapting policy

6.3 DNN 用于强化学习

策略梯度算法通常用于具有连续动作空间的 RL 问题。这些算法通过将策略表示为概率分布来工作,该概率分布根据表示模型参数的向量θ在状态空间 s 中随机选择一组动作 a。策略梯度算法通过对该策略进行采样并调整参数以最大化累积回报来进化。

2014 年,西尔弗推出了确定性政策梯度(DPG),这是一种高效估计政策梯度的算法,后来扩展到深度神经网络( http://proceedings.mlr.press/v32/silver14.pdf )。DPG 被公式化为动作-值函数的期望梯度(它将动作和状态合并到单个表示中)。通过这种方式,可以比通常的随机政策梯度更有效地估计 DPG。

引导政策搜索(GPS)是由 Levine [LFDA16]提出的。GPS 利用以轨迹为中心的 RL 提供的训练数据,将策略搜索转换为监督学习。GPS 在以轨迹为中心的 RL 和监督学习之间交替,并利用预训练来减少训练视觉运动策略的经验数据量。在一系列需要定位、视觉跟踪和处理复杂接触动力学的现实世界操作任务中取得了良好的性能。作者声称“这是第一种可以通过直接扭矩控制训练复杂、高维操纵技能的深度视觉运动策略的方法”。

6.3.1 决定性政策梯度

Silver 为具有连续作用空间的 RL 问题引入了 DPG 算法。确定性策略梯度是动作值函数的期望梯度,其在状态空间上积分;而在随机情况下,政策梯度在状态空间和行动空间上整合。因此,可以比随机政策梯度更有效地估计确定性政策梯度。

作者引入了一种脱离策略的行动者-批评家算法,以从探索性行为策略中学习确定性目标策略,并使用确定性策略梯度的兼容函数近似来确保无偏的策略梯度。实证结果表明,它在几个问题上优于随机策略梯度,特别是在高维任务中:一个高维土匪;具有低维动作空间的山地车和钟摆以及 2D 水坑世界的标准基准 RL 任务;控制具有高维动作空间的章鱼手臂。实验是用瓦片编码和线性函数逼近器进行的。

6.3.2 深度确定性政策梯度

尽管 DQN 算法能够解决高维观察空间的问题,但它是为处理离散的低维动作空间而设计的。然而,大多数控制任务处理的是连续的高维空间。Lillicrap 等人提出了一种无模型、脱离策略的行动者-批评家算法,该算法使用函数逼近器,可以在高维、连续的动作空间中学习策略。他们在行动者-批评家方法中使用批量标准化,并依赖于 DQN 之前的两项创新:用重播样本训练网络偏离策略以最小化相关性,用目标 Q-网络训练网络以在时间差备份期间提供一致的目标。

在“深度强化学习的异步方法”( https://arxiv.org/abs/1602.01783 )中,作者通过扩展 DQN 算法,提出了一种在连续动作空间中的行动者-批评者、无模型、深度确定性策略梯度(DDPG)算法。行动者-批评家避免在每个时间步优化行动,以获得如 Q-learning 中的贪婪策略,这将使其在具有大函数逼近器的复杂行动空间中不可行,如深度神经网络。

DDPG 算法通过将从噪声过程采样的噪声添加到行动者策略,基于来自探索策略的经验来学习行动者策略。在 MuJoCo 环境中,使用相同的学习算法、网络架构和超参数解决了 20 多个不同难度的模拟物理任务。DDPG 算法可以用比 DQN 少 20 倍的经验步骤来解决问题,尽管它仍然需要大量的训练集来找到解决方案,就像大多数无模型 RL 方法一样。它是端到端的,以原始像素作为输入。

深度 Q 学习

深度 Q-learning 是一种无模型的强化学习算法,用于在控制任务(如玩 Atari 游戏)上训练深度神经网络。q 学习算法与基于策略的算法略有不同。

与试图学习将观察直接映射到动作的函数的策略梯度方法不同,Q-学习试图学习处于给定状态 s 并在那里采取特定动作 a 的值。它将动作和状态组合成一个单一的表示。虽然这两种方法都引导代理人获得有效的奖励,但是他们如何获得最佳行动的过程是不同的(见图 6-3 )。

在 Q-learning 中,训练一个深度网络来逼近最优行动值函数 Q(s,a),这是在状态 s 中采取行动 a 然后最优选择未来行动的预期长期累积回报。这可能是一个相当复杂的映射,但只要你提供足够的训练数据,网络就会学习它。

请记住,无模型强化学习算法直接学习控制策略,而无需显式建立环境模型(奖励和状态转移分布),而基于模型的算法学习环境模型,并使用它来通过规划选择行动。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 6-3

Deep Q-learning algorithm

Q(s,a)表示在游戏或一组任务结束时来自一个状态 s 的最佳可能分数。Q 指的是在给定状态下某个动作的“质量”。

Q 学习的主要思想是你可以用贝尔曼方程迭代地逼近 Q 函数。在最简单的情况下,Q 函数被实现为一个表,状态作为行,动作作为列。图 6-4 显示了 DQN 的伪代码。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 6-4

Deep Q-network, adapted from https://arxiv.org/pdf/1701.07274.pdf

DeepMind 在一个由 3000 万对人类围棋棋手组成的数据集上使用了 Q 学习方法,然后用强化学习来改进这个神经网络,并与自己对弈。它通过使用监督学习数据来训练第二个网络,增加了蒙特卡罗树搜索(MCTS),第二个网络的评估速度要快得多,称为部署网络。完整的策略网络只使用一次,以获得对一步棋有多好的初步估计,然后使用更快的推出策略来选择更多需要的移动,以在 MCTS 推出中结束游戏。这使得模拟中的移动选择比随机选择更好,但足够快以获得 MCTS 的好处。

第三个技巧是,DeepMind 训练了一个神经网络来预测什么是好棋,另一个神经网络来评估每个围棋位置。DeepMind 使用已经训练好的高质量政策网络来生成该游戏中的立场和最终结果的数据集,并训练一个价值网络,该网络根据从该立场赢得游戏的总体概率来评估一个立场。因此,政策网络建议评估有前途的举措,然后通过 MCTS 推广(使用推广网络)和价值网络预测的组合来完成,结果证明这比单独使用任何一种都好得多。AlphaGo 在 48 个 CPU 和 8 个 GPU 上运行,神经网络计算是并行进行的。

要了解更多关于 Deep RL 的内容,请参见关于 Q-learning 的有趣教程 https://www.nervanasys.com/demystifying-deep-reinforcement-learning/ ,或者参见 TensorFlow 中的 https://medium.com/@awjuliani/simple-reinforcement-learning-with-tensorflow-part-0-q-learning-with-tables-and-neural-networks-d195264329d0

6.3.4 演员-评论家算法

演员-评论家算法(A3C)是由谷歌的 DeepMind group 在 2016 年发布的,它使 DQN 过时了。它更快、更简单、更健壮,并且能够在标准的深度强化学习任务上取得更好的成绩。最重要的是,它可以在连续和离散的动作空间中工作。鉴于此,它已经成为事实上的深度 RL 算法,用于解决具有复杂状态和动作空间的新的挑战性问题。OpenAI 刚刚发布了一个版本的 A3C 作为其“通用启动代理”,用于与新的(非常多样化的)宇宙环境一起工作(见图 6-5 )。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 6-5

Actor-critic architecture (source: https://medium.com/emergent-future/simple-reinforcement-learning-with-tensorflow-part-8-asynchronous-actor-critic-agents-a3c-c88f72a5e9f2 )

不像 DQN,单个智能体由与单个环境交互的单个神经网络表示,A3C 使用多个智能体来更有效地学习。在 A3C 中,有一个全局网络和多个工作代理,每个工作代理都有自己的一组网络参数(见图 6-6 )。在其他代理与其环境交互的同时,这些代理中的每一个都与其自己的环境副本进行交互。这比只有一个代理更有效的原因是每个代理的经验独立于其他代理的经验。通过这种方式,可用于培训的总体经验变得更加多样化。

接下来是每个 actor-learner 线程的异步优势 actor-critic 的伪代码。A3C 维护一个策略)和一个价值函数 V(s t 的估计;θ v ,在每次 t max 动作或达到终端状态后,在正向视图中用 n 步返回进行更新,类似于使用小批量。梯度更新可以被视为),其中)是优势函数的估计,k 由 t max 上界。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 6-6

A3C, each actor-learner thread, based on [MBM+16]

Actor-critic 结合了价值迭代法(Q-learning)和策略迭代法(策略梯度)的优点。A3C 估计一个价值函数 V (s)(某个状态有多好)和一个策略π(s),后者是网络顶部每个全连接层的一组动作概率输出。关键的是,代理使用价值评估(批评家)来更有效地更新策略(执行者)。

使用优势估计而不仅仅是贴现回报的观点是允许代理人不仅确定其行为有多好,而且确定它们比预期好多少。直观地说,这使得算法可以专注于网络预测缺失的地方。

)

由于您不会直接在 A3C 中确定 Q 值,因此您可以使用贴现收益®作为 Q(s,a)的估计值,以便生成优势的估计值。

6.4 机器人和控制

机器人可能仍然是人工智能应用程序最明显的选择。现实总是落后于好莱坞大肆宣扬的世界末日杀手机器人。然而,DL 带来了一套完整的新工具包,来帮助解决一些与机器人相关的复杂任务,如移动、抓取、对象操纵以及传感器数据处理。这一节回顾一些最近的突破和应用。

机器人学中最重要的任务之一是物体抓取。平托和古普塔提出了一种方法,在不依赖人类标记的数据集的情况下,在抓取物体的硬任务上对机器人(巴克斯特)进行自我训练;参见“超级自我监督:从 50K 次尝试和 700 个机器人小时中学习掌握”( https://arxiv.org/abs/1509.06825 )。他们使用机器人自主收集了 5 万个数据点的庞大数据集,抓取尝试超过 700 小时。这允许训练一个深度卷积神经网络(CNN)来完成预测抓取位置的任务。在多阶段学习方法中,在一个阶段训练的 CNN 被用于在后续阶段收集正面/负面的例子,在新物体上实现了 66%的准确率,在已经看到的物体上实现了 73%的准确率。作者声称,与基于几何的方法相比,CNN 的优势在于它不会忽略物体的密度和质量分布。

在马里兰大学的一个项目中,Y. Yang 等人再次使用机器人 Baxter 学习操纵,并通过观看视频来构思行动计划( https://www.umiacs.umd.edu/yzyang/paper/YouCookMani_CameraReady.pdf )。使用了两个基于 CNN 的识别模块,以及一个用于动作预测的语言模型(带有 RNN)。他们使用基于概率操作动作语法的解析器(Viterbi)来生成命令。机器人通过观看由不受约束的演示视频组成的烹饪视频(一个烹饪数据集)进行学习。该系统能够稳健地识别和生成动作命令,从广泛指定的自然语言输入中准备新食谱的能力证明了这一点。

最近,Levine 等人[LFDA16]提出了一种机器人对象操作的手眼协调方法,需要最少的规划。人类非常依赖持续的视觉反馈来处理物体和进行复杂的协调。然而,将复杂的感觉输入直接整合到反馈控制器中是具有挑战性的。因此,作者提出了一种基于学习的手眼协调方法,使用直接来自图像像素的端到端训练。通过不断地重新计算最有希望的运动命令,这种方法不断地整合来自环境的感官线索,允许它调整运动,以最大化特定任务的成功概率。这意味着该模型不需要摄像机相对于末端执行器精确校准,而是依靠视觉线索来确定场景中抓取器和可抓取对象之间的空间关系。

伯克利机器人公司的研究人员使用消费级虚拟现实设备(Vive VR),一个老化的 WIllow Garage PR2 机器人,以及为远程操作者构建的定制软件,创建了一个单一的系统来教会机器人执行任务。该系统使用能够将原始像素输入映射到动作的单一神经网络架构; https://arxiv.org/abs/1710.04615。对于每个任务,不到 30 分钟的演示数据足以学习成功的策略,在所有任务中使用相同的超参数设置和神经网络架构。任务包括伸手,抓,推,把一个简单的模型飞机放在一起,用锤子去掉一个钉子,抓住一个物体并把它放在某个地方,抓住一个物体并把它放在一个碗里然后推碗,移动布,并连续拾取和放置两个物体。在许多任务的测试时间内,竞争结果达到了 90%的准确率,尽管注意到拿起和放置两个物体达到了 80%(因为现代人工智能技术在物理动作序列方面仍然有问题),在类似的任务中,拿起一个物体并将其放入碗中,然后推动碗,达到了 83%。

Peng 等人[PBvdP16]使用经过强化学习训练的深度神经网络和基于物理的模拟,从基本原则出发,开发了一个包含状态、行动、奖励和控制策略的顺序决策问题,并取得了显著的成果。他们能够设计控制策略,直接对高维度角色状态描述(83 维)和环境状态进行操作,环境状态由使用 200 维的即将到来的地形的高度场图像组成。他们还将动作空间参数化为 29 个维度,这允许控制策略在跳跃、跳跃和台阶的水平上操作。新颖之处在于引入了演员-评论家专家(MACE)混合架构来加速学习。梅斯发展了 N 个单独的控制策略和它们相关的价值函数,然后每个策略专门研究整体运动的特定机制。在最终策略执行期间,以类似于具有离散动作的 Q 学习的方式,执行与最高值函数相关联的策略。结果很有趣;参见 https://www.youtube.com/watch?v=HqV9H2Qk-DM 处的视频和 https://www.cs.ubc.ca/van/papers/2016-TOG-deepRL 处的论文。

最近,DeepMind 开发了一种算法( https://arxiv.org/abs/1707.02286 ),用于训练代理(类人和类蜘蛛)学习如何在具有挑战性的虚拟景观中行走、奔跑和跳跃。它使用丰富的环境来促进智能体沉浸其中的复杂行为的学习。DeepMind 使用了一种策略梯度强化学习的变体,称为近似策略优化,在不使用任何显式基于奖励的指导的情况下,教代理跑、跳、蹲和转。可以在 https://deepmind.com/blog/producing-flexible-behaviours-simulated-environments/ 了解更多。

6.5 自动驾驶汽车

深度学习通过分析一组不同的信号,在自动驾驶汽车技术中发挥了相当大的作用,其中视频最具挑战性。随着谷歌无人驾驶汽车最近的成功,几乎所有的汽车制造商都在考虑在未来的汽车版本中使用这一选项。接受测试的车型包括丰田普锐斯、奥迪 TT 和雷克萨斯 RX450h。特斯拉 S3 可能会是第一款默认包含自动驾驶功能的量产车。所有这些模型都依赖于深度学习技术来进行对象识别、规划、路由和对象回避。

谷歌开发了自己的定制汽车,由 Roush Enterprises 组装。它依赖于 64 束激光探测器,允许车辆生成其环境的详细 3D 地图。该算法使用这些地图,并将它们与高分辨率的世界地图相结合,为自我导航产生足够详细的模型。谷歌已经在自动模式下测试了其车队,总里程超过 150 万英里。谷歌的车辆已经证明有足够的能力在城市的繁忙交通中行驶,以及在具有挑战性的越野地形上行驶。

百度正在大力投资自动驾驶汽车,并使用阿波罗软件计划在 2018 年发布完全自动驾驶的公交车。三星也在韩国测试自动驾驶汽车,通用汽车和 Cruise 在 2017 年宣布推出首款量产自动驾驶汽车。奥托(Otto)等其他公司专注于自动驾驶卡车的软件。核心技术基于 DL 算法。百度和谷歌正在推动政府对无人驾驶汽车的监管,声称它们只需要对实际基础设施进行微小的改变。百度的目标是到 2018 年在中国城市运营班车服务;另一家初创公司 NuTonomy 正计划在新加坡推出自己的班车服务。

开车。ai 也在致力于将 DL 带入自动驾驶汽车技术。开车,而不是给汽车编程。ai 将允许算法自行学习,尽管它没有透露该公司在这项技术上的进展。

但是,自动驾驶需要直觉心理。自动驾驶汽车需要有一些常识性的理解,或者能够推断行人的行为和信念(他们认为过马路是安全的吗?他们注意到了吗?)以及欲望(他们想去哪里?他们很匆忙吗?).类似地,路上的其他司机也有类似的复杂心理状态隐藏在他们的行为中(他们是想变道还是想超过另一辆车?).这种类型的心理推理,以及其他类型的基于模型的因果推理和物理推理,在缺乏相关训练数据的挑战性和新奇的驾驶环境中可能特别有价值。最近,一辆特斯拉 Model S 汽车在自动驾驶模式下行驶,导致司机死亡,引发了人们对该技术安全性和可靠性的一些担忧。尽管特斯拉声称,它已经在超过 1 亿英里的里程上测试了自动驾驶技术,但似乎很明显,一些粗糙的边缘仍需要打磨(例如,如何在不太可能的事件中驾驶车辆,比如汽车在高速公路上以错误的方式行驶或与醉酒的司机在一起)。

加州大学伯克利分校推出了 DeepDrive 平台( https://deepdrive.berkeley.edu/ )。所谓的 BDD 工业联盟研究用于汽车应用的计算机视觉和机器学习方面的最新技术。这是一个由加州大学伯克利分校主持的多学科中心,由特雷弗·达雷尔教授领导。该中心致力于开发汽车行业中具有实际应用的新兴技术。

6.6 对话机器人(聊天机器人)

聊天机器人,也称为对话代理或对话系统,是一种旨在拥有人类级别对话能力的算法。几家公司正在使用这项技术,要么作为个人助理,要么作为语言理解的对话算法。机器人的目标是达到与人类无法区分的自然对话水平,从而能够通过图灵测试。有两种类型的机器人:基于检索的机器人使用预定义响应的存储库和一些启发式方法来根据输入和上下文选择适当的响应,而生成模型根据过去的经验和上下文生成自动响应。后者大多依赖于深度学习技术。

生成模型可能相当复杂,并从创建数据的潜在表示中学习。它们很灵活,但是需要大量的文本(训练数据)。像[SVL14]这样的序列对序列学习方法有很大的潜力,但是大多数产生式系统仍然基于对话检索的硬性规则。短文本对话更容易优化,尤其是在封闭领域知识中,可能的输入和输出空间在某种程度上受限于特定的上下文。

Vinyals 等人使用序列对序列框架创建了一个会话模型,该模型能够根据会话中的前一句话预测下一句话[VTBE14]。它是从头到尾设计的,需要一些精心制作的功能。他们在大型对话数据集上训练它,它有足够的能力使用 it 服务台数据集提供好的建议,同时在电影对话数据集中显示常识推理。然而,机器人在对话中未能保持一致(见图 6-7 )。

Serban 等人[SSB + 15]最近提出了一种使用生成式分层神经网络模型的端到端对话系统。作者提出了一种分层递归自编码器,并将其应用于包含约 500 部电影的评论和评论的数据集(名为 MovieTriples );从每部电影中提取了大约 200,000 个三元组。三联体 U1、U2、U3 是 A 和 B 之间的三个话轮对话,A 发出第一个话语 U1;b 用 U2 回应;并且 A 用最后一句话 U3 来响应。他们表明,该模型在建模话语和言语行为方面优于 n-gram 模型,实现了大约 26 的困惑度,大约是 n-gram 方法实现的一半。作者发现了提高性能的两个关键因素:使用大型外部独白语料库来初始化单词嵌入,以及使用大型相关但非对话的语料库来预训练递归网络。

姚等人[YZP15]提出了一个模型,叫做有意图注意。他们的模型由三个循环神经网络组成:编码器,这是一个表示句子的单词级模型;意向网络,它是一个递归网络,对意向过程的动态进行建模;以及解码器网络,它是一个递归网络,在给定输入的情况下产生响应。它是一种依赖于意图的语言模型,具有注意机制。该模型使用来自服务台呼叫中心的 10,000 次对话(涉及约 100,000 次呼叫)进行了端到端的训练,而没有标记数据。使用 200 的嵌入维度,作者获得了 22.1 的困惑度。

生成模型是强大的,但语法错误可能代价高昂,所以公司仍然依赖旧的检索技术。然而,随着公司获得更多数据,生成模型将成为常态,但可能会有一些人的监督,以防止他们出现“不当行为”,就像微软 Twitter 聊天机器人 Tay ( https://en.wikipedia.org/wiki/Tay_(bot) )所发生的那样。

大多数大公司都在使用、测试或考虑在其服务和运营中实现聊天机器人。利用其个人助理 Cortana 的经验,微软最近为聊天机器人的实现开放了一个开发框架,并发布了 Luis。ai ,一个语言理解的 API。

脸书获得了智慧。ai ,一家致力于语音识别技术的公司。苹果正在改进 Siri 和谷歌 Cleverbot。IBM 提供了一个简单的 API 来将其强大的知识推理机 Watson 嵌入到对话机器人中。

这些服务中的大多数可以很容易地整合到 Twitter、Whatsapp、Skype、微信、Telegraf 或 Slack 等对话服务中。例如,Slack 允许基于硬性或软性规则的简单或复杂的对话自动化。它与 Howdy 集成,可自动执行重复性任务。Howdy 提出问题,收集回答,并提交报告。Chatfuel.com 是一个聊天工具的实现平台。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 6-7

Conversational excerpt from Google Cleverbot (source: Google Research)

已经有许多使用 RNN 和深度学习技术的对话机器人。例如,Medwhat 是一个医学顾问,它探索生物医学数据的大型数据集,以回答与健康相关的问题并创建个人建议。由于提炼信息的迭代过程,对话机器人也是一种更自然的搜索方式;例如,参见 https://www.intellogo.com ,它使用 DL 进行上下文搜索。在 chatbotsmagazine.com 有一些聊天机器人的好资源和新闻。

聊天机器人面临的主要挑战是上下文整合,特别是在长对话和与身份持久性相关的问题中。

以下是聊天机器人应用程序的简短列表:

  • 石英:新闻聊天机器人
  • 接线员:采购助理
  • 第一意见:聊天机器人医生
  • 卢卡:旧金山的餐馆推荐
  • Lark:健身教练
  • Hyper:航班和酒店
  • Pana:航班、酒店、推荐
  • Fin:股东大会
  • 佩妮:个人理财教练
  • 梅兹:购物助理
  • 埃维娅:保险助理
  • Suto:专家产品推荐
  • HelloShopper:礼物创意
  • 艾娃:专家发现者
  • X.ai:个人助理
  • 爱丽丝:人工智能伙伴

最近脸书推出了 ParlAI ( https://code.facebook.com/posts/266433647155520/parlai-a-new-software-platform-for-dialog-research/ )。ParlAI 平台结合了人工智能的不同进步,使对话机器人更加高效。

该框架为研究人员提供了一种更简单的方法来建立对话式人工智能系统,并使开发人员更容易建立聊天机器人,不那么容易被意想不到的问题难倒。长期的希望是 ParlAI 将通过减少开发和测试不同方法所需的工作量来帮助推进自然语言研究的最新发展。它内置了 20 种不同的自然语言数据集,包括来自斯坦福、微软和脸书的问答示例,并提供了与流行的机器学习库的兼容性。

由斯坦福大学心理学家和人工智能专家团队创建的 Woebot 使用简短的日常聊天对话、情绪跟踪、精选视频和文字游戏来帮助人们管理心理健康。在花了去年的时间构建测试版和收集临床数据后,Woebot Labs 刚刚推出了完整的商业产品——一个厚脸皮的个性化聊天机器人,每天检查你一次,每月 39 美元。

6.7 新闻聊天机器人

零售银行和金融科技初创公司现在正在探索使用聊天机器人进行数字体验,以查看银行账户余额,找到附近的自动取款机,进行支付,甚至建议如何更明智地花钱。

在 Slack 等其他竞争对手开始自动化一些对话之后,Zendesk 推出了一款聊天机器人来自动回答客户的询问。

聊天机器人的深度学习( https://www.wildml.com/2016/04/deep-learning-for-chatbots-part-1-introduction/ )提供了一个关于如何使用 Ubuntu 论坛的数据从头开始构建机器人的优秀教程。

几家银行,如 Toshka 银行和苏格兰皇家银行,已经引入了用于客户服务的对话机器人,并有望成为完全的个人助理,能够提供全方位的银行功能[AV18]。

Stratumn 与 Deloitte 和 Lemonway 合作,使用 LenderBot 来管理小额保险。它将通过社交媒体实现定制保险。Digibank 将聊天机器人作为银行体验不可或缺的一部分,并声称拥有最集成的解决方案。星展银行正在使用聊天机器人帮助客户在脸书和 WhatsApp 上管理资金和支付。Olivia AI 使用对话代理来管理账户和交易,并提供省钱的见解,而丹麦的一家银行 LunarWay 也推出了自己的聊天机器人。

最后,最近一款名为 Fin ( https://www.fin.com )的产品声称可以取代一名行政助理。它也是和 M 一样的混合人力聊天机器人,每月两小时 120 美元。大多数对话助手只会“理解”和执行基本命令,比如“在 Spotify 上播放一些音乐”或“启动 20 分钟的计时器”。但 Fin 声称其对话机器人可以理解复杂的语音命令。Fin 可以购买产品、寻找汽车租赁,并创建带有选择、价格和可用性列表的 Google 文档。它甚至可以在易贝上预订会议和购买商品。

Phocuswright 提出了一种新的夏波特酒来帮助旅游业。你不必进入在线旅行社进行搜索并看到 150 家酒店的列表,而是在你的个人资料中输入你要找的东西,聊天机器人会在信息界面上提供三到四家精选的列表。其他为旅游业生产 chabots 的公司包括 Pana 和 Mezi。

在美国,一个名为 AskMyUncleSam ( http://askmyunclesam.com/ )的机器人通过回答可能的税收减免问题来帮助纳税人填写表格;你可以把它看作一个 FAQ 数据库,就像一个真人一样,用户可以与之聊天。

旧金山初创公司 Digit 专注于帮助客户省钱,方法是使用其算法分析你的收入和消费习惯,并找到它可以为你留出的小额资金。

来自蒙特利尔学习算法研究所(MILA)的研究人员发表了一篇研究论文,概述了 MILABOT,他们进入亚马逊关于对话代理的 Alexa 竞赛( https://arxiv.org/abs/1709.02349 )。他们不得不面对兴趣无限的人们的开放式对话互动。MILABOT 进入了半决赛,并在用户满意度方面获得了相当高的分数,同时进行了比赛中最长的一些对话。它依靠强化学习绑定的集合策略来决定如何在不同的模型之间进行选择,以改善对话。

6.8 应用

波士顿动力公司开发了 Atlas,设计用于室外和建筑物内部。它专门用于移动操作,由电力和液压驱动。它使用身体和腿部的传感器来保持平衡,使用头部的立体传感器来避免障碍,评估地形,帮助导航,并操纵物体。

BIG-I 是由天伦林设计的人形机器人,是一种服务机器人,旨在帮助房主完成各种家务。它可以跟踪各种家用电器的位置,并通过其爪状机械手将物品从一个地方运送到另一个地方。

中国推出了其首个机器人安全警卫 AnBot,这是一种智能巡逻机器,具有先进的基于紧急警报的导航和环境监控功能。据其开发者称,AnBot 在检测生化和爆炸相关威胁方面非常有用。

低成本自主导航和定位以及智能视频监控方面的突破促进了机器人的发展,除其他功能外,机器人还能够在紧急情况下做出反应。

Kuri 是一个家用机器人,能够识别宠物,并以高清方式观看和播放。梅菲尔德机器人公司的 Kuri ( https://www.heykuri.com/ )可以识别面孔和家人、朋友以及宠物。Kuri 有一个 1080p 高清摄像头和虚拟眼睛,可以以最高质量进行直播,并捕捉静态图像和视频。

韩国制造业每 1 万名工人拥有约 400 台机器人。德国有近 300 个机器人,美国刚刚超过 150 个。牛津大学几年前发表的一项研究预测,美国近 50%的劳动力市场仍面临机械化的风险。它预计,近 700 种不同的人工工作可能会在几年内完全自动化。

6.9 展望和未来前景

深度学习自动化人工流程和提高生产率的能力将对机器人行业产生深远的影响。尽管机器人在制造业中得到广泛应用,但它们价格昂贵且难以编程。对于大多数企业来说,机器人还没有用处。2015 年,工业机器人的全球单位销量仅为 25 万台,大约是峰值时大型计算机数量的 10 倍。相比之下,2016 年服务器和 PC 的总销量分别为 1000 万台和 3 亿台。显然,机器人技术正处于萌芽阶段,需要在普及之前大幅提高成本和易用性。

成本改善进展顺利。ARK 估计,工业机器人的成本目前约为 10 万美元,在未来十年将下降一半。与此同时,一种为与人类合作使用而设计的新型机器人将耗资约 3 万美元。像软银的 Pepper 这样的零售助理机器人,包括服务费在内,价格约为 1 万美元。利用消费电子行业的组件,如相机、处理器和传感器,应该会使成本更接近这些消费产品。

更难克服的障碍是易用性。工业机器人不是从以用户为中心的角度来设计的。它们需要使用工业控制系统进行精确的编程,在工业控制系统中,每项任务都必须分解成一系列的六维运动。新任务必须被明确地编程;机器人没有能力从经验中学习并归纳出新的任务。

这些限制将机器人的市场局限于那些任务可预测且定义明确的工业应用。深度学习可以让机器人变成学习机器。机器人从数据和经验的结合中学习,而不是精确的编程,这使它们能够承担各种各样的任务。例如,仓库机器人能够从货架上挑选任何物品并将其放入箱子中,这是许多企业非常需要的。然而,直到最近,开发人员还不能让机器人识别和抓取形状和大小各异的物体。

6.10 关于自动驾驶汽车的新闻

以下是一些需要关注的新闻:

  • 特斯拉最近宣布,其配备自动驾驶硬件的车辆已经累计行驶了 7.8 亿英里,其中 1 亿英里使用了自动驾驶。特斯拉现在每天捕获的数据(相机、GPS、雷达和超声波)比谷歌自 2009 年成立以来记录的数据还要多!
  • Europilot 是一个用于训练自动驾驶卡车的开源平台,它允许您重新利用复杂的技术专用游戏 Eurotruck 模拟器,作为训练代理通过强化学习驾驶的模拟环境。Europilot 提供了几个额外的功能来简化训练,并正在测试 AI,包括能够在训练时从屏幕输入中自动输出一个 Numpy 数组,并在测试时创建一个可见的虚拟屏幕操纵杆,网络可以用它来控制车辆。你可以在 https://github.com/marshq/europilo 找到代码。
  • 波士顿动力公司发布了一段令人难以置信的视频( https://www.youtube.com/watch?v=tf7IEVTDjng ),展示了其最新创造的 SpotMini,这是一个全电动机器人,运行了 90 分钟。它可以自主地执行一些任务,能够爬楼梯,自己爬起来,并处理敏感的抓取任务。莫利机器人公司 https://www.youtube.com/watch?v=KdwfoBbEbBE 的视频展示了机器人如何根据菜谱烹饪。
  • 最近一份名为“brain 4 cars:Car That Before know via Sensory-Fusion Deep Learning Architecture”(https://arxiv.org/abs/1601.00740)的出版物解决了预测和评估汽车驾驶员下一步行动(例如,转向和撞上一辆看不见的自行车)的问题,时间长达 3.5 秒。该方法依赖于装备有 LSTM 单元的 rnn,该单元学习视频捕获、车辆动态、GPS 数据和街道地图。
  • 一辆拉力赛车的 1/5 复制品配备了复杂的控制算法,可以在越野赛道上高速行驶。这款名为 AutoRally 的汽车有一个惯性测量单元,两个前置摄像头,GPS,每个车轮上的旋转传感器,一个英特尔四核 i7 处理器,Nvidia GPU 和 32GB RAM 它不需要其他外部传感或计算资源。该算法由在跑道上驾驶的飞行员预先训练。然后,传感器测量用于结合控制和规划,以实现自动驾驶。每隔 16 毫秒,它平均评估 2560 条不同的未来可能轨迹,以选出最佳轨迹。
  • 星舰科技公司( https://www.starship.xyz/starship-technologies-launches-testing-program-self-driving-delivery-robots-major-industry-partners )推出了一个很大程度上自主的送货机器人舰队,主要是食品和小件物品。
  • 逗号。ai 发布了一组包含 7.5 小时相机图像、转向角度和其他车辆数据的高速公路驾驶数据集。它使用带有自编码器和 RNNs 的对抗性生成网络来创建特定道路快照的下一个似乎合理的场景,以便网络预测汽车的下一个动作,给定模型想象的道路在几百毫秒前的样子。
  • 最近,Craig Quiter ( https://hackerfall.com/story/integrating-gta-v-into-universe )基于 72 小时的训练和使用 OpenAI Gymn 平台,推出了一个基于侠盗猎车手(GTA)视频游戏的驾驶模拟器环境(DeepDrive)。这个想法是成为一个用强化学习训练自动驾驶汽车的试验台。该网络控制转向、油门、偏航和速度。
  • http://moralmachine.mit.edu/ ,研究人员表明,研究参与者希望成为车辆中的乘客,不惜一切代价保护他们的乘客,同时更愿意其他人购买由功利主义道德控制的车辆(即为了更大的利益牺牲乘客)。人类伦理中的矛盾比比皆是。
  • 百度推出平台阿波罗( http://apollo.auto/ )。百度自称是全球自动驾驶平台最大的合作伙伴生态系统之一。阿波罗自动驾驶项目有 50 个合作伙伴,包括中国主要汽车制造商之一一汽集团,该公司将与百度合作,实现该技术的商业化。其他合作伙伴包括中国汽车公司奇瑞、长安和长城汽车,以及博世、大陆、英伟达、微软云、威力登、TomTom、UCAR 和 Grab Taxi。
  • 韩国推出了 K-City ( https://www.businesskorea.co.kr/english/news/sciencetech/18018-k-city-world's-largest-test-bed-self-driving-cars-be-opened-korea ),号称世界上最大的自动驾驶汽车试验台。K-City 的开放是为了通过提供一个像城市一样大的试验场来为开发者提供更多的帮助。
  • 美国众议院于 2017 年 8 月通过了《自动驾驶法案》( https://www.wired.com/story/congress-self-driving-car-law-bill/ )。该法案为国家公路交通安全管理局(NHTSA)提供了监管自动驾驶汽车设计、建造和性能的权力,就像它对普通车辆一样。在未来 24 个月内,NHTSA 将编写汽车制造商必须遵守的功能集和规则,以证明他们的车辆是安全的。该法案还提出了一项“隐私计划”,汽车制造商必须据此描述他们将如何收集、使用和存储乘客数据。NHTSA 也可以向正在测试无人驾驶汽车的公司授权数万张牌照。

最近,OpenAI 的一篇论文提出了一种通过人类交互来训练强化学习代理的方法( https://arxiv.org/pdf/1706.03741.pdf )。这是一个重大突破,因为传统的强化学习不容易适应通过人类类型的交流来学习。作者探索了根据(非专家)人类偏好定义的目标,在不使用奖励功能的情况下解决复杂的 RL 任务,包括 Atari 游戏和模拟机器人运动。他们能够用大约一个小时的人类时间训练代理人复杂的新行为。

七、推荐算法和电子商务

电子商务和数字营销正在成为数据密集型领域。深度学习可以在这些领域产生巨大的影响,因为可以在精确度方面获得边际收益,从而获得高收益。例如,在 PC 或移动设备上与 web 内容交互的用户的点击率(CTR)预测或转换率(CR)方面的微小改进,可能会在客户获取方面节省数百万美元。然而,这个问题正变得越来越复杂,因为用户在购买产品之前的旅程可能是复杂的,在购买之前有许多接触点。因此,复杂的模型属性(在购买产品之前发现用户的轨迹)对于正确分配广告预算是必要的。

在线用户响应预测、点击率和转化率对于网络搜索、推荐系统、赞助搜索和展示广告至关重要。例如,在在线广告中,根据个人用户的数字旅程来锁定他们的能力是至关重要的。这些定向技术依赖于预测广告相关性的能力,换句话说,就是用户在特定环境下点击广告并购买某种产品或服务的概率。

凭借 2 万亿美元的规模,电子商务有强大的动力依靠更复杂的推荐算法来改善用户体验,并通过交叉销售或追加销售来增加销售额。

7.1 在线用户行为

基于网站内先前的交互来预测用户意图(购买给定产品或服务的愿望),对于电子商务和广告显示网络,尤其是重定向,是至关重要的。通过跟踪消费者的搜索模式,在线商家可以深入了解他们的行为和意图。

在移动电子商务中,可以获得丰富的数据,潜在消费者在做出购买决定之前搜索产品信息,从而反映消费者的购买意图。用户显示不同的搜索模式(即每个项目花费的时间、搜索频率和回访)。

点击流数据可用于使用机器学习技术量化搜索行为,主要集中在购买记录上。虽然购买表明消费者在同一类别中的最终偏好,但搜索也是衡量对特定类别的意向的重要组成部分。您可以使用概率生成过程来模拟用户的探索和购买历史,其中引入了潜在的上下文变量来捕捉来自时间和位置的同时影响。通过识别消费者的搜索模式,你可以预测他们在特定情境下的点击决策,并推荐合适的产品。

现代搜索引擎使用机器学习方法来预测 web 内容中的用户活动。流行的模型包括逻辑回归(LR)和增强决策树。神经网络比 LR 具有优势,因为它们能够捕捉输入特征之间的非线性关系,并且因为它们的“更深”架构具有内在的更大建模强度。决策树——尽管在这个领域很流行——面临着高维度和稀疏数据的额外挑战。受深度神经网络启发的概率生成模型的优势在于,它们可以模拟消费者购买行为的过程,并捕捉潜在变量来解释数据。

在我 2016 年的论文中,我提出了( https://arxiv.org/pdf/1511.06247.pdf )一种基于自编码器的算法,以识别导致购买会话的某些用户的活动模式,然后推断为模板,以预测相关网站的高购买概率。所使用的数据由大约 100 万个包含用户点击数据的会话组成。然而,只有 3%的训练数据包含购买会话,这使得它成为一个非常不平衡的数据集。为了解决这个问题,我使用了欠采样技术(即,只选择一小部分负面例子)。

7.2 重新定位

赞助搜索、上下文广告和最近出现的实时竞价(RTB)显示广告都依赖于学习模型预测广告点击率的能力。目前应用的 CTR 估计模型大多是线性的,从逻辑回归[E12]和朴素贝叶斯到逻辑回归,采用大量带有一键编码的稀疏(分类)特征作为输入。线性模型具有易于实现和高效学习的优势,但也具有相对较低的性能,因为它们无法学习非平凡模式,即特征之间的相互作用[LCWJ15]。

另一方面,非线性模型能够利用不同的特征组合,因此有可能提高估计性能。例如,因式分解机器(FMs)将用户和项目二元特征映射到低维连续空间( www.algo.uni-konstanz.de/members/rendle/pdf/Rendle2010FM.pdf )。与支持向量机相比,FMs 使用因子分解的参数显式地建模变量之间的相互作用,即使在具有巨大稀疏性的问题(如推荐系统)中也表现良好。

梯度推进树[M13]是一种集成技术,在生长每个决策/回归树的同时自动学习特征组合。其中一些技术(如随机森林)比人工神经网络有优势,即使在高维问题中,它们也很难过度拟合。然而,增强技术,如极端梯度增强(XGBoost ),很容易使数据过度拟合,特别是当您与随机森林比较时,即使有内置的正则化项。

无论多么强大,这些模型都无法利用不同特性的所有可能组合。此外,许多模型需要手动设计的功能工程,例如,按一周中的某一天或一年中的某个月来聚合交互。主流广告点击率估计模型的另一个问题是,大多数预测模型具有浅层结构,并且具有有限的表达来描述来自复杂和大型数据集的潜在模式,从而限制了它们的泛化能力。

将 DL 应用于该问题的困难在于,CTR 估计中的大多数输入特征是可能包含数千个不同值的离散类别:位置、设备、广告类别等等。此外,它们的本地依赖性大多是未知的。深度学习可以通过学习特征表示来改善 CTR 估计。

臧等人( http://wnzhang.net/papers/ortb-kdd.pdf )开发了实时竞价展示广告幻灯片的竞价优化算法;http://wnzhang.net/slides/ecir16-rtb.pdf见。RTB 通过激励用户数据竞价超越了上下文广告——不要与赞助搜索(Google AdWords)拍卖相混淆。需求方需要自动化。基于一些预算,您想要最大化一些 KPI,例如转换或销售。作者推导了简单的竞价函数,并得出结论,最佳竞价策略应该试图对更多的印象进行竞价,而不是专注于一小组高价值的印象。相对于评价较高的印象,评价较低的印象更具性价比,胜出的几率也相对较高。

7.3 推荐算法

推荐算法在几乎任何电子商务网站中都是普遍存在的。推荐系统(RS)是一种向用户推荐他可能感兴趣的项目的算法。它使用来自用户对一组有限项目的过去偏好(交易数据)的输入信息,或者是显式的(评级),或者是隐式的(监控用户的行为,如听到的歌曲、下载的应用程序、访问的网站),以及关于用户或项目本身的信息。RS 还可能使用人口统计数据(年龄、国籍、性别)、社交媒体(关注者、被关注者、推文)和来自物联网的信息(GPS 定位、RFID、实时健康信号)。

作为输出,RS 为每个用户创建一个排序的项目列表——这可能会考虑到特定的上下文。RS 不仅通过准确性(被用户接受的项目的比例)来评估,还通过新颖性(算法在向新用户推荐新项目方面的表现)、分散性(推荐对不太受欢迎的项目的差异)和稳定性(预测如何随着时间的推移而保持)来评估。

基本上有三种类型的推荐系统。

  • 基于事务的协作过滤器(CFs)
  • 基于内容的 CFs
  • 混合方法

基于内容的方法利用用户档案或产品描述进行推荐。基于 CF 的方法使用过去的活动或偏好,例如用户对项目的评级,而不使用用户或产品内容信息。混合方法结合了基于内容和基于 CF 的方法。

7.3.1 协作过滤器

协同过滤是一种流行的推荐算法,它使用其他用户对项目的评级(或行为)来预测用户购买其他产品的可能性。它假设过去用户的意见提供了足够的信息来选择新产品的未来偏好。如果用户同意某些项目的相关性,那么他们可能会同意其他项目。

CF 有两种类型:用户对用户和项目对项目。用户对用户 CF,也称为 k-NN CF,是一种简单的算法,它基于两个用户与物品或产品的交互模式之间的向量相似性来评估两个用户之间的相似性(见图 7-1 )。由于搜索用户的邻居是耗时的,所以随着用户基础的增长,用户到用户 CF 遭受可扩展性问题。

单品到单品 CF 利用产品之间的相似性,最初被亚马逊广泛采用。项目对项目 CF 使用项目评分模式之间的相似性,而不是使用用户评分行为之间的相似性来预测偏好。这种方法比用户对用户 CF 具有更好的可扩展性并获得更好的结果。

CF 算法有两个重要问题:冷启动和内部通吃。第一个问题很严重:如果评论很少,或者数据库中有很多新用户/项目(形成非常稀疏的用户-项目矩阵),系统很难创建推荐。第二个已知的问题涉及这样一个事实,即只推荐最热门的作品,所以系统缺乏多样性。深度学习模型旨在解决这两个问题。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 7-1

Recommendation system based on collaborative filter algorithm (source: https://tel.archives-ouvertes.fr/tel-01585248/document )

7 . 3 . 2 RSs 的深度学习方法

基于协作过滤器的算法使用用户对项目的评级作为创建推荐的唯一信息来源。然而,评级的稀疏性可能会降低基于 CF 的方法的性能。解决这个问题的唯一方法就是使用物品内容等辅助信息。协作主题回归是一种采用这种方法并紧密耦合两个组件的方法; https://arxiv.org/abs/1409.2944。然而,当辅助信息稀疏时,通过协作主题回归学习的潜在表示可能无效。

DL 可以通过以分层贝叶斯方式推广协作主题回归来解决这个问题。与传统技术相比,深度学习技术还允许从项目特征(文本、图像、视频和音频)中更好地提取特征。这允许对项目进行更精确的建模,并且潜在地允许混合的和基于内容的方法的能力。深度学习方法提供的另一个优势是,它们允许数据的不同视图,允许标准的协作过滤技术,如矩阵分解,并且通常将用户与项目的交互视为矩阵结构的数据,通常忽略数据中的时间结构和顺序。卷积和循环神经网络等深度学习技术允许您对这些数据中的时间结构进行建模,从而显著提高性能。

Salakhutdinov 等人率先将 DL 用于推荐系统,提出了一种基于深度信念网络的架构,该架构具有潜在节点来表示数据的隐藏特征; www.machinelearning.org/proceedings/icml2007/papers/407.pdf。这些作者使用这种架构的修改版本在网飞电影分级竞赛中取得了好成绩。

最近,郝[WWY15]提出了一种称为协作深度学习(CDL)的方法,该方法从项目/用户的内容中联合学习深度表示,同时还考虑评分矩阵,结果明显更好。

CDL 依靠一种使用紧密耦合方法的技术,允许评级矩阵和内容之间的双向交互(见图 7-2 )。评级信息指导特征的学习,反过来,提取的特征可以提高 CF 模型的预测能力。紧密耦合的方法通常优于松散耦合的方法。这种方法结合了基于概率主题建模的 CF、潜在因素和内容分析的思想。

对于一个特定的用户,CDL 可以推荐喜欢类似文章的其他用户的文章。潜在因素模型在推荐已知文章方面效果很好,但不能推广到以前未见过的文章。为了推广到看不见的文章,该算法使用主题建模。主题建模根据从集合中发现的潜在主题来提供文章的表示。这个额外的组件可以推荐与用户喜欢的其他文章具有相似内容的文章,即使没有使用任何先前的评级。文章的主题表示允许算法在任何人对文章进行评级之前,对文章做出有意义的推荐。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 7-2

Scheme of a possible collaborative deep learning model. On the left is the graphical model. The dashed rectangle represents an auto-encoder. On the right is the graphical model of the degenerated model. The dashed rectangle represents the encoder component of SDAE (source: www.wanghao.in/paper/KDD15_CDL.pdf ).

这种方法的有用之处在于,它能够以半监督的方式创建用户、产品和关系之间相似性的平滑语义图。另外一个很大的优点就是可以很好的泛化,从而克服冷启动问题。问题是,每次添加新用户或产品(或通过代理工作)时,都需要创建新节点。

值得注意的是,在使用单一指标(即精确度或召回率)来评估 RS 时应该小心。分散性和新颖性应该被考虑,因为它们可能与产品密切相关。其他重要的指标是算法学习的速度,以解决不可避免的冷启动问题,以及它对于高需求应用程序的可扩展性。

7.3.3 Item2Vec

在 Item2Vec ( https://arxiv.org/abs/1603.04259 )中,作者将 Word2vec 扩展到基于项目的产品推荐。当用户数量超过目录中的产品数量时,例如在音乐领域,或者当用户匿名浏览电子商务页面导致用户与商品的关系不可用时,这种方法非常有效。这种方法在推荐不太受欢迎的项目时特别有用,并且不会遭受 CF 的冷启动问题。Python 中的代码可在 https://github.com/DoosanJung/I2V_project 获得。

在最近的出版物“学习产品搜索的潜在向量空间”( http://arxiv.org/pdf/1608.07253.pdf )中,作者介绍了一种潜在向量空间模型,该模型联合学习单词、电子商务产品的潜在表示,以及两者之间的映射,而不需要显式注释。该模型的强大之处在于它能够直接对产品和描述它们的词语之间的关系进行建模。作者将这种方法与现有的潜在向量空间模型(LSI,LDA 和 Word2vec)进行了比较,声称由于更好的产品表示,准确性更高。

7.4 推荐算法的应用

一些首创推荐系统的公司仍然严重依赖它们。大多数大型商业和社交网站都有某种形式的推荐系统,推荐产品或关系。例如,商务社交网站 LinkedIn 为用户可能认识的人、你可能喜欢的工作、你可能想关注的群体或你可能感兴趣的公司提供建议。LinkedIn 使用 Hadoop 和 Mahout 大规模运行 CF 模型。

亚马逊使用基于内容的推荐。当你选择购买一件商品时,亚马逊会根据该商品推荐其他用户购买的其他商品(作为一个商品到下一个商品购买可能性的矩阵)。亚马逊为这种行为申请了专利,称为项目到项目的协同过滤。

Hulu,一个流媒体网站,使用推荐引擎来识别用户可能感兴趣的内容。它还使用基于项目的协同过滤和 Hadoop 来扩展海量数据的处理。

2006 年,网飞举办了一场奖金 100 万美元的竞赛,奖励能够将其推荐系统 RMSE 提高 10%的团队。2009 年,三个团队联合构建了一个由 107 个推荐算法组成的集合,产生了一个单一的预测。这种集成被证明是提高预测准确性的关键。

阿里巴巴团队最近的一篇论文报告了该公司目前用于预测 CTR 的一种算法;参见( https://arxiv.org/pdf/1706.06978.pdf )。该模型被称为深度兴趣网络(DIN ),与广度和深度模型有一个主要区别。相反,它使用从机器翻译文献中导入的注意机制。DIN 用兴趣分布来表示用户的不同兴趣,并设计了一种类似注意力的网络结构,根据候选广告来局部激活相关兴趣。与候选广告相关性更高的行为获得更高的注意力分数,并主导预测。他们报告说,相对于其他类型的神经网络,使用这种模型有很大的好处。

Kumar 等人提出了一种深度神经模型( http://ceur-ws.org/Vol-1866/paper_85.pdf ),使用 LSTM 关注度来推荐新闻内容,并使用全连接网络来学习内容项到用户的映射。他们显示出比最先进的结果显著提高了 4.7%(命中率为 10)。该模型在处理用户冷启动和物品冷启动问题上也是有效的。

7.5 未来方向

改进推荐系统的一些未来方向包括明确考虑时间效应(用户或产品口味的变化),考虑序列顺序(在购买手机后推荐手机外壳与在获得手机外壳后推荐手机不同),以及更丰富的产品和内容表示。参见 https://www.cs.princeton.edu/chongw/papers/WangBlei2011.pdf 了解 RSs 的未来发展方向。

元数据质量差是现实生活中经常出现的问题;例如,缺少值或者没有系统地分配值。即使元标签是完美的,这样的数据也只能更间接、更不详细地表示实际的商品,而不是它的图片。在深度学习的帮助下,内容(图像、视频、文本)的实际、内在属性可以被合并到推荐中。使用 DL,项目到项目的关系可以基于一个更全面的产品图片,并减少对人工标记和大量交互历史的依赖。

将内容纳入推荐系统的一个很好的例子是 Spotify 在 2014 年试图让歌曲推荐更加多样化,并为用户创造更好的个性化体验。音乐流媒体服务在其推荐系统中使用了一种协作过滤方法。但 Spotify 的博士生兼实习生桑德·迪勒曼(Sander Dieleman)认为这是其最大的缺陷。严重依赖使用数据的方法不可避免地低估了隐藏的宝石和未来艺术家的鲜为人知的歌曲,这些是音乐发现的圣杯。Dieleman 使用一种深度学习算法来分析音乐本身,他在 50 万首歌曲的 30 秒摘录中教授了这种算法。结果是,网络的连续层逐渐学习到歌曲的更复杂和不变的特征,就像它们处理图像分类问题一样。事实上,“在网络的最高全连接层,就在输出层之前,学习过滤器对某些子类别非常有选择性”,如福音音乐、中国流行音乐或深层音乐。在实践中,这意味着这样的系统可以仅基于歌曲的相似性来有效地进行音乐推荐(这是组装个性化播放列表的优秀特性)。目前还不清楚 Spotify 是否将这些发现纳入了它的算法,但这仍然是一个有趣的实验。

冷启动是推荐系统的大敌。它会影响用户和项目。对于用户来说,冷启动意味着系统对客户的行为和偏好的信息有限或没有。项目冷启动表示缺少用户与数据的交互,在此基础上可以绘制项目到项目的关系(仍然有元数据,但这通常不足以提供真正微调的建议)。冷启动项目是上述基于内容的方法的一个明显的领域,因为它使系统更少依赖于事务和交互数据。

然而,为新用户创造有意义的个性化体验是一个更棘手的问题,不一定能通过简单地收集他们的更多信息来解决。这是非常典型的,尤其是在电子商务网站或具有广泛产品组合的在线市场的情况下,随着时间的推移,客户会带着完全不同的目标访问网站。他们先是来买微波炉,但下一次他们要找的是手机。在这种情况下,在第一次会话中收集的数据与第二次会话无关。

解决用户冷启动问题的一个有趣的方法是基于会话或项目到会话的推荐。这大致意味着,系统不是依赖于客户的整个交互历史,而是将这些数据分割成单独的会话。然后,捕捉用户兴趣的模型建立在特定于会话的点击流上。通过这种方法,很有可能未来的推荐系统将不会如此严重地依赖于几个月甚至几年建立起来的复杂的客户档案;相反,在用户点击网站一段时间后,他们能够给出合理的相关建议。

这是一个研究还很少的领域,但可能会为增强个性化的在线体验带来巨大的机会。重力 R&D 公司的研究人员在 EU-资助的 CrowdRec 项目上工作,最近合著了一篇论文( https://arxiv.org/abs/1706.04148 ),描述了一种提供基于会话的推荐的循环神经网络方法。这是第一篇寻求将深度学习用于基于会话的推荐的研究论文,他们的结果表明,他们的方法明显优于当前使用的最先进的算法。

八、游戏和艺术

深度学习应用最令人兴奋的领域之一是创意产业和游戏,要么通过算法玩传统的棋盘游戏或视频游戏,要么创建虚拟游戏角色或沉浸式现实。最近 AlphaGo 的成功击败了世界围棋冠军,点燃了人们对人工智能为机器带来超人能力的兴趣。

8.1 国际象棋的早期步骤

20 年前,IBM 的深蓝打败了国际象棋世界冠军加里·卡斯帕罗夫。从那以后,下棋的计算机让最优秀的人类相形见绌。但是这些算法使用的技术仍然严重依赖于“强力”树搜索所有可能的移动组合。

人工智能的最新进展使得自学程序的开发成为可能。长颈鹿( https://chessprogramming.wikispaces.com/Giraffe )是神经网络算法下棋的先驱之一。它是通过评估游戏位置学会下棋的。它由四层神经网络组成,以三种不同的方式共同检查棋盘上的每个位置。第一个查看游戏的全局状态,例如每一方棋子的数量和类型,哪一方要移动,阉割权利,等等。第二个着眼于以棋子为中心的特征,如每一方的每一个棋子的位置,最后一个绘制每一个棋子进攻和防守的方格。

训练算法玩棋盘游戏的通常方式是手动评估每个位置,并使用这些信息来教会机器识别哪些位置强,哪些位置弱。取而代之的是一种自举技术,长颈鹿与自己比赛,目的是提高它的预测能力。这是可行的,因为有固定的参考点最终决定了头寸的价值——游戏是赢了、输了还是平局。这样,计算机就学会了哪些位置强,哪些位置弱。在 72 小时的训练中,长颈鹿达到了世界上最好的程序的水平。

8.2 从象棋到围棋

尽管在下棋方面取得了进步,但对于机器来说,围棋仍然是一个难以捉摸的挑战。围棋是一种简单的棋盘游戏,两名玩家轮流将黑色或白色的石头放在棋盘上,试图抓住对手的石头或围绕空白空间以取得领土。尽管规则简单,但围棋是一种非常复杂的游戏,因为大约有 10 170 种可能的棋盘配置——远远超过宇宙中的原子数量,大约是 10 100

最成功的程序之一是围棋的多面性,它实现了 13-kyu 的性能,由 David Fotland 在十年间编写了 30,000 行代码。但是从来没有达到高手的水平。

蒙特卡洛(MC)算法是由布鲁诺·布兹在 21 世纪初引入棋盘游戏算法的。MC 使用取样来获得难以处理的积分的近似值。后来 Rémi Coulom 使用 MC 评估和树搜索,并创造了术语蒙特卡罗树搜索(MCTS); https://www.remi-coulom.fr/CG2006/CG2006.pdf。他的程序 CrazyStone 在那年的 KGS 计算机围棋锦标赛中,以 9×9 的小型围棋变体击败了其他程序,如 NeuroGo 和 GNU Go。MCTS 使用蒙特卡罗滚动来估计搜索树中每个州的值。随着越来越多的模拟被执行,搜索树变得越来越大,并且相关值变得越来越精确。这是一种探索大搜索空间的有效采样算法。

2013 年,DeepMind 发表了一篇论文,该论文使用了深度神经网络的强化学习(通过 LSTM 训练),只使用了屏幕上的像素输入(由 CNN 处理)。它创造了一个深度 Q 网络,它学会了玩一些游戏,如 Breakout,Pong 等。2014 年,DeepMind 发表了另一篇名为“教授深度卷积神经网络下围棋”( https://arxiv.org/abs/1412.3409 )的论文,与之前的案例不同,该论文使用神经网络来产生人类围棋选手从给定位置做出每个可能移动的概率。

AlphaGo 使用了两个神经网络:一个策略和一个价值网络。快速部署策略 P π 和监督学习(SL)策略网络 p σ 被训练来预测人类专家在位置数据集中的移动。强化学习(RL)策略网络 p ρ 被初始化为策略网络,然后通过策略梯度学习进行改进,以相对于先前版本的策略网络最大化结果(即赢得更多游戏)。一个新的数据集是和自己玩游戏产生的,换句话说就是和 RL 策略网络的自我游戏。最后,通过回归训练价值网络 v θ 以从自玩数据集中预测位置的预期结果(当前玩家是否获胜)。

AlphaGo 算法的细节在 https://storage.googleapis.com/deepmind-media/alphago/AlphaGoNaturePaper.pdf 中有详细解释。

8.3 其他游戏和新闻

本部分涵盖其他游戏和新闻。

厄运

2016 年,卡内基梅隆大学学生开发的一个人工智能代理赢得了经典视频游戏《末日》——胜过了游戏内置的人工智能代理和人类玩家。见 https://arxiv.org/pdf/1609.05521v1.pdfhttps://www.youtube.com/watch?v=oo0TraGu6QYlist=PLduGZax9wmiHg-XPFSgqGg8PEAV51q1FT 的一些不平凡的视频。

3D 游戏环境对于算法来说是具有挑战性的,因为玩家必须仅基于部分观察到的迷宫来行动。与《毁灭战士》不同,《雅达利》和《围棋》给代理人提供了完整的游戏信息,换句话说,就是完全可观察的环境。

当机器玩家在游戏中导航时,它采用了深度 Q 网络,这是 DeepMind 用来掌握 Atari 游戏的强化学习架构。当看到敌人时,代理会切换到深度循环 Q 网络,其中包括一个长短期记忆(LSTM)模块,可以帮助代理跟踪敌人的运动并预测向哪里射击。

虽然人工智能代理仅依赖视觉信息来玩游戏,但作者在训练期间使用 API 来访问游戏引擎。这有助于代理学习如何更快地识别敌人和游戏棋子。没有这种帮助,他们发现代理人在 50 小时的模拟游戏中几乎什么也没学到,相当于 500 多小时的计算机时间。

8.3.2 Dota

2017 年,OpenAI 的一个人工代理赢得了一场著名的 Dota2(世界上最受欢迎的视频游戏之一)锦标赛,击败了一名职业人类选手。

Dota 和 Starcraft II 等实时战斗和策略游戏对国际象棋或围棋等传统棋盘游戏构成了重大挑战。这些游戏需要长期的战略思维,而且——不像棋盘游戏——它们对玩家隐藏了重要的信息。算法要预测和先发制人对手会怎么做;你可以称之为直觉。

Dota 有额外的复杂性,就像人类玩家必须在五人小组内合作行动,协调复杂的策略。游戏中有数百个角色,每个人都有自己的技能,配备了许多独特的物品。动作的复杂性如此之大,以至于几乎不可能将一个程序的获胜策略硬编码到 Dota 代理中。

与人工智能代理结果同样重要的是它如何自学游戏。AlphaGo 通过观察人类以前玩的游戏来学习如何玩游戏。OpenAI 的代理从头开始自学一切。

即使一些代理行为是预编程的,它也能够自己开发复杂的策略,比如通过假装触发攻击来伪装对手,但很快就取消了,使人类玩家处于弱势地位。

尽管 OpenAI 代理取得了胜利,但真正的挑战将是 5v5 比赛,代理不仅要管理决斗,还要管理有多个代理和几十个支持单位的混乱战场。

其他应用

可以找一些神经网络的实现来玩几个视频游戏,像 TensorFlow 里的马里奥赛车( https://kevinhughes.ca/blog/tensor-kart )和超级马里奥( https://www.engadget.com/2015/06/17/super-mario-world-self-learning-ai/ )。

在最近的一项工作中,来自 Maluuba(微软)的一个团队提出了一种技术,详细描述在“强化学习的混合奖励架构”( https://static1.squarespace.com/static/58177ecc1b631bded320b56e/t/594050d7bf629a891ef31605/1497387537190/HRA_Maluuba.pdf )。他们能够在很大程度上提高 QDN 或演员评论家方法(AC3)的准确性,击败了吃豆人雅达利游戏中的最佳人类。这种称为 HRA 的技术将分解的奖励函数作为输入,并为奖励函数的每个分量学习单独的值函数。因为每个组件仅依赖于所有特征的子集,所以总体值函数更平滑,并且可以更容易地通过低维表示来近似,从而实现更有效的学习。

数独是一种流行的数字谜题,它要求你用数字填充 9×9 网格中的空白,以便每列、每行和 9 个 3×3 子网格中的每一个都包含从 1 到 9 的所有数字。在 https://github.com/Kyubyong/sudoku 详述的项目中,Kyubyong 使用了一个简单的卷积神经网络(在 TensorFlow 中)来解决数独,而没有任何基于规则的后处理。它达到了 86%的准确率。

深度学习的挑战之一是解决具有挑战性的瑞文渐进矩阵(RPM)测试。RPM 是一种非语言智力测试,通常用于测量一般智力。RPM 由一个符号矩阵组成,这些符号构成了一个视觉几何图案,并且矩阵中的一个符号缺失。应试者被给予六到八个可能的候选解,并且基于这些和矩阵的几何设计,确定矩阵中缺少哪个符号。尽管该测试仅限于测量应试者从复杂的视觉几何结构中提取信息的能力,但其与其他多领域智力测试的高度相关性使其在心理测量空间中处于中心地位[SKM84]。

已经部署了一些有希望的努力来使用使用上下文 CNN 自编码器作为生成器(最初应用于图像修补( https://arxiv.org/abs/1604.07379 )的生成式对抗网络(GANs)来解决这个矩阵,但是该算法在处理看不见的符号方面有困难。

8.4 人工字符

微软宣布了一个项目,使程序员能够塑造和开发其技术。AIX 是一个新的软件开发平台,研究人员可以用它来开发代理——人工智能驱动的角色。

《我的世界》增加了一个使用人工智能的虚拟现实助手。该平台名为 AIX,是一个沙箱,允许研究人员开发漫游《我的世界》世界的代理。这个想法是让他们具备像普通玩家一样的行为能力,包括基本的命令,如爬山,以及更复杂的要求,如导航各种地形,构建景观,以及在游戏中生存。

来自 Tubigen 大学的一个团队正在进行一个项目,通过允许超级马里奥游戏角色在游戏环境中发展自己的态度,赋予他们“真实的生活”; https://www.uni-tuebingen.de/en/newsfullview-landingpage/article/super-mario-erhaelt-soziale-intelligenz.html

毒蛇。AI ( https://github.com/SerpentAI/SerpentAI )是一个帮助开发者创建游戏代理的框架。它可以帮助你把你拥有的任何视频游戏变成一个沙盒环境进行实验。

Unity 推出了 Unity 机器学习代理( https://blogs.unity3d.com/2017/09/19/introducing-unity-machine-learning-agents/ ),支持使用 Unity 编辑器创建游戏和模拟。在这些环境中,可以通过简单易用的 Python API,使用强化学习、神经进化或其他机器学习方法来训练智能代理。这些平台并不新鲜,PROWLER.io ( https://www.prowler.io/ )是先驱。这些类型的环境对于开发能够通过自我游戏和模拟学习复杂的紧急行为的智能体将变得非常重要。

8.5 艺术中的应用

如果说 DL 在玩游戏方面取得了显著的成绩,也许最显著的成就是在一个不寻常的领域:艺术。

Gatys 等人[GEB15]应用卷积神经网络,使用最初设计用于捕捉纹理信息的特征空间来获得艺术家风格的表示(输入图像)。通过包含多层的特征相关性,他们获得了输入图像的静态、多尺度表示。他们证明了卷积神经网络中内容和风格的表示是可分的。这两种表示都可以被独立地操纵,以产生新的、感知上有意义的图像。为了证明这一发现,他们从两幅不同的源图像中生成了混合了内容和风格表现的图像;见图 8-1 。

Ulyanov 等人[ULVL16]提出了一种技术,即给定纹理的单个示例,CNN 能够生成任意大小的相同纹理的多个样本,并且能够将艺术风格从给定图像转移到任何其他图像。生成的网络相对较小,可以快速生成高质量的纹理。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 8-1

Artificially generated images using CNNs trained on two set of images (source: www.demilked.com/inceptionism-neural-network-drawings-art-of-dreamssource ). See also a demo online at http://ostagram.ru/ or the mobile app Prisma.

CycleGAN ( https://arxiv.org/pdf/1703.10593.pdf )是一种使用未对齐图像进行图像到图像转换(输入图像和输出图像之间的映射)的最新方法(见图 8-2 )。它能够学习映射 G : X → Y,使得来自 G(X)的图像分布与使用对抗损失的分布 Y 不可区分。因为这个映射是高度欠约束的,所以它与一个逆映射 F : Y → X 耦合,并且它引入了一个循环一致性损失来推 F(G(X)) ≈ X(反之亦然)。它提供了马到斑马的可靠转换,反之亦然。代码(Pytorch 中)和视频在 https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 8-2

Object transfiguration with CycleGAN (source: https://github.com/junyanz/CycleGAN )

瑞典公司 Peltarion ( http://peltarion.com/ )发布了一种神经网络,可以通过从原始传感器数据中提取高级特征来执行复杂的计算机生成的编排。该系统被称为 chor-rnn,使用循环神经网络以个人编舞的微妙编舞语言和风格生成新颖的编舞材料。它还可以创建更高层次的组合内聚力,而不仅仅是生成运动序列。神经网络在原始运动捕捉数据上进行训练,它可以为独舞者生成新的舞蹈序列。作者使用微软 Kinect v2 传感器捕捉了五个小时的当代舞蹈动作,跟踪了 25 个关节,产生了 1350 万个三维时空关节位置。使用这些数据进行训练,作者表明他们的网络可以输出新颖的舞蹈动作,展示对日益复杂的动作的渐进学习。

在最近的一项工作( https://arxiv.org/pdf/1706.07068.pdf )中,作者们使用了一种生成对抗网络来创建合成艺术品,这种艺术品与人类生成的艺术品几乎没有区别。创造性对立网络(CANs)的工作方式类似于 GANs,只是鉴别器向生成器返回两个信号,而不是一个信号:某样东西是否符合艺术的标准,以及它能在多大程度上把生成器的样本归类为一种确切的风格。一项定量评估显示,53%的情况下,人类认为罐子图像是由人类生成的,而由人类生成的抽象表现主义者的比例为 85%。

在一篇博客文章( http://karpathy.github.io/2015/05/21/rnn-effectiveness/ )中,安德鲁·卡帕西描述了一个基于 RNN 和 LSTM 联合的模型,该模型是根据莎士比亚作品训练的。该模型能够创作出与英国作家的一些著名作品有显著相似之处的散文。

松原仁(Hitoshi Matsubara)使用了一种基于 DL 的算法来生成一个短篇故事( http://mashable.com/2016/03/26/japan-a-i-novel )。这个故事最终从 1000 份投稿中脱颖而出,成为 10 个故事之一。

吉恩·科岗( http://genekogan.com/ )将 AI 作为创作工具,在 https://vimeo.com/180044029 中创造了一些有趣的效果。

8.6 音乐

音乐可以被表示为一个时间序列,从而被建模为音乐事件之间的条件概率。例如,在和声音轨中,给定最后的和弦,一些和弦比其他和弦更可能出现,而和弦进行通常取决于音乐的整体模式。在许多自动合成系统中,通过假设当前状态 p (n)的概率仅取决于过去状态的概率,p(n–k)…p(n–1)来简化这些关系。给定一个种子序列,然后通过预测下面的事件产生一个音乐序列。

音乐创作被认为是创造性的、直觉的,因此是人类的特权。然而,dnn 带来了挑战这一假设的新工具。自动音乐创作通常包括诸如旋律、和弦、节奏甚至歌词的创作等任务,传统上是通过隐马尔可夫模型(hmm)来解决的。这些模型的记忆为 1(当前状态完全决定了到下一个状态的转换)。然而,深度 LSTM 网络可以处理任意历史来预测未来事件,因此具有比 HMM 更复杂的表达能力。

由人工智能算法创作的音乐并不新鲜,因为它允许作曲家更有效地进行实验。专辑《0music》和《Lamus》完全由弗朗西斯科·哈维尔·维科(Francisco Javier Vico)创立的乐队 Melomics 创作。两者都使用模仿生物学的策略来学习和进化更复杂的作曲机制。这些算法是为了产生音乐而明确编写的。

Choi 等人arxiv . org/pdf/1604 . 05358 v1 . pdf使用基于 LSTM 的算法来学习表示和弦进行和鼓轨的文本文档内的关系。代码(基于 Keras)可以在 GitHub 上获得。结果非常好,尤其是鼓;你可以在 SoundCloud 上找到一些例子。

普林斯顿大学的金智成(Ji-Sung Kim)最近部署了一个名为 Deep Jazz 的项目,使深度学习能够产生音乐。该项目基本上是一个 RNN 与 LSTM 训练了几个小时的爵士乐。经过 128 个时期的训练,该算法能够创造新的音乐。该代码可以在 GitHub 上获得,并且基于 Keras 和 Theano 库。作者正在努力将这一概念推广到大多数音乐风格,而不必为每一种风格训练一个神经网络。在这部作品中,ML 被用来教音乐学生超越传统的和弦。

另一个最近的项目( http://imanmalik.com/cs/2017/06/05/neural-style.html )使用循环网络通过阅读乐谱来学习如何演奏乐器(MIDI 格式)。质量如此之好,几乎与人类执行者没有区别。

同步项目( http://syncproject.co/blog/2017/6/5/making-music-with-ai-an-introduction )使用了一个名为 Folk-RNN 的循环网络,研究人员将数以千计的凯尔特民间音乐转录样本输入深度学习系统,该系统从 MIDI 歌曲信息中学习,以创建新的旋律。研究人员惊讶地发现,该系统每尝试五次就能创作出一首“听起来真实”的旋律。

Southern 的专辑《我是艾》(I AM AI)由 Amper ( https://www.ampermusic.com/ )创作,Amper 是一个人工智能的音乐作曲家、制作人、表演者。用户选择要创建的音乐类型的参数,例如“环境振奋人心的电影”或“史诗般的驾驶”。该程序使用其机器学习算法在几秒钟内生成一首歌曲。然后,人类能够操纵该轨道的一部分,但也有可能将所有和弦结构和乐器都交给计算机。请看这个例子: https://www.youtube.com/watch?v=XUs6CznN8pw

深度学习在音乐中的应用调查,请参见 https://arxiv.org/pdf/1709.01620.pdf

8.7 多模态学习

Tamara Berg 通过利用图像、视频和观看这些图像的人之间的关系,率先将数字图像应用于时尚。她探索了计算机视觉和自然语言处理来理解文本到图像的关系。在一个项目中,给定一幅带字幕的图像,卷积神经网络可以确定哪些单词(例如,“打电话的女人”或“远处的车辆”)对应于图像的哪个部分。该工具允许用户仅使用自然语言编辑或合成真实的图像(例如,“从这张照片中删除垃圾车”或“制作一张三个男孩追逐一只毛茸茸的狗的图像”)。她在 www.tamaraberg.com/ 的网页上有一些可用的数据集。她还协调项目 Exact Street to Shop ( http://tamaraberg.com/street2shop/ ),该项目将现实世界中的一件衣服与网上商店中的同一件衣服进行匹配。这是一项极具挑战性的任务,因为真实照片和网店照片之间存在视觉差异。作者为此应用程序收集了一个新的数据集,包含从 25 个不同的在线零售商收集的 404,683 张商店照片和 20,357 张街道照片,总共提供了 39,479 个项目。结果可在 http://arxiv.org/pdf/1608.03914.pdf 获得。

来自多伦多大学的 Ryan Kiros 为自然语言开发了一个多模态神经语言模型,该模型可以以其他模态为条件。与生成图像描述的其他方法不同,该模型不使用模板、结构化模型或语法树。相反,它依赖于从数百万个单词中学习的单词表示,并根据从深度神经网络中学习的高级图像特征来调节模型。

Lassner 等人在“穿着衣服的人的生成模型”( http://files.is.tue.mpg.de/classner/gp )中提出了一种能够在全身设置中生成穿着衣服的人的图像的模型。作者从大型图像数据库中学习生成模型,处理人类姿势、形状和外观的高度变化。作者将生成过程分为两个部分:身体和服装的语义分割,然后在生成的分割上创建一个条件模型,以创建逼真的图像。

来自麻省理工学院计算机科学和人工智能实验室(CSAIL)的研究人员展示了一种算法,该算法有效地学习了如何预测声音。当显示物体被击中的无声视频剪辑时,该算法可以为击中产生足够真实的声音,以欺骗人类观众。这个“声音的图灵测试”代表的不仅仅是一个聪明的计算机技巧。研究人员设想类似算法的未来版本被用于自动为电影和电视节目制作声音效果,以及帮助机器人更好地理解物体的属性。更多信息见 http://news.mit.edu/2016/artificial-intelligence-produces-realistic-sounds-0613

他们用 46,000 种声音的 1,000 个视频训练了一个发声算法,这些声音代表了各种物体被击打、刮擦和用鼓槌刺激。这些视频被提交给美国有线电视新闻网,该网对声音进行解构,并分析其音高和响度。该算法查看了该视频每一帧的声音属性,并将它们与数据库中最相似的声音进行匹配。

在最近的工作中,周等人提出了一种在给定视觉输入的情况下生成声音并在给定输入视频帧的情况下生成原始波形样本的方法;参见“视觉到声音:为野外视频生成自然声音”( https://arxiv.org/abs/1712.01393 )。

8.8 其他应用

以下是一些其他应用:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 8-3

3D Style transfer (source: https://people.cs.umass.edu/kalo/papers/ShapeSynthesis_Analogies/2014_st_preprint.pdf )

  • 谷歌人工智能实验( https://aiexperiments.withgoogle.com/ )有几个很酷的实验可以玩,从猜谜游戏到音乐生成再到图像自动完成。
  • 亚历克斯·尚标准( https://github.com/alexjc )使用 CNN 通过一种他称为随机神经网络的技术来生成纹理,这种技术能够基于纯噪声和一些预训练来生成高质量的图像。
  • 马里奥·克林格曼( http://mario-klingemann.tumblr.com/ )是一位活跃的研究者,他致力于将生成神经网络应用于图像和艺术
  • Choy 等人的一个作品( https://arxiv.org/pdf/1604.00449.pdf )使用 CNN 的组合来传递来自两个对象的知识,以基于模板集创建新的对象表示;见图 8-3 。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值