神经网络与深度学习 笔记3 反向传播算法

1. 使用矩阵快速计算输出的方法

使用 wljk 表示从 (l1)th 层的 kth 个神经元到 lth 层的 jth 个神经元的链接上的权重. 例如,下图给出了网络中第二层的第四个神经元到第三层的第二个神经元的链接上的权重:

       


对网络的偏置和激活值也会使用类似的表示。 我们使用 blj 表示在 lth 层第 jth 个神经元的偏置。使用 alj 表示 lth 层第 jth 个神经元的激活值:

        


有了这些表示,  lth 层的第 jth 个神经元的激活值 alj 就和 (l1)th 层的激活值通过方程关联起来了:

alj=σ(kwljkal1k+blj),

写成向量形式: al=σ(wlal1+bl).


中间量 zlwlal1+bl ,称 zl l 层神经元的带权输入


我们使用 s ⊙ t 来表示按元素的乘积,称为 Hadamard 乘积,或者 Schur 乘积,所以 s ⊙ t 的元素就是 (st)j=sjtj ,给个例子,

[12][34]=[1324]=[38].


2. 反向传播的四个基本方程


引入一个中间量 δlj , 称为 lth 层第 jth 个神经元的误差。 Czlj 是神经元的误差的度量。误差定义为: δljCzlj.


输出层误差的方程, δL : 每个元素定义如下:

δLj=CaLjσ(zLj).(BP1)
以矩阵形式重写方程: δL=aCσ(zL).(BP1a)


使用下一层的误差 δl+1 来表示当前层的误差 δl :
δl=((wl+1)Tδl+1)σ(zl),(BP2)


通过组合 (BP1) 和 (BP2),我们可以计算任何层的误差 δl 。首先使用 (BP1) 计算 δ L ,然后应用方程 (BP2) 来计算 δL1 ,然后再次用方程 (BP2) 来计算 δL2 ,如此一步一步地反向传播完整个网络。


代价函数关于网络中任意偏置的改变率:
Cblj=δlj.(BP3)


代价函数关于任何一个权重的改变率:

Cwljk=al1kδlj.(BP4)


 总结:反向传播的四个方程式
        


3.  反向传播算法




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值