我是靠谱客的博主 心灵美吐司,最近开发中收集的这篇文章主要介绍自监督|「ResNet v1」阅读笔记,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

「ResNet v1」阅读笔记

前段时间读了不少cv的自监督论文,通过自己的输出加强理解,同时也通过平台将自己的想法展示给大家,方便交流。
论文:Deep Residual Learning for Image Recognition
地址:Deep Residual Learning for Image Recognition

Intro

模型层数增加会导致梯度爆炸和梯度消失,解决方法有:1. 初始化的时候进行normalization;2. 中间加入BN。现在存在degration 问题:网络深度(层数)增加,准确率逐步饱和,然后快速degrate(下降);经过分析,导致degration的原因不是由于过拟合,增加更多层会导致更高的训练误差。

论文建立深度残差网络结构: 用浅层学习x,再用深层为 residual 建模,最后直接加在一起。并通过实验证明:1. ResNet 更好优化,原始的stack layers训练误差更大;2. ResNet会从深度增加过程获得更大收益

Related Work

Residual representation: 图像识别领域有 VLAD模型,Fisher Vector是VLAD的概率模型;偏微分方程领域,Multigrid方法也有广泛的应用。残差表征在这两个领域的使用说明变形和预先处理可以简化优化问题。
此外,Shortcut 的概念在2015年的论文 Highway networks 中就提出了。同时我找了原理部分的译文描述,方便理解。
highway 原理,中文注解

Deep Residual Learning

一图胜千言,理解这张图就能理解 ResNet 的中心思想,接着论文的细节难点便能不攻自破。
在这里插入图片描述

Figure 2. 的网络顶部未画出部分是一个普通的浅层网络 H ( x ) H(x) H(x) 用来学 x x x, 新加的层 F ( x ) F(x) F(x) 不是继续学 x x x,而是用来学习误差 H ( x ) − x H(x)-x H(x)x.

结构的思路来自于VGG网络,卷积层通常是3*3,需要满足下面的设计规则:1. 若输出结果的feature map大小与前面一致,应该有相同数量的filter数 2. 若feature map减半,为保证每一层的时间复杂度,filter 数量应该翻倍。
ResNet 结构
左图是VGG-19, 右图是 ResNet 具备更少的filter数和更低的复杂度。图中虚线表示维度发生变化。

  • 实线shortcut,输入输出的维度相同,比如紫色都是执行 3 ∗ 3 ∗ 64 3*3*64 3364 的卷积,channel个数一致 y = F ( x , w i ) + x y=F(x, w_i)+x y=F(x,wi)+x
  • 虚线shortcut, 输入输出为度不同,比如绿色第一个虚线,分别执行 3 ∗ 3 ∗ 64 3*3*64 3364 3 ∗ 3 ∗ 128 3*3*128 33128 的卷积,channel个数不同。需要线形映射 W s W_s Ws 调整x的维度, y = F ( x , W i ) + W s x y=F(x, W_i)+W_sx y=F(x,Wi)+Wsx。调整的方法有:
    A). shortcut 依然是identity mapping,但增加 0 padding
    B). shortcut 用1*1,步长为2的卷积,空间维度不做任何改变,主要是改变通道维度
    C). 不管输入输出维度是否相同,所有都做 projection(卷积)

Implementation 细节

  • 图片resize:短边是在【256,480】之间的随机数,为什么要随机呢?增加随机性

  • SGD, minibatch size=256

  • learning rate 开始=0.1 -> 进入平稳状态后➗10,但现在不怎么用了:需要人守着看 error,不好

  • BN 在每个卷积之后和激活函数之前使用

  • 没有使用 drop out,没有全链接层

  • test: 10-crop 裁切测试

什么是 10-crop testing?

1-crop和10-crop顾名思义就是进行1次和10次裁剪。举个例子输入图像是256*256的,网络训练所需图像是 224 ∗ 224 224*224 224224 的。1-corp 是从 256 ∗ 256 256*256 256256 图像中间位置裁一个. 224 ∗ 224 224*224 224224 的图像进行训练,而1 0-corp 是先从中间裁一个 224 ∗ 224 224*224 224224 的图像,然后从图像左上角开始,横着数 224 个像素,竖着数 224 个像素开始裁剪,同样的方法在右上,左下,右下各裁剪一次。就得到了5张 224 ∗ 224 224*224 224224 的图像,镜像以后再做一遍,总共就有10张图片了。参考链接:知乎

为什么要进行10-crop testing?

是图像领域刷榜时提高测试精度常用的手段,跟模型集成有点类似,相当于对一张图做10次不同区域的采样,对10次预估的结果做集成(平均)。做十次预测能够降低方差。训练过程也是随机抽取了,现在测试也随机抽取。

Experiment

ImageNet 验证集上的错误率(模型也是用ImageNet 训练的),可以看出ResNet 整体具有最低的错误率。
在ImageNet 上进行预测分类准确性
初次读自监督系列的文章,见识略浅,还请大家多多指教!

2022.1.19
小姜
????上海长宁

最后

以上就是心灵美吐司为你收集整理的自监督|「ResNet v1」阅读笔记的全部内容,希望文章能够帮你解决自监督|「ResNet v1」阅读笔记所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部