深度学习概述

来源:互联网 发布:卧龙大数据 上市 编辑:程序博客网 时间:2024/05/22 06:43

  机器学习的具体定义众说纷纭,Langley(1996) 定义的机器学习是“机器学习是一门人工智能的科学,该领域的主要研究对象是人工智能,特别是如何在经验学习中改善具体算法的性能”。(Machine learning is a science of the artificial. The field's mainobjects of study are artifacts, specifically algorithms that improve theirperformance with experience.')。Tom Mitchell的机器学习(1997)对信息论中的一些概念有详细的解释,其中定义机器学习时提到,“机器学习是对能通过经验自动改进的计算机算法的研究”。(Machine Learning is the study of computer algorithms that improveautomatically through experience.)。Alpaydin(2004)同时提出自己对机器学习的定义,“机器学习是用数据或以往的经验,以此优化计算机程序的性能标准。”(Machine learning is programming computers to optimize a performancecriterion using example data or past experience.)。无论如何,机器学习在处理复杂非结构化数据上的确体现出强劲的性能和优秀的处理结果。

  机器学习最基本的做法,是使用算法来解析数据、从中学习,然后对真实世界中的事件做出决策和预测。与传统的为解决特定任务、硬编码的软件程序不同,机器学习方法是计算机利用已有的数据,得出了某种模型,并利用此模型预测未来的一种方法。

  机器学习与人类思考的经验过程是类似的,不过它能考虑更多的情况,执行更加复杂的计算。经过计算机得出的模型能够以近似于人的方式解决很多灵活复杂的问题。人类在成长、生活过程中积累了很多的历史与经验。人类定期地对这些经验进行“归纳”,获得了生活的“规律”。当人类遇到未知的问题或者需要对未来进行“推测”的时候,人类使用这些“规律”,对未知问题与未来进行“推测”,从而指导自己的生活和工作。机器学习中的“训练”与“预测”过程可以对应到人类的“归纳”和“推测”过程。通过这样的对应,我们可以发现,机器学习的思想是对人类在生活中学习成长的一个模拟。由于机器学习不是基于编程形成的结果,因此它的处理过程不是因果的逻辑,而是通过归纳思想得出的相关性结论。

  深度学习是机器学习的一个分支,自从90年代以后,神经网络已经消寂了一段时间。但是BP算法的发明人Geoffrey Hinton一直没有放弃对神经网络的研究。由于神经网络在隐藏层扩大到两个以上,其训练速度就会非常慢,因此实用性一直低于支持向量机。2006年,Geoffrey Hinton在科学杂志《Science》上发表了一篇文章,论证了两个观点:1、多隐层的神经网络具有优异的特征学习能力,学习得到的特征对数据有更本质的刻画,从而有利于可视化或分类;2.深度神经网络在训练上的难度,可以通过“逐层初始化” 来有效克服。通过这样的发现,不仅解决了神经网络在计算上的难度,同时也说明了深层神经网络在学习上的优异性。

  深度学习是一种特殊的机器学习,它将现实世界表示为嵌套的层次概念体系(由较简单概念间的联系定义复杂概念,从一般抽象概括到高级抽象表示),深度学习中“深度”的意义体现在度量“深”,这个”深“同复杂度的联系是很紧密的。神经网络的复杂度,我们可以使用层数,神经元数目,或者连接权重数目作为度量。相对的,数据本身的复杂度,我们用带标签的数据的比例和不带标签的数据的比例来衡量。

  深度学习另外一个需要反复权衡的问题就是规模和泛化之间的关系,尤其是分类问题,关于分类的训练误差和测试误差(泛化能力),基本上归结为几个基本要求和限制:1、模型的复杂度 2、训练的数据量3、奥卡姆剃刀原则4、复杂的代价:一个基本的定理,测试误差 >= 训练误差 + 模型复杂度,过度复杂的代价便是过拟合。防止过拟合的方法没有通论,只有经验性的方法。

  还有一个需要考虑的问题是深度是否意味着更多抽象特征?特征的概念从不同角度来讲有不同的解释,例如特征是否等于函数展开的基函数?稀疏编码就是在一堆特征当中寻找最少且拟合最好的特征组,前提假设是图片都可以被分解为这些特征的线性叠加。再例如特征是否等于低维流形嵌入?产生成千上万个没经验证的特征总是容易的,但去除冗余特征,也就是去掉那些添不添加都不影响结果的特征,就需要相当的技巧。一种便是通过低维流形去寻找最重要的结构,这种方法可以利用多层自编码去逐层压缩维度,也可以用传统多层神经网络+isomap类似的方法一步到位地压缩维度,然后不断调整使得嵌入低维的数据点“互相分离的最远”。

  此外,深度学习的优化问题也是与常规机器学习不一样,在实践方面,现在最流行的是随机梯度递减,这是一个极其简单的方法,但其强悍的稳定性深受很多研究者的喜爱,还有不同的人还会结合动量(momentum)、伪牛顿方法(Pseudo-Newton)以及自动步长等启发式方法来增加随机梯度下降的效果。在理论方面,目前研究的比较清楚的还是凸优化,而对于非凸问题的理论还严重空缺,然而深度学习大多数有效的方法都是非凸的。有一种研究观点显示,多层卷积神经网络的损失函数虽然是非凸的,但是阻碍其通向最优点的山头属鞍点居多,是鞍点意味着总是可以找到出路。但是小index的鞍点阻碍能力甚高,而且随机矩阵理论和模拟显示,神经网络在一定能量以上的某个区域全都是这类鞍点。

  深度学习的发展也使得它在其他领域的应用越来越广泛,比如视觉(图像分类、分割,计算摄影学),语音(语音识别),自然语言(文本理解),这当然也得益于现今各行各业丰富的数据集以及计算机计算能力的提升。