CV笔记01:残差网络学习

残差网络ResNet是为了解决深度神经网络中梯度消失和退化问题而提出的,其核心思想是通过学习残差函数,让网络能更容易学习恒等映射。ResNet通过添加快捷连接,使模型能够学习到输入的残差,降低了深层网络的训练难度。1×1卷积在ResNet中用于调整通道数,同时减少计算量和参数数量。ResNet不仅增强了梯度传播,还打破了网络的不对称性,提升了模型的泛化能力。
摘要由CSDN通过智能技术生成

残差网络resnet

一、背景和思考

神经网络的深度(depth)和宽度(width)是表征网络复杂度的两个核心因素,不过深度相比宽度在增加网络的复杂性方面更加有效(网络越深,可表达的特征越丰富),这也是为什么VGG想要设法增加网络深度的一个原因。

但是神经网络层数叠加地越深,训练会变得更难,效果不一定会更好。当层数加到某种程度,会发生梯度消失和梯度爆炸(神经网络以反向传播为参数更新的基础的结果)。

由于人为的参数设置,梯度更倾向于消失而不是爆炸。

但是归一化BN层已经是解决梯度问题的方法了,resnet是要干什么呢?

回到神经网络上,按理说,当我们堆叠一个模型时,理所当然的会认为效果会越堆越好。因为,假设一个比较浅的网络已经可以达到不错的效果,那么即使之后堆上去的网络什么也不做,模型的效果也不会变差。

比如,现在把我送到清华,清华已经很好了,我去了什么都不做,清华也不会变差。

然而事实上,这却是问题所在。“什么都不做” 恰好是当前神经网络最难做到的东西之一。

MobileNet V2的论文也提到过类似的现象,由于非线性激活函数Relu的存在,每次输入到输出的过程都几乎是不可逆的(信息损失)。我们很难从输出反推回完整的输入。

也就是说,神经网络层不会闲着,它一定要搞点事情,经过它搞的事情,一切都会变化,很难保留原样。

所以网络层结构不会随着层数的增加而尽可能地维持效果,而我们本希望它什么都不做的本质叫做“恒等映射”(identity mapping)

因此,可以认为Residual Learning的初衷,其实是让模型的内部结构至少有恒等映射的能力。以保证在堆叠网络的过程中,网络至少不会因为继续堆叠而产生退化!

二、原理和结构

1.怎么得到恒等映射?

现有的神经网络很难拟合这种恒等映射 H ( x ) = x H(x)=x H(x)=x.

但是如果把网络设计成 H ( x ) = F ( x ) + x H(x)=F(x)+x H(x)=F(x)+x ,即直接把恒等映射作为网络的一部分。就可以把问题转化为学习一个残差函数 F ( x ) = H ( x ) − x F(x)=H(x)-x F(x)=H(x)x.

只要 F ( x ) = 0 F(x)=0 F(x)=0 ,就构成了一个恒等映射 $H(x)=x $ . 而且,拟合残差至少比拟合恒等映射容易得多。

2.打破思维常规

不是寻找输入到输出的映射,而是寻找到 “输出减输入” 。

图中右侧的曲线叫做跳接(shortcut connection),通过跳接在激活函数前,将上一层(或几层)之前的输出与本层计算的输出相加,将求和的结果输入到激活函数中做为本层的输出。x 是本层的输入,是上层的输出。

用数学语言描述,假设Residual Block的输入为 x x x,则输出 y y y 等于:
y = F ( x , W i ) + x (1) y=F(x,{W_i})+x\tag{1} y=F(x,Wi)+x(1)
其中 F ( x , W i ) F(x,W_i) F(x,Wi) 是我们的学习目标 H ( x ) H(x) H(x

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值