前向传播和反向传播_温故知新——前向传播算法和反向传播算法(BP算法)及其推导...

4f83fa8ec948a69e86384e94a87c9047.png

1. 前向传播算法

所谓的前向传播算法就是:将上一层的输出作为下一层的输入,并计算下一层的输出,一直到运算到输出层为止。

05746ccf8d11679ce083c161c2d4407d.png

对于Layer 2的输出

对于Layer 3的输出

从上面可以看出,使用代数法一个个的表示输出比较复杂,而如果使用矩阵法则比较的简洁。将上面的例子一般化,并写成矩阵乘法的形式,

其中

为 sigmoid 函数。

这个表示方法就很简洁、很漂亮,后面我们的讨论都会基于上面的这个矩阵法表示来。所以,应该牢牢记住我们符号的含义,否则在后面推导反向传播公式时会比较懵。


2. 反向传播算法(BP算法)

反向传播(back propagation, BP)算法是 "误差反向传播" 的简称,也称为backprop,允许来自代价函数的信息通过网络向后流动,以便计算梯度。

反向传播是一种与最优化方法(如梯度下降法)结合使用的,用来训练人工神经网络的常见方法。该方法对网络中所有权重计算损失函数的梯度。这个梯度会反馈给最优化方法,用来更新权值以最小化损失函数。

反向传播这个术语经常被误解为用于多层神经网络的整个学习算法。实际上,反向传播仅指用于计算梯度的方法。而另一种算法,例如随机梯度下降法,才是使用该梯度来进行学习。另外,反向传播还经常被误解为仅适用于多层神经网络,但是原则上它可以计算任何函数的到导数(对于一些函数,正确的响应是报告函数的导数是未定义的)。


简单介绍一下链式法则:

微积分中的链式法则(为了不与概率中的链式法则相混淆)用于计复合函数的导数。反向传播是一种计算链式法则的算法,使用高效的特定运输顺序。

是实数,
是从实数映射到实数的函数。假设
并且
。那么链式法则就是:

推导BP算法 ( get一下重点内容 )

在进行反向传播算法前,我们需要选择一个损失函数,来度量训练样本计算出的输出和真实的训练样本输出之间的损失。我们使用最常见的均方误差(MSE)来作为损失函数,

81bace212eab7e5791c9c1cdda2845f3.png

其中

为训练样本计算出的输出,y为训练样本的真实值。加入系数
是为了抵消微分出来的指数。

(1) 输出层的梯度

d0d7547d0d336e6cbd0fdcf8b2a5b0b1.png

其中

表示Hadamard积,即两个维度相同的矩阵对应元素的乘积。

我们注意到在求解输出层梯度的时候有公共的部分,记为

731c63e1b8250c4029dc38172874c70a.png

(2) 隐藏层的梯度

我们把输出层

的梯度算出来了 ,那么如何计算
层的梯度,
层的梯度呢?

因为上面已经求出了输出层的误差,根据误差反向传播的原理,当前层的误差可理解为上一层所有神经元误差的复合函数,即使用上一层的误差来表示当前层误差,并依次递推。

这里我们用数学归纳法,假设第

层的
已经求出,那么我们如何求出第
层的
呢?

1a08662683993325128abdcd1c55c238.png

的关系如下:

这样很容易求出,

a03ef2b89516337aa3c5577f5cd60694.png

所以,

e7fe0b21d6ea29577e649546c15c0ee2.png

现在我们得到了

的递推关系式,只要求出了某一层的
,求解
的对应梯度就很简单:

e8e89f810c752337afd8d5dc92ed4363.png

对反向传播算法的过程进行一下总结:

输入:总层数L,以及各隐藏层与输出层的神经元个数,激活函数,损失函数,迭代步长

,最大迭代次数MAX与停止迭代阈值
,输入的m个训练样本

1. 初始化参数W,b

2. 进行前向传播算法计算,for

to L

3. 通过损失函数计算输出层的梯度

4. 进行反向传播算法计算,for

to 2

e7fe0b21d6ea29577e649546c15c0ee2.png

5. 更新W,b

通过梯度下降算法更新权重

和偏置
的值,
为学习率其中

b856add3f9dae53df35dd95d86e028af.png

6. 如果所有W,b的变化值都小于停止迭代阈值ϵ,则跳出迭代循环

7. 输出各隐藏层与输出层的线性关系系数矩阵W和偏置b

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值