人工智能中的深度结构学习 Learning deep architectures for AI - Yoshua Bengio

Posted 架构师易筋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了人工智能中的深度结构学习 Learning deep architectures for AI - Yoshua Bengio相关的知识,希望对你有一定的参考价值。

图灵奖得主Yoshua Bengio

在这里插入图片描述

约书亚·本吉奥 FRS OC FRSC(生于1964年3月5日[1]在巴黎,法国)是加拿大的计算机科学家,最引人注目的为他的工作,人工神经网络和深度学习。他是蒙特利尔大学计算机科学与运筹学系的教授,也是蒙特利尔学习算法研究所(MILA)的科学主任。

Bengio与Geoffrey Hinton和Yann LeCun一起获得了 2018 年ACM AM 图灵奖,以表彰他们在深度学习方面的工作。Bengio、Hinton和LeCun有时被称为“人工智能教父”和“深度学习教父”。 – 维基百科
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1. 低级和高级人工智能

在超过半个世纪的时间里,使用计算机为我们的世界建模,展示我们所说的“智能”。如果要人工地处理所有信息处理为机器可以利用的形式,以便解决问题并推广到新的情境中,其工作量是无法想象的。因此,许多学者已转而使用学习算法来捕捉这些信息的大部分。虽然人们在理解和改进学习算法方面有了很大的进展,但是不能让机器理解场景并用自然语言描述这个场景的算法,不能推导出足够的语义概念并且能用这些概念和大多数人进行交流的算法。

在这里插入图片描述
举个图片识别的例子,根据图片识别出人类,这是比较低级的识别,如果识别是个男的,并且打坐坐着,根据表情描述人的心情等等,识别要求就比较高了。

2. 如何训练深度结构

深度学习希望能学到特征的层次结构,其中较高层次特征由较低层次特征组合而来。自动地学习这些多层次的特征可以让机器学到从数据输入直接映射到输出的复杂函数,而不是完全依赖于人工特征。这对于处理高层次的抽象是很重要的,因为我们往往也不知道如何根据原始输入定义它们。随着机器学习方法数据量和应用范围的增长,自动学习强特征的能力越来越重要。

结构的深度指的是机器学习的函数中,由非线性操作组成的层级数量。目前大多数训练算法所学得的都只是线层结构(1~3层),但是哺乳动物的大脑用的是深层结构。原始感知的输入被多层次的抽象所表征,每一层次对应着大脑皮层的不同区域。人类也是用类似的方法处理的。大脑处理信息的方式似乎是经过了多层的转换和表示。这在灵长动物的处理系统中得到了验证。其处理方式是有顺序结构的,从检测边缘的存在,到简单图形,然后是更复杂的视觉图案。

受大脑结构的深度处理方式的启发,神经网络的研究者们在几十年来一直希望能训练多层神经网络,在2006年之前都没有成功:他们在使用2到3层机构(也就是1到2个隐层)时有较好的结果,但是层次越深,结果越差。直到2006年才有突破性进展:图灵奖得主多伦多大学的 Hinton 等人构建了深度置信网络(DBNs),其学习算法每次只对一个层级用贪心的思想做训练,每一层采用受限玻尔兹曼机(RBM), 因此可以用无监督学习的方法训练。此后不久,基于自动编码器的相关算法也被提出来,用的也是类似的思想-- 用无监督学习独立地训练中间层。最近,基于统一思想,也有一系列其他深度结构(受限玻尔兹曼机和自动编码器之外)的训练方法被提了出来。

2006年以来,深度网络不仅被成功地运用在分类任务上,在回归、降维、纹理建模、运动跟踪、物体分割、信息检索、机器人、自然语言处理以及协同滤波等方面都有成功的案例。虽然自动编码器、受限玻尔兹曼机以及深度置信网络使用的是无监督学习,在上述的许多应用中,它们已被成功地用于初始化深度有监督前馈神经网络的参数。

3. 中间层表示:在不同的任务中共享特征和抽象

由于深度结构可以认为由一系列层级组合而成,随之而来的问题就是在每一层级里,它的输出(也就是下一层级的输入)都是如何表达原始数据的呢?层级之间的连接时怎样的?最近对于深度结构的研究重点之一就是中间层的表示:深度结构的成功源于中间层使用受限玻尔兹曼机、自动编码器、稀疏自动编码器或是降噪自动编码器,并采用无监督学习的方式学习。这些算法可以看作是对“表示”(下一层级的输入)做转换,将波动影响因子更好地拆解开。无数的观测结果表明,当每一层次有较好的表示后,我们就可以用这些参数作为初始参数,用监督学习的梯度优化方法成功地训练一个深度神经网络。

在大脑中,每个层次的抽象都是由一些“激活”(神经元激励)组成,这些“激活”只占用大量特征中的一小部分,并且通常不是互斥的。由于这些特征不互斥,它们组成了所谓的分布式表示 – 信息并不是局限在某一个神经元里,而是分布在许多神经元之中。此外,大脑对特征的存储似乎是稀疏的-- 只有大约 1% ~ 4% 的神经元在某个时刻是活跃的。其中一些方法是受到大脑中稀疏表征的特点启发,并用于搭建含有稀疏表示的数独结构。

稠密的分布式表示是这类表示的一个极端,稀疏表示处于中间位置,而完全的局部表示则是另一个极端。表示的局部性和所谓”局部泛化“的概念是紧密相连的。许多现有的机器学习算法在输入控件是局部的:为了在不同的数据控件有不同的表现,这些算法需要有一套不同的参数。虽然当参数量很大的时候,统计效率未必很差,但是为了获得较强的泛化能力,往往需要加上一些先验知识不是针对特定任务的时候,它们可能让模型变得很平滑。与这些局部泛化的模型相比,使用分布式表示所能区分的模式数目可能与表示的维数(即学习到的特征数目)呈指数关系。

在许多机器视觉的系统中,学习算法只限制于这样一个处理链条的特定部分,其余部分仍需要大量人工参与。这回限制系统的规模。而且,智能机器的一个标志是能识别足够多的概念,而不只是”人“这个类别。因此,需要一个能处理很多不同任务和概念的算法。人工定义这么多任务显然不可能,所以自动学习在这种情境下变得非常重要。此外,任务之间和任务需求的概念之间的潜在共性非常重要,不利用这些条件是不明智的,而这一直是多任务学习的研究重点。多层级结构很自然地提供部件共享和复用:低层级的特征(如边缘检测)和中间层的特征(如局部目标)不仅对识别人是有用的,在很多其他的视觉任务里也起作用。

深度学习是基于学习跨任务可共享的中间表示的。因此,深度学习能利用无监督的数据和来自相似任务的数据解决大型任务中的数据匮乏问题。它在几个自然语言任务中击败了最先机的算法。它也将相似的深度框架的多任务学习方法应用于视觉任务之中。考虑这样一个多任务情形,不同的任务有不同的输出,而这些输出从共享的高级特征池中获得。由于这些通过学习得来的特征可以在多个任务中共享,这就使得统计上的强度正比于任务的个数。而这些高级特征本身又能通过公共池中的低级别中间特征的组合来表达,统计强度再一次能用相似的方式获得,并且这个策略能在深度框架的每一个层级中使用。

此外,对于大量相关概念的学习有助于实现人能做的”宽泛抽象“,而这一目标无法通过为每个视觉类别独立的训练一个分类器去达到。如果每个高层的类别都是由公共池中抽象特征的组合得到的,则通过这些特征的新组合就能很自然地推广到未见过的类别上。即使只有一部分这样特征的组合出现在训练样本中,由于它们表示了数据不同的侧面,新样本也会用过这些特征新的组合来有意义地表达。

学习人工智能的必经之路

扩展到广义的人工智能中,对人工智能训练算法提出了一些能力上的要求:

  1. 能学习复杂、高度变化的函数(其变化的数量远大于训练样本)。
  2. 能通过很少的人工输入,学习各个层级(低层级、中间层级、高层级)的抽象概念。这些抽象概念对于表示复杂的函数是有益处的。
  3. 能从大量样本中学习:关于样本数量的训练时间复杂度应该趋近于线性。
  4. 能从大部分无标注数据的数据集中学习(也即是半监督学习场景),其中有些数据没有完整或者正确地标注。
  5. 能表示大量任务之间的共性(即多任务学习)。这些共性之所以存在,是因为所有的人工智能任务都只是真实情况的不同表现方式。
  6. 能有很强的无监督学习能力(即能发现观测数据中的结构)。这对于图片目前很多任务的瓶颈是很有必要的,并且很多未来的任务也不能提前知道。
  7. 能学习变长或变结构的上下文情景表达,从而让机器可以在上下文相关的情境下运行并针对观测数据流,做出一系列的行为决策。
  8. 当决策会影响未来的观测和利益时,能有合理的考虑;为了收集更多关于真实世界的数据,能采取行动做出探索(也就是主动学习的一种形式)。

以上是关于人工智能中的深度结构学习 Learning deep architectures for AI - Yoshua Bengio的主要内容,如果未能解决你的问题,请参考以下文章

Deep Learning(深度学习)之Deep Learning的常用模型或者方法

深度学习模型训练技巧 Tips for Deep Learning

深度学习FPGA实现基础知识5(网友一致认可的----Deep Learning(深度学习)学习笔记整理及完整版下载)

深度学习与计算机视觉(11)_基于deep learning的快速图像检索系统

Deep learning:学前了解

[人工智能-深度学习-16]:神经网络基础 - 模型训练超参数 - 学习率(learning rate)