ResNet精读笔记(1)

introduction部分提出了几个问题

1.构建一个好的网络 =? 把层堆起来吗

哈哈 跟堆汉堡一样 

这里呢 我们都知道 当网络的层数变多之后 加深了 deep了 但是

就会带来 梯度消失或者爆炸的问题

这里 实在找不到好的图 

本质上因为当层数多了之后 反向传播的计算里面是不是 有连乘啊 那就会导致 

要么算的很小 接近0 而接近0就意味着梯度消失 

要么就接近无穷大那就是梯度爆炸 而解决这问题,

1.初始化要做好一点

权重不要太大 也不要太小

2.中间加入BN层

可以使得校验每个层之间的那些输出和他的梯度的那些均值和方差

在深的网络是可以训练的(避免一些层特别大或是特别小)

我们发现使用这些trick就是可以收敛了

但是

面临第二个难点时,当我们的网络变深了,我们的性能变差了==精度变差

20->50 变差 很明显(这里图中可以看出错误率变高了 很明显)

但是这里并不是因为层数变深模型变复杂导致的过拟合

这是因为你的训练误差也变高了 (这里的训练误差和测试误差都很差)

overfitting的意思是 你的训练精度很高(训练误差变得很低 )但是你的测试精度低了(测试误差变得很高)中间有比较大的区别

也就是说我们发现啊 这个网络用了 BN 用了归一初始化确实work 让最后梯度下降收敛了

但是最后并没有得到一个好的结果 也就是对于最终的结果来说 不怎么有效啊

考虑一个架构浅一点的网络 和一个比较深的版本

注意:比较深的版本  在浅的网络加一些层

我们想一下 如果我们浅的架构很好的话 按道理 深的网络 不应该变差

因为深的架构加的层 都是学到的

(identity mapping)input x output 也是x

把一些权重学成简单的 n 分之一 使得我们的输入和输出 是一一对应的关系

理论上权重确实可以学成这个样子

但是

实际上 臣妾办不到  采用随机梯度下降 深的 层学到表较好的(浅的层学习表现好的层的复制)

而上面的那些层由于identity mapping  

整理一下 我们构建的深的网络 前20层是学的比较好的 后14层是identity mapping  

这样其实效果肯定会好(有这个最优解) 但是我们发现这个SGD(随机梯度下降)办不到,找不到一个最优解

所以 这篇文章 给出了一个解决方案 

identity mapping 不会变差 ——————deep residual learning 框架

RPReplay_Final1673156538

输出 = 输出+输入

shortcut connection ——indentity mapping

1.不会增加任何你需要学习的参数,不会增加模型复杂度

2.加法也不会增加计算的复杂度

3.网络可以被训练

4.在caffe可以直接实现

解释了residual在干嘛

而追溯residual 在机器学习和统计里面比较多 线性模型最早的解法 靠residual 来迭代

那么残差连接如何处理你的输入和输出的形状是不同的情况

1.补0填充

2.投影(1*1的卷积在空间维度上不做任何的change,主要是可以改变channel的维度)

而高宽通常会变成原来的一半 所以给1*1卷积的步长设为2

实验部分

细节1:把短边随机的采样到256和480

随机放到比较大 有一个好处:当切割的时候,会增加随机性

RGB上做颜色增强 BN

没有全连接层 所以没有dropout

10-crop test image 

给一张图片 在里面随机的按照一定规则去采样10个图片在每个子图上做预测

最后将结果做平均

就到这吧,我要休息了,88

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东东要拼命

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值