关于Backpropagation在DeepLearning的一点思考

7 篇文章 0 订阅

Backpropagation介绍

深度学习中,常见的CNN、RNN神经网络中,参数估计通常在经过样本批处理时,使用SGD算法更新权重W和偏置b。SGD会根据样本Loss将误差后向传播,根据chain rule链式法则计算每一层的误差,从而计算总误差关于W、b的导数,从而更新W或者b。

几个定义

  • 神经元:这里考虑误差传播时,通常意义下的隐藏层、输出层、输入层点
  • 神经元输入:u = 前一层输出x * W + b
  • 神经元输出:经过激活函数处理logistic或其他 f(u)

经典Backpropagation实现

参考文档:UFLDL反向传播算法


CNN bp实现

与全连接神经网络相比,主要区别是添加了池化功能和稀疏连接、权值共享功能。这篇论文【1】讲的很清楚。

  • -总误差损耗

  • -层级关系

  • -相对于偏置导数

  • -卷积层

  • -卷积层后跟一个下采样层,计算下采样层误差

  • -普通卷积传播误差计算


同时这篇文章【2】也基本上体现了我要表达的内容。

这里我只说明不同的

  • -最大池化:后向传播时,只更新最大值的损耗,其他网格误差设为0即可。


  • -Dropout:没选中的神经元,不用更新权重。


RNN bp实现

每个时刻都有输出,每个时刻有输出和后一个时刻的隐藏层的连接,故后向时需考虑两块导数即可。参考bptt算法。

Trick

建议看下链式法则,两个相乘时,和求和时处理。

参考

【1】Notes on Convolutional Neural Networks, Jake Bouvrie

【2】http://blog.csdn.net/u010555688/article/details/38780807

【3】wiki-Backpropagation

【4】UFLDL后向传播算法

【5】cs231n-convolutional-networks

【6】Supervised Sequence Labelling with Recurrent Neural Networks

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值