您的位置:首页 > 理论基础 > 计算机网络

深度学习资料整理(深度神经网络理解)

2014-05-07 10:43 495 查看
近这两年里deep learning技术在图像识别和跟踪等方面有很大的突破,是一大研究热点,里面涉及的数学理论和应用技术很值得深入研究,这系列博客总结了深度学习的博客,原理等资料,供大家学习讨论。

一、深度学习资料整理(博客类)

二、深度学习资料整理(文章类

三、深度学习资料整理(软件资源)

四、深度学习原理(关键技术总结,斯坦福大学UFLDL教程)

五、深度学习资料整理(深度神经网络理解

六、深度学习资料整理(压缩感知)
七、深度学习资料整理(从感知机到深度网络)

八、深度学习资料整理(源码)

[b]五、深度学习资料整理(深度神经网络理解[/b]


深度就是隐层多,多层的好处是可以用较少的参数表示复杂的函数。



监督学习中,以前的多层神经网络的问题是容易陷入局部极值点。如果训练样本足够充分覆盖未来的样本,那么学到的多层权重可以很好的用来预测新的测试样本。

实际情况下面对多任务难以得到足够多的标记样本,此时,简单的模型如线性回归或者决策树往往能得到比多层神经网络更好的结果(更好的泛化性,更差的训练误差)。

非监督学习中,以往没有有效的方法构造多层网络。多层神经网络的顶层是底层特征的高级表示,比如底层是像素点,上一层的结点可能表示横线、三角;而顶层可能有一个结点表示人脸。一个成功的算法应该能让生成的顶层特征最大化的代表底层的样例。如果对所有的层同时训练,时间复杂度会太高;如果每次训练一层,偏差就会逐层传递。这会面临跟上面监督学习中相反的问题,会严重欠拟合。



2006年,Hinton提出了在非监督数据上建立多层神经网络的一个有效方法,分为两步:

1) 逐层构建单层神经元,每次训练一层网络。将除最顶层的其它层间的权重变为双向的,这样最顶层仍然是一个单层神经网络,而其它层则变为了图模型。

2) 当所有的层训练完后,用wake-sleep算法进行调优,使原始表示x向上生成的高级表示r和该高级表示r向下生成的x'尽可能一致,也就是保证生成的最顶层表示能够尽可能正确的复原底层的结点。比如顶层的一个结点表示人脸,那么所有人脸的图像应该激活这个结点,并且这个结果向下生成的图像应该能够表现为一个大概的人脸图像(向上的权重用于“认知”,向下的权重用于“生成”)。



Wake-Sleep算法分为两个部分:

a.wake阶段,认知过程。通过外界的特征和向上的权重(认知权重)产生每一层的抽象表示(结点状态),并且使用梯度下降修改 层间的下行权重(生成权重)。也就是:“如果现实跟我想象的不一样,改变我的权重使得我想象的东西就是这样的”。

b.sleep阶段,生成过程。通过顶层表示(醒时学得的概念)和向下权重,生成底层的状态,同时修改 层间向上的权重。也就是:“如果梦中的景象不是我脑中的相应概念,改变我的认知权重使得这种景象在我看来就是这个概念”。



自动编码器(auto-encoder)即上面说的神经网络,广义上的自动编码器 指所有的从低级表示得到高级表示,并能从高级表示生成低级表示的近似的结构;狭义上指其中的一种(谷歌的猫脸识别用的),有联想功能,也就是缺失部分输入也能得到正确的编码。

所以以上算法也可以用于有监督学习,训练时y作为顶层网络输入的补充,应用时顶层网络生成y'。



Deeplearning in Wiki:http://en.wikipedia.org/wiki/Deep_learning

未完,持续更新中,欢迎补充!更多关注:http://blog.csdn.net/tiandijun,欢迎交流!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: