《MATLAB Deep Learning》Ch3 - Training of Multi-Layer Neural Network 学习笔记

Back-propagation algorithm

由于隐藏层的误差项没有被很好地定义(不像输出层有真实值 d i d_i di),多层神经网络的发展停滞了许久。1986年,后向传播算法 Back-propagation algorithm 的引入解决了这个问题。

考虑一个三层网络(输入—隐藏—输出),下面是隐藏层到输出层的转换:
在这里插入图片描述
由前面的章节,我们已经知道对于隐藏层—输出层, δ = φ ′ ( v ) e \delta=\varphi^{'}(v)e δ=φ(v)e δ i \delta_i δi W 2 W_2 W2 的每一行求导,就得到输出层神经元 i 对每一个隐藏层神经元的梯度。

但是现在我们的问题是要求出输入层—隐藏层对应的 δ \delta δ,由于要更新的是 W 1 , W 1 x = v ( 1 ) , y ( 1 ) = φ ( v ( 1 ) ) W_{1},W_1x=v^{(1)},y^{(1)}=\varphi(v^{(1)}) W1,W1x=v(1),y(1)=φ(v(1)),我们需要将 δ i \delta_i δi 对隐藏层神经元 y ( 1 ) y^{(1)} y(1) 求导。

考虑对每一个隐藏层神经元 y j ( 1 ) y^{(1)}_{j} yj(1),它通过 w i j ( 2 ) w^{(2)}_{ij} wij(2)竖着看 W 权重矩阵)作用于输出层神经元 y i y_i yi,故对第一个隐藏层神经元,有:
在这里插入图片描述
转换成矩阵形式,即:
在这里插入图片描述
由此,我们可以统一隐藏层和前面单一网络结构的梯度计算形式,它们的唯一区别就是 δ \delta δ 的计算不同。
在这里插入图片描述

Momentum

momentum 就是增加到 delta 法则上的一个附加项,它考虑到了之前的梯度的影响。
在这里插入图片描述

Cost Function and Learning Rule

在这里插入图片描述
上面是两个经典的损失函数,一个是平方误差损失函数,一个是交叉熵损失函数。“the cross entropy-driven learning rule yields a faster learning process.”

考虑如下图的交叉熵损失,当 d=1 时,y 越接近 1,损失越小;y 越接近 0,损失越大。d=0 时同理。
在这里插入图片描述

梯度计算参考:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值