【深度学习】ResNet系列网络结构

ResNet中Residual的功能

DNN的反向传播算法

  • 假设DNN只有一个隐藏层:
    在这里插入图片描述

  • 向前传播得到输出:
    在这里插入图片描述

  • 计算损失函数:
    在这里插入图片描述
    注意当 C C C关于 y j y_j yj求偏导的时候,无论括号中是 y j − z j y_j - z_j yjzj还是 z j − y j z_j - y_j zjyj,得到的结果是相同的

  • 反向传播更新权重:
    在这里插入图片描述
    在这里插入图片描述为什么是上图中是减法:因为优化的目的是让损失函数最小,也就是 y y y z z z最接近。当偏导大于零时,证明损失函数关于权重的函数曲线极小值在 w w w轴左侧,当偏导小于零时,证明损失函数关于权重的函数曲线极小值在 w w w轴右侧。

梯度弥散和梯度爆炸

梯度弥散:靠近网络输入端的权重梯度小,得不到更新
梯度爆炸:靠近网络输出端的权重梯度大,更新特别“飞”

无论是梯度弥散还是梯度爆炸,都是靠近网络输出端的梯度大于靠近网络输入端的梯度。因为:
根据上面的反向传播推导可知,从靠近网络输出端向靠近网络输入端,每向后一层,反向传播的偏导计算便多乘一次激活函数的导,以sigmoid函数作为激活函数为例,它的导数是恒小于一的。所以这样反向传播每向后一层,都在累乘小于一的值。所以靠近网络输出端的梯度大于靠近网络输入端的梯度

网络退化

在增加网络层数的过程中,training accuracy 逐渐趋于饱和,继续增加层数,training accuracy 就会出现下降的现象,而这种下降不是由过拟合造成的

ResNet中Residual的功能

残差网络结构的提出,就是解决了随着网络层数的加深,出现的梯度弥散、梯度爆炸、以及网络退化的现象。

换句话说,ResNet的跳接就是为了提高梯度跨block传播的能力

ResNet系列网络结构

注意ResNet的激活函数放在跳接之后
在这里插入图片描述

  1. 上图中输入图片size为(224, 224, 3)

  2. 经过第一个7x7的卷积层,输出channel为64,步长为2,注意pad为3,即在周围填充三圈

  3. 经过一个3x3的最大池化层,步长为2,注意pad为1

  4. 与VGGNet不同的是,ResNet除了一个3x3的最大池化层,其他下采样全都是使用卷积层实现
    如上图,我们称 c o n v 2 _ x conv2\_x conv2_x c o n v 3 _ x conv3\_x conv3_x c o n v 4 _ x conv4\_x conv4_x c o n v 5 _ x conv5\_x conv5_x为四个卷积组, c o n v 2 _ x conv2\_x conv2_x的下采样由最大池化层实现,其他三个卷积组的下采样,都是由邻接上一个卷积组的残差块实现
    与上一个卷积组邻接的残差块的结构(以ResNet-18/34为例)
    在这里插入图片描述
    其他残差块的结构(以ResNet-18/34为例)
    在这里插入图片描述

结语

如果您有修改意见或问题,欢迎留言或者通过邮箱和我联系。
手打很辛苦,如果我的文章对您有帮助,转载请注明出处。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值