姓名:李兴宇 学号:16030110084
转载自:http://blog.jobbole.com/112109/,
http://blog.csdn.net/nicholas_liu2017/article/details/71250082,
https://www.zhihu.com/question/28638393/answer/139014880,
有删节,部分内容来自百度百科。
【嵌牛导读】:随着AI技术的不断发展,一个新的名词“深度学习”进入了大家的视野,那么深度学习究竟是什么呢?
【嵌牛鼻子】:深度学习,人工智能,人工神经网络,机器学习
【嵌牛提问】:深度学习是什么?深度学习和人工智能之间是什么样的关系?它的优势与局限性体现在哪些方面?
【嵌牛正文】:
一、深度学习是什么?
深度学习的概念源于人工神经网络的研究。含多隐层的多层感知器就是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。
深度学习的概念由Hinton等人于2006年提出。基于深度置信网络(DBN)提出非监督贪心逐层训练算法,为解决深层结构相关的优化难题带来希望,随后提出多层自动编码器深层结构。此外Lecun等人提出的卷积神经网络是第一个真正多层结构学习算法,它利用空间相对关系减少参数数目以提高训练性能。
深度学习是机器学习中一种基于对数据进行表征学习的方法。观测值(例如一幅图像)可以使用多种方式来表示,如每个像素强度值的向量,或者更抽象地表示成一系列边、特定形状的区域等。而使用某些特定的表示方法更容易从实例中学习任务(例如,人脸识别或面部表情识别)。深度学习的好处是用非监督式或半监督式的特征学习和分层特征提取高效算法来替代手工获取特征。
深度学习是机器学习研究中的一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像,声音和文本。
同机器学习方法一样,深度机器学习方法也有监督学习与无监督学习之分.不同的学习框架下建立的学习模型很是不同.例如,卷积神经网络(Convolutional neural networks,简称CNNs)就是一种深度的监督学习下的机器学习模型,而深度置信网(Deep Belief Nets,简称DBNs)就是一种无监督学习下的机器学习模型。
二、深度学习和人工智能之间是什么样的关系?
1. 深度学习与AI。本质上来讲,人工智能相比深度学习是更宽泛的概念。人工智能现阶段分为弱人工智能和强人工智能,实际上当下科技能实现的所谓“人工智能”都是弱AI,奥创那种才是强AI(甚至是boss级的)。而深度学习,是AI中的一种技术或思想,曾被MIT技术评论列为2013年十大突破性技术(Deep Learning居首)。或者换句话说,深度学习这种技术(我更喜欢称其为一种思想,即end-to-end)说不定就是实现未来强AI的突破口。
2. 深度学习与ML。DL与ML两者其实有着某种微妙的关系。在DL还没有火起来的时候,它是以ML中的神经网略学习算法存在的,随着计算资源和big data的兴起,神经网络摇身一变成了如今的DL。学界对DL一般有两种看法,一种是将其视作feature extractor,仅仅用起提取powerful feature;而另一种则希望将其发展成一个新的学习分支,也就是我上面说的end-to-end的“深度学习的思想”。
三、深度学习的优势
1、高效率。 如果用传统算法去评估一个棋局的优劣,可能计算量超大,还不一定准确。用训练好的神经网络去评估,就是一眨眼的功夫。这就是为什么AlphaGo能够这么强,它节省了大量的计算,使得本来不可行的事情变为可行。
2、可塑性。 如果用传统算法去解决一个问题,调整模型的代价可能是把代码重新写一遍,这使得改进的成本巨大。深度学习只需要调整参数,就能改变模型。这使得它具有很强的灵活性和成长性。一个程序可以持续改进,然后达到完美的境界。
3、普适性。 神经网络是通过学习来解决问题,可以根据问题自动建立模型,所以能够适用于各种问题,而不是局限于某个固定的问题。
4、神经网络很强大的地方在于完美的拟合能力,可以逼近任何复杂的函数,而且神经网络的维度可以达到无穷维,这样其对数据的拟合能力是相当强大的。往往已有的传统的机器学习方法,在某一定程度上属于神经网络的特例。例如SVM,Logistic regression等均可以由神经网络来完成。
5、神经网络由于包含了许多隐藏层,而隐藏层又具有许多隐藏结点,这样便使得神经网络的表达能力十分强大,这在贝叶斯理论中有很好的体现。即对于受限玻尔兹曼机,通过神经网络的形式,逐层训练受限玻尔兹曼机,或者贝叶斯网络,便可以构建深度玻尔兹曼机,深度贝叶斯网络,使该网络的表征能力进一步的提升。在此基础上,出现了自编码,使得神经网络可以无监督的学习数据的特征,尤其是图片等抽象的特征,对于后续的分类,检测,分割等提供了很好的特征支持,不需要人为了设定特征,但在某一定程度上,传统的特征提取方法仍然可以为神经网络特征的学习提供参考方案。
6、进一步,现在提出的卷积神经网络,递归神经网络等,进一步改善了神经网络的性能,使其在特定领域得以更好的应对具体问题,体现出了其强大的能力。卷积神经网络,在某一定程度上,认为图像局部间具有很强的关联,而较远的区域关联度不大,因此做了马尔科夫假设,使得训练神经网络更加的容易。神经网络同样可以和概率模型相结合,使得神经网络具有推断能力,加入了随机因素,使得神经网络的推理能力得以提升。
四、深度学习的局限性
深度学习最令人惊讶的特点便是极易上手。十年以前,没有人可以猜得到经过梯度下降法训练过的简单参数模型可以在机器感知问题上实现如此惊人的结果。现在,事实证明,研究者所需要做的只是使用足够大的梯度下降素材来训练参数模型。正如 Feynman 曾经描述宇宙一样,“它并不复杂,只是里面包含的东西实在太多。”
在深度学习中,所有的东西都是一个向量(任何的东西都是几何空间中的一个点)。模型的输入(可能是文字,图片,等等)和目标首先被向量化(变成了一些初始输入向量空间和目标向量空间)。深度学习模型中的每个层都对通过它的数据进行一个简单的几何变换。同时,模型的层链形成一个非常复杂的几何变换,分解成一系列简单的几何变换。这种复杂的转换尝试将输入空间映射到目标空间,一次一个点。该变换按层级的比重进行参数化,这些层根据模型当前执行的程度进行迭代更新。这种几何变换的一个关键特征是它必须是可微分的,这是为了使我们能够通过梯度下降来学习来获得其参数。更直接一点,这意味着从输入到输出的几何变形必须是平滑和连续的——这是一个显着的约束。
这种复杂的几何变换应用到输入数据的整个过程可以理解为一个试图破坏纸球的人在3D中被可视化。褶皱的纸球可以理解为模型开始时的大量输入数据。每一次人的行为则是数据通过不同层级被处理的过程。完整的不起眼的人的手势序列是整个模型的复杂变换。深度学习模型是用于解决高维数据的复杂流形的数学机器。
这便是深度学习的奥妙:将含义转化为向量,几何空间,然后逐步学习将一个空间映射到另一个空间的复杂几何变换。所以开发者需要有足够高的维度的空间以便拥有原始数据关系的全部范围。
可以通过这种简单策略实现的应用程序空间几乎是无限的。然而到目前为止,更多的应用程序对于当前的深入学习技术是完全无法实现的——即使是大量人为注释的数据。例如,你可以组装一个数据,数十万甚至数百万的英文语言描述软件产品的功能。由产品经理编写,由一个团队开发的相应的源代码并且有工程师满足这些要求。即使有这些数据,也不能训练出一个深入的学习模型来简单地阅读产品描述并生成相应的代码库。这只是其中一个例子。
一般来说,无论投入多少数据,任何需要推理式编程或应用科学方法(长期规划和类似算法的数据操作)都无法使用深度学习模式进行实现。 即使是学习具有深层神经网络的排序算法也是非常困难的。
这是因为一个深入的学习模型是“简单的”连续的几何变换链,将一个向量空间映射到另一个。他所可以做的是将一个数据包X映射到另一个数据包Y,并假设存在从X到Y的可学习的连续变换与X:Y的秘籍采用可用性作的数据。所以即使一个深入的学习模型可以被解释为一种程序,相反的大多数程序不能表示为深度学习模型 – 对于大多数任务,要么没有相应的实际大小的深层神经网络来解决任务,要么即使存在一个,它也可能不可学习,即相应的几何变换可能太复杂,或者可能没有可用的数据来学习它。通过堆叠更多层次和使用更多的培训数据来扩展当前的深度学习技术,只能表面缓解其中的一些问题。 深度学习模式在可以代表的方面是非常有限的,而且大多数希望学习的程序不能被表达为连续几何变形的数据流。
拟人化机器学习模型的隐患
现阶段人工智能的一个不得不面对的问题在于研究者们误解了深度学习模式的做法,并高估了自己的实力。人类思想的一个根本特征是我们的“主观意识”,我们倾向于对我们周围的事物投射意向,信仰和知识。在一个石头上画一个笑脸感觉石头都变高兴了。同样在深度学习中,当我们有能力成功地训练一个模型来创作描述图片的标题时,我们误认为该模型“理解”图片的内容以及它产生的标题。然而,当轻微改变训练数据中存在的图像时,研发者会非常惊讶的发现模型开始创作完全荒谬的字幕。
通常,这类行为被强调为对抗例子,是通过向深度学习网络输出错误的样本来欺骗模型进行分类。通过梯度上升,可以稍微修改图像,以便最大化给定类的预测。 通过拍摄一只熊猫,并添加一个“长臂猿”梯度,我们可以得到一个神经网络将这只熊猫分类为长臂猿。 这证明了这些模型的脆弱性,以及它们运行的输入到输出映射与我们自己的人类感知之间的深刻差异。
简而言之,深度学习模式对他们的输入没有任何理解,至少不是从人的意义上来说。我们对图像,声音和语言的理解是基于我们的运动感觉体验。然而机器人却没有这种经验,因此不能以任何以人为本的方式理解他们的驶入。通过输入大量的培训示例来训练我们的模型,我们让他们学习一个几何变换,将数据映射到这个特定的一组示例上的人类概念,但是这个映射只是我们思想中原始模型的简单草图, 从我们的体验中发展出来的假想——就像一面镜子中的一个昏暗的形象。
作为一名机器学习从业者,始终要注意这一点,不要陷入陷阱,认为神经网络了解他们所执行的任务(并不会) – 至少不会对我们有意义。 他们接受了不同于我们教导,进行了不同的,更窄的任务的训练:即将训练投入与训练目标进行比较。 如果向他们展示偏离训练数据的任何东西,机器将以最荒谬的方式打破以前的结论。
局部泛化与极端泛化
在深度学习模型所做的输入与输出之间的简单的几何变形以及人类思考和学习的方式之间似乎存在着根本的区别。人类不仅仅是从亲身体验中进行学习,还提供了明确的学习方法。除了不同的学习过程外,底层的特性有着根本的却别。
人类的能力远不止对刺激做出回应,因为深网或者昆虫也可以。人会对目前的情况形成抽象复杂的模型,并根据这些模型来预测不同的未来,且进行长期的规划。人类有能力将已知的概念融合在一起,来表现以前从未经历过的事情,比如穿着牛仔裤的马,或者想象如果中了彩票会做什么。这种处理假设的能力,使我们的心理模型空间远远超过了我们可以直接体验到的一切。这种行为被称为极端泛化。
这与深层网络的局部泛化形成了鲜明的对比:如果训练时间内新的输入信息差异甚微,则停止从输入到输出的映射。假设使用机器来学习适当的发射参数以解决火箭登陆月球的问题,在使用深网进行此项任务时,无论是使用监督学习还是强化学习进行培训,都需要数以千万次的启动试验作为补充,以便学习从入空间到输出空间的可靠映射。相比之下,人类可以利用抽象能力来提出物理模型——火箭科学,并得到一个精确地解决方案,只需要一次或几次时间即可以让火箭成功登月。同理,如果开发一款控制人体的深网,并希望他学会安全的在城市里行驶。那么在在这种情况下则需要现在各种情况下死掉数千次直到可以推断出危险的行车路线并制定合适的回避行为。当进入一个新的城市,深网有需要重新学习大部分知识。相反,人类能够直接学习安全行为而不用经历死亡,这都要归功于人脑的抽象建模。
简而言之,尽管我们在机器感知方面取得了不小的进步,但是我们仍然离人类级别的人工智能有很大区别。我们的模型只能执行局部泛化,在过去中学习来适应最新的情况。而人类可以极端泛化,迅速适应大胆新奇的情况,或为长期未来的情况进行规划。