机器学习综述(共7页).doc
精选优质文档-倾情为你奉上机器学习综述摘要:为了对高层次结构的抽象的表示,需要有能够对深层结构学习的模型。深层结构是由非线性的多层次组成,如神经网络有许多隐藏的层。深层结构的参数优化是一项困难的任务,例如最近提出的深信念网络(DBN)学习算法很好解决了该问题并取得了一定的成功。深度学习是机器学习中一个非常接近AI的领域,其动机在于建立、模拟人脑进行分析学习的神经网络。关键词:神经网络,无监督,深度学习,AI1 引言机器学习的核心是学习。机器学习的研究主旨是使用计算机模拟人类的学习活动,它是研究计算机识别现有知识、 获取新知识、 不断改善性能和实现自身完善的方法。机器学习研究的就是如何使机器通过识别和利用现有知识来获取新知识和新技能。它是人工智能的一个重要的研究领域。这里的学习意味着从数据中学习, 它包括有监督学习( Supervised Learning )、无监督学习 ( Unsupervised Learning) 和半监督学习( Semi- Supervised Learning )三种类别。目前在机器学习研究领域影响较大的是H. Simon 的观点:学习是系统中的任何改进,这种改进使得系统在重复同样的工作或进行类似的工作时,能完成得更好。学习的基本模型就是基于这一观点建立起来的。深度学习是机器学习研究中的一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像,声音和文本。深度学习是无监督学习的一种。深度学习的概念源于人工神经网络的研究。含多隐层的多层感知器就是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。深度学习的概念由Hinton等人于2006年提出。基于深信度网(DBN)提出非监督贪心逐层训练算法,为解决深层结构相关的优化难题带来希望,随后提出多层自动编码器深层结构。此外Lecun等人提出的卷积神经网络是第一个真正多层结构学习算法,它利用空间相对关系减少参数数目以提高训练性能。深度学习中的主要困难,特别是在模式分类运用中,在数据的维数中学习的复杂性呈指数的线性增长。主流的方法是克服“维数灾难”,通过使用预处理数据的方式,这样能够降维以至于更够有效的处理。降维指的是特征提取,结果可以说是在多模式识别系统智能中转换了特征提取过程中的人类工程,非常具有挑战性并且高度依赖于相关的应用。此外,如果提取了不完全或错误的特征,分类过程本质上表示非常有限。2 浅层学习和深层学习2.1 浅层学习20世纪80年代末期,用于人工神经网络的反向传播算法(也叫Back Propagation算法或者BP算法)的发明,给机器学习带来了希望,掀起了基于统计模型的机器学习热潮。这个热潮一直持续到今天。人们发现,利用BP算法可以让一个人工神经网络模型从大量训练样本中学习统计规律,从而对未知事件做预测。这种基于统计的机器学习方法比起过去基于人工规则的系统,在很多方面显出优越性。这个时候的人工神经网络,虽也被称作多层感知机(Multi-layer Perception),但实际是只含有一层隐层节点的浅层模型。但是BP算法存在一些问题:(1)梯度越来越稀疏:从顶层越往下,误差校正信号越来越小;(2)收敛到局部最小值:尤其是从远离最优区域开始的时候(随机值初始化会导致这种情况的发生);(3)一般,我们只能用有标签的数据来训练:但大部分的数据是没标签的,而大脑可以从没有标签的数据中学习;20世纪90年代,各种各样的浅层机器学习模型相继被提出,例如支撑向量机(SVM,Support Vector Machines)、 Boosting、最大熵方法(如LR,Logistic Regression)等。这些模型的结构基本上可以看成带有一层隐层节点(如SVM、Boosting),或没有隐层节点(如LR)。这些模型无论是在理论分析还是应用中都获得了巨大的成功。相比之下,由于理论分析的难度大,训练方法又需要很多经验和技巧,这个时期浅层人工神经网络反而相对沉寂。2.2 深层学习2006年,加拿大多伦多大学教授、机器学习领域的泰斗Geoffrey Hinton和他的学生RuslanSalakhutdinov在科学上发表了一篇文章,开启了深度学习在学术界和工业界的浪潮。这篇文章有两个主要观点:(1)多隐层的人工神经网络具有优异的特征学习能力,学习得到的特征对数据有更本质的刻画,从而有利于可视化或分类;(2)深度神经网络在训练上的难度,可以通过“逐层初始化”(layer-wise pre-training)来有效克服,在这篇文章中,逐层初始化是通过无监督学习实现的。深度学习的实质,是通过构建具有很多隐层的机器学习模型和海量的训练数据,来学习更有用的特征,从而最终提升分类或预测的准确性。因此,“深度模型”是手段, “特征学习”是目的。区别于传统的浅层学习,深度学习的不同在于:(1) 强调了模型结构的深度,通常有5层、6层,甚至10多层的隐层节点;(2) 明确突出了特征学习的重要性,也就是说,通过逐层特征变换,将样本在原空间的特征表示变换到一个新特征空间,从而使分类或预测更加容易。2.3 深度学习过程(1)采用无标定数据(有标定数据也可)分层训练各层参数,这一步可以看作是一个无监督训练过程,是和传统神经网络区别最大的部分(这个过程可以看作是feature learning过程);(2)基于第一步得到的各层参数进一步fine-tune整个多层模型的参数,这一步是一个有监督训练过程;第一步类似神经网络的随机初始化初值过程,由于DL的第一步不是随机初始化,而是通过学习输入数据的结构得到的,因而这个初值更接近全局最优,从而能够取得更好的效果。3 机器学习方法的新发展3.1 卷积神经网络(Convolutional Neural Networks)CNNs是多层神经网络家族,特别是对两维数据设计,例如图像或视频。CNNs受到早期工作在时延神经网络(TDNN)的影响,通过在时间维度和用于语音和时间序列处理中共享权重以减少学习计算的需求。CNNs是第一个真正成功的深度学习方法,多层次的层次结构被成功的训练。CNNs是利用空间关系选择拓扑结构以减少参数的数量,它必须学习和生成前馈反向传播训练。CNNs是通过最小数据处理需要的目标而提出的一个深层学习框架。在CNNs中,一小部分图像(称为感受野)被视为对最低层输入的层次结构。信息一般通过不同的网络层传播,其中每一层运用数字滤波目的是为了获得观察数据最显著的特征。该方法提供了一个水平位移、尺度、旋转不变性,由于局部感受野允许神经元和处理单元访问最基本的单元,例如定向的边缘和角落。但是,当权重太小时激活函数几乎是线性的,结果图像是模糊的,其他的权重能够引起激活输出类似于与或功能。这些输出形式是一个新的特征映射,然后通过另一个卷积序列、子采样和激活函数。在CNNs中层和空间信息的亲密关系,使得他们非常适合图像处理和理解,他们从图像中自动提取特征一般表现良好。在一些情况下Gabor滤波用来做一些初始的预处理模拟人类视觉回应视觉激发,在最近的工作中,研究人员已经运用CNNs到各种机器学习问题中,包括人脸检测,文献分析,语音识别。CNNs应用在视频中训练,主要目的是找到帧与帧之间连贯性,尽管这需要特定的CNNs。3.2自动编码器(AutoEncoder)3.2.1给定无标签数据,用非监督学习学习特征在我们之前的神经网络中,我们输入的样本是有标签的,即(input, target),这样我们根据当前输出和target(label)之间的差去改变前面各层的参数,直到收敛。但现在我们只有无标签数据,我们将input输入一个encoder编码器,就会得到一个code,这个code也就是输入的一个表示,我们的目的是通过这个code来表示input。这样,我们加一个decoder解码器,这时候decoder就会输出一个信息,那么如果输出的这个信息和一开始的输入信号input是很像的(理想情况下就是一样的),很明显,这个code是靠谱的。所以,我们就通过调整encoder和decoder的参数,使得重构误差最小,这时候就得到了输入input信号的第一个表示了,也就是编码code。由于是无标签数据,所以误差的来源就是直接重构后与原输入相比得到。3.2.2 通过编码器产生特征,然后训练下一层。这样逐层训练得到第一层的code,我们的重构误差最小让我们相信这个code就是原输入信号的良好表达了,或者换种方式说,它和原信号是一模一样的(表达不一样,反映的是一个东西)。第二层和第一层的训练方式就没有差别了,我们将第一层输出的code当成第二层的输入信号,同样最小化重构误差,就会得到第二层的参数,并且得到第二层输入的code,也就是原输入信息的第二个表达。 AutoEncoder存在一些变体,像稀疏自动编码器(Sparse AutoEncoder)、降噪自动编码器(Denoising AutoEncoders)和压缩自动编码器(Contractive AutoEncoder)。但是,AutoEncoder不能用来分类数据,因为它没有学习如何去连结一个输入和一个类。它只是学会了如何去重构或者复现它的输入。或者说,它只是学习获得了一个可以良好代表输入的特征,这个特征可以最大程度上代表原输入信号。那么,为了实现分类,我们就可以在AutoEncoder的最顶的编码层添加一个分类器(例如罗杰斯特回归、SVM等),然后通过标准的多层神经网络的监督训练方法(梯度下降法)去训练。3.3 限制的玻尔兹曼机(Restricted Boltzmann Machines)假设有一个二部图,每一层的节点之间没有链接,一层是可视层,即输入数据层(v),一层是隐藏层(h),如果假设所有的节点都是随机二值变量节点(只能取0或者1值),同时假设全概率分布p(v,h)满足Boltzmann 分布,我们称这个模型是Restricted Boltzmann Machines (RBMs)。RBMs通常使用对比差异学习过程来训练。这需要一定的实际操作经验来决定如何设定元参数数值的值,例如学习率,动量,质量成本,稀疏目标,权重初始值,隐藏单元的数量和每个小量的大小。这根据所使用的单元类型决定,是否随机的或确定的更新它们状态,对歌样本来说多久更新一次隐藏单元的状态,是否在每个数据向量开始时更新状态序列。另外,需要知道如何监控学习过程和何时终止训练。然而,如果我们把隐藏层的层数增加,我们可以得到Deep Boltzmann Machine(DBM);如果我们在靠近可视层的部分使用贝叶斯信念网络(即有向图模型,当然这里依然限制层中节点之间没有链接),而在最远离可视层的部分使用Restricted Boltzmann Machine,我们可以得到Deep Belief Networks(DBN)。3.4 深度信念网络(Deep Belief Networks)DBNs是一个概率生成模型,与传统的判别模型的神经网络相对,生成模型是建立一个观察数据和标签之间的联合分布,对P(Observation|Label)和 P(Label|Observation)都做了评估,而判别模型仅仅而已评估了后者,也就是P(Label|Observation)。对于在深度神经网络应用传统的BP算法的时候,DBNs遇到了以下问题:(1)需要为训练提供一个有标签的样本集;(2)学习过程较慢;(3)不适当的参数选择会导致学习收敛于局部最优解。DBNs由多个限制玻尔兹曼机(Restricted Boltzmann Machines)层组成。这些网络被“限制”为一个可视层和一个隐层,层间存在连接,但层内的单元间不存在连接。隐层单元被训练去捕捉在可视层表现出来的高阶数据的相关性。经典的DBN网络结构 是由若干层 RBM 和一层 BP 组成的一种深层神经网络。DBN 在训练模型的过程中主要分为两步:(1)分别单独无监督地训练每一层RBM网络,确保特征向量映射到不同特征空间时,都尽可能多地保留特征信息;(2)在DBN的最后一层设置BP网络,接收RBM的输出特征向量作为它的输入特征向量,有监督地训练实体关系分类器。而且每一层RBM网络只能确保自身层内的 权值对该层特征向量映射达到最优,并不是对整个DBN的特征向量映射达到最优,所以反向传播网络还将错误信息自顶向下传播至每一层 RBM,微调整个DBN网络。RBM网络训练模型的过程可以看作对一个深层BP网络权值参数的初始化, 使DBN克服了BP网络因随机初始化权值参数而容易陷入局部最优和训练时间长的缺点。上述训练模型中第一步在深度学习的术语叫做预训练,第二步叫做微调。最上面有监督学习的那一层,根据具体的应用领域可以换成任何分类器模型,而不必是BP网络。4 总结与展望机器学习的研究就是希望计算机能像人类那样具有从现实世界获取知识的能力,同时进一步发现人类学习的机理和揭示人脑的奥秘。从目前的研究趋势来看,估计机器学习今后将在以下几个方面做更多的工作:(1)人类学习机制的研究;(2)发展和完善现有的学习方法, 并开展新的学习方法的研究;(3)建立实用的学习系统,特别是多种学习方法协同工作的集成化系统的研究;(4)机器学习有关理论及应用的研究。参考文献1Arel, I., Rose, D. C. and K arnowski, T. P. Deep machine learning - a new frontier in artificial intelligence research. Computational Intelligence Magazine, IEEE, vol. 5, pp. 13-18, 2010.2 Hinton, G. E. Learning multiple layers of representation. Trends in Cognitive Sciences, vol. 11, pp. 428-434, 2007.3 Hinton, G. E. A practical guide to training restricted boltzmann machines. Technical Report UTML TR 2010-003, University of Toronto, 2010.4 Erhan, D., Manzagol, P. A., Bengio, Y., Bengio, S. and Vincent, P. The difficulty of training deep architectures and the effect of unsupervised pretraining. In The Twelfth International Conference on Artificial Intelligence and Statistics (AISTATS), pp. 153160, 2009.5 Erhan, D., Courville, A., Bengio, Y. and Vincent, P. Why Does Unsupervised Pre-training Help Deep Learning? In the 13th International Conference on Artificial Intelligence and Statistics (AISTATS), Chia Laguna Resort, Sardinia, Italy, 2010.6 S. Sukittanon, A. C. Surendran, J. C. Platt, and C. J. C. Burges, “Convolutional networks for speech detection,” Interspeech, pp. 10771080, 2004.7 Y. Bengio, “Learning deep architectures for AI,” Found. Trends Mach. Learn., vol. 2, no. 1, pp. 1127, 2009.8 P. Y. Simard, D. Steinkraus, and J. C. Platt, “Best practices for convolutional neural networks applied to visual document analysis,” in Proc. 7th Int. Conf. Document Analysis and Recognition, 2003, pp. 958963.9 G. E. Hinton, S. Osindero, and Y. Tem, “A fast learning algorithm for deep belief nets,” Neural Comput., vol. 18, pp. 15271554, 2006.10 G. E. Hinton and R. R. Salakhutdinov, “Reducing the dimensional ity of data with neural networks,” Science, vol. 313, no. 5786, pp. 504507, 2006.11 H. Lee, R. Grosse, R. Ranganath, and A. Ng, “Convolutional deep belief networks for scalable unsupervised learning of hierarchical representations,” in Proc. 26th Int. Conf. Machine Learning, 2009, pp. 609616.12 Georey Hinton, “A Practical Guide to Training Restricted Boltzmann Machines,” August 2, 201013 MarcAurelio Ranzato, Christopher Poultney, Sumit Chopra and Yang LeCun," Efficient Learning of Sparse Representations with an Energy-Based Model," in J. Platt et al. (Eds), Advances in Neural Information Processing Systems (NIPS 2006), MIT Press, 200714 Yoshua Bengio, Pascal Lamblin, Dan Popovici and Hugo Larochelle, "Greedy Layer-Wise Training of Deep Networks,” in J. Platt et al. (Eds), Advances in Neural Information Processing Systems 19 (NIPS 2006), pp. 153-160, MIT Press, 2007专心-专注-专业