深度学习系列6:卷积神经网络的反向传播

引言

卷积神经网络一般会借助 TensorFlow 或者 PaddlePaddle 来开发,仅需要开发正向传播,反向传播会自动生成,所以一般不要求掌握。但是技多不压身,今天我们就一起聊一下卷积神经网络的反向传播。

一、卷积神经网络

如图所示,卷积神经网络先由若干个卷积和池化层进行局部特征识别和降维,之后再用若干全连接层去分类。

  1. 每个卷积层+池化层作为一组,提取局部特征并降低维度
  2. 经过几组后,图像维度为{W: 1, H: 1, C: n}
  3. 将图像 n 个渠道作为全连接层的输入,相当于 n 个维度
  4. 如果有 m 张图像,则全连接层的输入矩阵为 X n ∗ m X_{n*m} Xnm
  5. 之后就和深度学习一样了,经过隐藏层和输出层,计算 y ^ \hat y y^

二、卷积神经网络的反向传播

全连接层的反向传播我们在深度学习中已经讨论过,这里只需要讨论卷积层和池化层的反向传播,最后我们把整个卷积神经网络的反向传播串起来。

2.1 卷积层的反向传播

先回顾一下卷积运算:
A [ l − 1 ] ∗ W [ l ] + b = Z [ l ] A^{[l-1]} * W^{[l]} + b = Z^{[l]} A[l1]W[l]+b=Z[l]

这里 W 表示卷积核, ∗ * 表示卷积运算(对应相乘加和)

看一个例子。
[ a 11    a 12    a 13 a 21    a 22    a 23 a 31    a 32    a 33 ] ∗ [ w 11    w 12 w 21    w 22 ] + b = [ z 11    z 12 z 21    z 22 ] \begin{bmatrix} a_{11}\;a_{12}\;a_{13} \\ a_{21}\;a_{22}\;a_{23} \\ a_{31}\;a_{32}\;a_{33}\end{bmatrix} * \begin{bmatrix}w_{11}\;w_{12}\\ w_{21}\;w_{22}\end{bmatrix} +b = \begin{bmatrix} z_{11}\;z_{12}\\ z_{21}\;z_{22} \end{bmatrix} a11a12a13a21

  • 8
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
卷积神经网络是一种常用的深度学习模型,用于图像识别、语音识别等。反向传播卷积神经网络中常用的优化算法,用于更新网络中的参数,使得网络的输出与实际值更加接近。 卷积神经网络反向传播结构和公式如下: 1. 前向传播:卷积神经网络的前向传播是指将输入数据通过卷积层、激活函数、池化层等操作,最终得到输出结果的过程。前向传播过程中,每个神经元都会计算输入数据加权和,并经过激活函数进行非线性变换,输出到下一层。 2. 反向传播卷积神经网络反向传播是指通过链式法则,将输出误差从最后一层传递回到前面的各层,求得各层的梯度,并利用梯度下降法更新网络中的参数。反向传播过程中,每个神经元都会计算输出误差对其输入的偏导数,从而得到该神经元的梯度。 3. 损失函数:卷积神经网络的训练过程中,需要定义一个损失函数来衡量网络的输出与实际值之间的差距。常见的损失函数有交叉熵损失函数、均方误差损失函数等。 4. 梯度计算:对于每个神经元,可以通过链式法则计算其梯度。假设该神经元的输出为y,权重参数为w,偏置参数为b,损失函数为L,则该神经元的梯度可以表示为: ∂L/∂y * ∂y/∂w = ∂L/∂y * x 其中,x表示该神经元的输入。 5. 参数更新:在反向传播过程中,计算得到各个神经元的梯度后,可以利用梯度下降法更新网络中的参数。假设该神经元的权重参数为w,学习率为η,则参数更新公式为: w = w - η * ∂L/∂w 通过不断地反向传播和参数更新,可以使得卷积神经网络的输出更加接近实际值,从而提高模型的准确率。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值