深度神经网络是机器学习(ML, Machine Learning)领域中一种技术。
在监督学习中,以前的多层神经网络的问题是容易陷入局部极值点。如果训练样本足够充分覆盖未来的样本,那么学到的多层权重可以很好的用来预测新的测试样本。但是很多任务难以得到足够多的标记样本,在这种情况下,简单的模型,比如线性回归或者决策树往往能得到比多层神经网络更好的结果(更好的泛化性,更差的训练误差)。
非监督学习中,以往没有有效的方法构造多层网络。多层神经网络的顶层是底层特征的高级表示,比如底层是像素点,上一层的结点可能表示横线,三角; 而顶层可能有一个结点表示人脸。一个成功的算法应该能让生成的顶层特征大化的代表底层的样例。如果对所有层同时训练,时间复杂度会太高; 如果每次训练一层,偏差就会逐层传递。这会面临跟上面监督学习中相反的问题,会严重欠拟合。
2006年,hinton提出了在非监督数据上建立多层神经网络的一个有效方法,简单的说,分为两步,一是每次训练一层网络,二是调优使原始表示x向上生成的高级表示r和该高级表示r向下生成的x'尽可能一致。方法是
1,首先逐层构建单层神经元,这样每次都是训练一个单层网络。
2,当所有层训练完后,hinton使用wake-sleep算法进行调优。将除顶层的其它层间的权重变为双向的,这样顶层仍然是一个单层神经网络,而其它层则变为了图模型。向上的权重用于”认知“,向下的权重用于”生成“。然后使用Wake-Sleep算法调整所有的权重。让认知和生成达成一致,也就是保证生成的顶层表示能够尽可能正确的复原底层的结点。比如顶层的一个结点表示人脸,那么所有人脸的图像应该激活这个结点,并且这个结果向下生成的图像应该能够表现为一个大概的人脸图像。Wake-Sleep算法分为醒(wake)和睡(sleep)两个部分。
2.1,wake阶段,认知过程,通过外界的特征和向上的权重(认知权重)产生每一层的抽象表示(结点状态),并且使用梯度下降修改层间的下行权重(生成权重)。也就是“如果现实跟我想像的不一样,改变我的权重使得我想像的东西就是这样的“。
2.2,sleep阶段,生成过程,通过顶层表示(醒时学得的概念)和向下权重,生成底层的状态,同时修改层间向上的权重。也就是“如果梦中的景象不是我脑中的相应概念,改变我的认知权重使得这种景象在我看来就是这个概念“。
由于自动编码器(auto-encoder,即上面说的神经网络。广义上的自动编码器指所有的从低级表示得到高级表示,并能从高级表示生成低级表示的近似的结构,狭义上指的是其中的一种,谷歌的人脸识别用的)有联想功能,也就是缺失部分输入也能得到正确的编码,所以上面说的算法也可以用于有监督学习,训练时y做为顶层网络输入的补充,应用时顶层网络生成y'。
(原标题:深度神经网络,为何备受关注?)
版权与免责声明:
凡本站注明“来源:智能制造网”的所有作品,均为浙江兴旺宝明通网络有限公司-智能制造网合法拥有版权或有权使用的作品,未经本站授权不得转载、摘编或利用其它方式使用上述作品。已经本网授权使用作品的,应在授权范围内使用,并注明“来源:智能制造网”。违反上述声明者,本站将追究其相关法律责任。
本站转载并注明自其它来源(非智能制造网)的作品,目的在于传递更多信息,并不代表本站赞同其观点或和对其真实性负责,不承担此类作品侵权行为的直接责任及连带责任。如其他媒体、平台或个人从本站转载时,必须保留本站注明的作品第一来源,并自负版权等法律责任。如擅自篡改为“稿件来源:智能制造网”,本站将依法追究责任。
鉴于本站稿件来源广泛、数量较多,如涉及作品内容、版权等问题,请与本站联系并提供相关证明材料:联系电话:0571-89719789;邮箱:1271141964@qq.com。