loujiayu

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2014年2月23日

摘要: 对于一个拥有输入层,隐藏层,输出层的三层神经网络,我们称之为shallow learning,它处理输入特征明显的数据效果很好,但对于比较复杂的数据需要引入更多的隐藏层,因为每一个隐藏层可以看作对上一层输出的非线性转换,也就可以学习到更加复杂的模型。但是单纯的在原来三层网络上曾加隐藏层并没有带来更好的效果,因为层数曾加以后使用梯度下降法优化的是一个高度非凸的优化问题,训练误差很容易陷入局部极值,还有通过反向传导算法计算导数的时候,随着网络深度的增加,反向传导的梯度幅值会急剧减小,使得网络中最初几层的权值在训练过程中调整的幅度非常小,我在使用具体数据实验时,曾加隐藏层的个数对于最终的结果几乎没影响,原因在于,对于深度网络反向传导时主要训练的只是最后的logistic层,对于前面的几层只是进行一些微调。要解决上述问题我们需要预训练深度网络,即逐层的训练参数,然后把预训练完成的隐藏层级联在一起,在这之前首先介绍自编码器,它是一种无监督学习,通过自编码器计算出的权重已收敛于合理的范围之内,相比之前随机的选择权重明显靠谱很多。 阅读全文
posted @ 2014-02-23 22:43 Stinky tofu 阅读(3533) 评论(0) 推荐(1) 编辑