对残差网络的浅显理解

随心笔记
对于深层神经网络,并不是层数越深,效果就会越好。对于模型的准确率会随着层数加深呈现一种上升再下降的趋势。为什么会形成退化呢?
因为随着模型准确率的提升,提升到一定程度后,没有学到恒等映射(输入x,输出也是x),我们希望学习到足够深时(n层),后面的网络什么都不做即(m-n)是没有用的。可是事实却不是这样,因为后面的非恒等映射,使得模型被破坏。
这里就引入了残差网络。
在这里插入图片描述
我们通过shaorcut connections把输入的x传到输出的H(x)中。我们希望H(x)= x,但是我们经过两个全连接层也好,卷积层也罢,F(x)都会存在。我们称F(x)= H(x) - x叫做残差。我们把这样的结构叫做残差单元。
这样,H(x)就是我们的预测值,x是我们的观测值,F(x)就变成了预测值与观测值之差。后面的训练目标就是要将F(x)结果逼近于0,使到随着网络加深,准确率不下降。
在StarGAN中,残差网络由6个残差单元构成。
残差单元:
卷积层
归一化
激活函数Relu(这里用relu的好处是ReLU能够将负数激活为0,过滤了负数的线性变化,也能够更快的使得F(x)=0)
卷积层
归一化

nn.Conv2d(dim_in, dim_out, kernel_size=3, stride=1, padding=1, bias=False),
            nn.InstanceNorm2d(dim_out, affine=True, track_running_stats=True),
            nn.ReLU(inplace=True),
            nn.Conv2d(dim_out, dim_out, kernel_size=3, stride=1, padding=1, bias=False),
            nn.InstanceNorm2d(dim_out, affine=True, track_running_stats=True))

参考https://blog.csdn.net/weixin_42354073/article/details/89367315
https://blog.csdn.net/zimiao552147572/article/details/104547017/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值