深度学习的背景

来源:互联网 发布:电信网络电视怎么收费 编辑:程序博客网 时间:2024/06/16 20:24

一、背景

1. 浅层学习

1980年代末期,用于人工神经网络的反向传播算法(也叫Back Propagation算法或者BP算法)的发明,给机器学习带来了希望,掀起了基于统计模型的机器学习热潮。这个热潮一直持续到今天。人们发现,利用BP算法可以让一个人工神经网络模型从大量训练样本中学习出统计规律,从而对未知事件做预测。这种基于统计的机器学习方法比起过去基于人工规则的系统,在很多方面显示出优越性。这个时候的人工神经网络,虽然也被称作多层感知机(Multi-layer Perceptron),但实际上是一种只含有一层隐层节点的浅层模型。
90年代,各种各样的浅层机器学习模型相继被提出,比如支撑向量机(SVM,SupportVector Machines)、Boosting、最大熵方法(例如LR, Logistic Regression)等。这些模型的结构基本上可以看成带有一层隐层节点(如SVM、Boosting),或没有隐层节点(如LR)。这些模型在无论是理论分析还是应用都获得了巨大的成功。相比较之下,由于理论分析的难度,加上训练方法需要很多经验和技巧,所以这个时期浅层人工神经网络反而相对较为沉寂。
2000年以来互联网的高速发展,对大数据的智能化分析和预测提出了巨大需求,浅层学习模型在互联网应用上获得了巨大成功。最成功的应用包括搜索广告系统(比如Google的AdWords、百度的凤巢系统)的广告点击率CTR预估、网页搜索排序(例如Yahoo!和微软的搜索引擎)、垃圾邮件过滤系统、基于内容的推荐系统等。
但早期由于深度神经网络学习主要面临以下问题
(1)优化方面
a.优化策略的核心就是梯度下降法,但对于一个深层的网络,他的函数的梯度也非常复杂。于是,误差反向传播算法就经常在参数初始值选择不当的时候产生梯度消失或者梯度爆炸现象,导致优化无法正常进行。
b.深层神经网络由于是高度非线性的,有着太多的局部极值,很难保证能够得到一个可以接受的更好的解。
(2)数据方面
早期数据集比较小,人们都侧重于解决如何在小数据情形下的算法过拟合问题,典型的就是SVM。而复杂的神经网络在数据量不足的情况下会过拟合的非常严重。
(3)计算能力方面
早期的计算能力无法支持大规模的网络的训练。

2. 深度学习

2006年,加拿大多伦多大学教授、机器学习领域泰斗——Geoffrey Hinton和他的学生Ruslan Salakhutdinov在顶尖学术刊物《科学》上发表了一篇文章,开启了深度学习在学术界和工业界的浪潮。这篇文章有两个主要的信息:1. 很多隐层的人工神经网络具有优异的特征学习能力,学习得到的特征对数据有更本质的刻画,从而有利于可视化或分类;2. 深度神经网络在训练上的难度,可以通过“逐层初始化”(Layer-wise Pre-training)来有效克服,在这篇文章中,逐层初始化是通过无监督学习实现的。
自2006年以来,深度学习在学术界持续升温。斯坦福大学、纽约大学、加拿大蒙特利尔大学等成为研究深度学习的重镇。2010年,美国国防部DARPA计划首次资助深度学习项目,参与方有斯坦福大学、纽约大学和NEC美国研究院。支持深度学习的一个重要依据,就是脑神经系统的确具有丰富的层次结构。一个最著名的例子就是Hubel-Wiesel模型,由于揭示了视觉神经的机理而曾获得诺贝尔医学与生理学奖。除了仿生学的角度,目前深度学习的理论研究还基本处于起步阶段,但在应用领域已显现出巨大能量。2011年以来,微软研究院和Google的语音识别研究人员先后采用DNN技术降低语音识别错误率20%~30%,是语音识别领域十多年来最大的突破性进展。2012年,DNN技术在图像识别领域取得惊人的效果,在ImageNet评测上将错误率从26%降低到15%。在这一年,DNN还被应用于制药公司的DrugeActivity预测问题,并获得世界最好成绩,这一重要成果被《纽约时报》报道。
正如文章开头所描述的,今天Google、微软、百度等知名的拥有大数据的高科技公司争相投入资源,占领深度学习的技术制高点,正是因为它们都看到了在大数据时代,更加复杂且更加强大的深度模型能深刻揭示海量数据里所承载的复杂而丰富的信息,并对未来或未知事件做更精准的预测。

3. 相关方面的大牛

Geoff Hinton是深度学习学派的祖师爷。
Yann Lecun 是 Geoff Hinton 三十年前的弟子,最近深度学习应用于智能理解特别广泛的模型是卷积神经网(ConvNet),就是 Yann Lecun 发明的 / 命名的。
Andrew Ng 是 Michale Jordan( Berkeley 教授,图模型的泰斗)的明星弟子,Andrew 独立后,在Stanford,、Google 和 Baidu 做的反而是deep learning (有点武当弟子学了少林,或者少林弟子学了武当的意味)。后来做了网络公开课程Coursera后名声大噪,意义大大超越了其学术界的地位和范畴。

二. 主要应用

语音识别、图像识别、自然语言处理、搜索广告CTR预测
主要是因为这些领域,可以收集大量样本数据,而且特征不易直接提取。
“之前的系统(非深度学习),我想我们可以称之为“肤浅的学习系统”,会受系统能计算的函数的复杂度的限制。因此,如果你使用一个类似于“线性分类器”的肤浅学习算法来识别图像,你将需要从图像中提取出足够多的参数特征来提供给它。但手动设计一个特征提取器非常困难,而且很耗时。或者使用一个更加灵活的分类器,比如说“支持向量机”或者两层神经网络,直接将图片的像素提供给它们。而问题是这不会提高物体识别的准确性。”-Yann LeCun
复杂特征+简单模型 VS 简单特征+复杂模型

三. 主要的实现

1. DNN

深度神经网络

2. CNN

卷积神经网络

3. RNN

循环(递归)神经网络

4. DBN

深度信念网络

四. 深度学习研发面临的重大问题

1. 理论问题

理论问题主要体现在两个方面,一个是统计学习方面的,另一个是计算方面的。我们已经知道,深度模型相比较于浅层模型有更好的对非线性函数的表示能力。具体来说,对于任意一个非线性函数,根据神经网络的Universal Approximation Theory,我们一定能找到一个浅层网络和一个深度网络来足够好地表示。但深度网络只需要少得多的参数。但可表示性不代表可学习性。我们需要了解深度学习的样本复杂度,也就是我们需要多少训练样本才能学习到足够好的深度模型。从另一方面来说,我们需要多少计算资源才能通过训练得到更好的模型?理想的计算优化方法是什么?由于深度模型都是非凸函数,这方面的理论研究极其困难。

2. 建模问题

在推进深度学习的学习理论和计算理论的同时,我们是否可以提出新的分层模型,使其不但具有传统深度模型所具有的强大表示能力,还具有其他的好处,比如更容易做理论分析。另外,针对具体应用问题,我们如何设计一个最适合的深度模型来解决问题?我们已经看到,无论在图像深度模型,还是语言深度模型,似乎都存在深度和卷积等共同的信息处理结构。甚至对于语音声学模型,研究人员也在探索卷积深度网络。那么一个更有意思的问题是,是否存在可能建立一个通用的深度模型或深度模型的建模语言,作为统一的框架来处理语音、图像和语言?

3. 工程问题

需要指出的是,对于互联网公司而言,如何在工程上利用大规模的并行计算平台来实现海量数据训练,是各家公司从事深度学习技术研发首先要解决的问题。传统的大数据平台如Hadoop,由于数据处理的Latency太高,显然不适合需要频繁迭代的深度学习。现有成熟的DNN训练技术大都是采用随机梯度法(SGD)方法训练的。这种方法本身不可能在多个计算机之间并行。即使是采用GPU进行传统的DNN模型进行训练,其训练时间也是非常漫长的,一般训练几千小时的声学模型所需要几个月的时间。而随着互联网服务的深入,海量数据训练越来越重要,DNN这种缓慢的训练速度必然不能满足互联网服务应用的需要。Google搭建的DistBelief,是一个采用普通服务器的深度学习并行计算平台,采用异步算法,由很多计算单元独立地更新同一个参数服务器的模型参数,实现了随机梯度下降算法的并行化,加快了模型训练速度。与Google采用普通服务器不同,百度的多GPU并行计算平台,克服了传统SGD训练的不能并行的技术难题,神经网络的训练已经可以在海量语料上并行展开。可以预期,未来随着海量数据训练的DNN技术的发展,语音图像系统的识别率还会持续提升。

比较好的文章
http://f.dataguru.cn/article-9865-1.html 神经网络架构演进史
http://www.07net01.com/2016/07/1623722.html “检测”神经网络

参考资料

[1]http://blog.sina.com.cn/s/blog_539819470102v5p0.html 深度学习-发展历程
[2]http://www.wtoutiao.com/p/g9filo.html 扒一扒深度学习的三十年
[3]http://www.huxiu.com/article/109035 IEEE深度对话Facebook人工智能负责人Yann LeCun:让深度学习摆脱束缚
[4]http://www.cnblogs.com/charlotte77/p/5485438.html 深度学习资料大全

0 0
原创粉丝点击