百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

ResNet - 2015年 ILSVRC 的赢家(图像分类,定位及检测)

toyiye 2024-07-08 00:48 9 浏览 0 评论

本文为 AI 研习社编译的技术博客,原标题 :

Review: ResNet — Winner of ILSVRC 2015 (Image Classification, Localization, Detection)

作者 | SH Tsang

翻译 | 斯蒂芬二狗子

校对 | 酱番梨 审核 | 约翰逊·李加薪 整理 | 立鱼王

原文链接:

https://towardsdatascience.com/review-resnet-winner-of-ilsvrc-2015-image-classification-localization-detection-e39402bfa5d8

在本文,我们ResNet进行了回顾。通过学习残差表征函数而不是直接学习目标表征,ResNet可以拥有多达152层的非常深的网络。

ResNet引入了跳过连接(或快捷方式连接)以适应从前一层到下一层的输入,而无需修改输入。跳过连接可以实现更深入的网络,最终ResNet成为ILSVRC 2015在图像分类,检测和定位方面的赢家,和MS COCO 2015检测和分割的获胜者。

ILSVRC 2015图像分类排名

ImageNet是一个包含超过1500万个标记的高分辨率图像的数据集,包含大约22,000个类别。 ILSVRC在1000个类别中的每一个中使用大约1000个图像的ImageNet子集。总共有大约120万个训练图像,50,000个验证图像和100,000个测试图像。

本文涉及

  1. 普通网络的存在的问题(梯度消失/梯度爆炸)

  2. 残差网络中的跳跃/短连接(ResNet)

  3. ResNet架构

  4. 瓶颈Bottleneck的设计

  5. 消融研究(实验对比)

  6. 与最新方法的比较(图像分类)

  7. 与最新方法的比较(目标检测)

1、普通网络的存在的问题

对于传统的深度学习网络,它们通常具有卷积层,完全连接(FC)层,用于分类任务,如AlexNet,ZFNet和VGGNet,没有任何跳跃/短连接,我们称之为普通网络。当普通网络更深(层数增加)时,会出现梯度消失/梯度爆炸的问题。

Vanishing / Exploding Gradients 梯度消失/爆炸

在反向传播期间,当误差函数相对于每次训练迭代中的当前权重的求偏导数时,通过n层网络会导致将这些小/大梯度数值被乘上n倍的梯度效果。

当网络很深时,这些小数字乘n变成零(消失)。

当网络很深时,这些大数的乘n变得特别大(爆炸)。我们一般会期望更深的网络有更准确的预测。但是,下面一个反例说明,20层普通网络比56层普通网络具有更低的训练误差和测试误差,这是梯度消失而出现性能退化问题。

CIFAR-10数据集的普通网络

2、残差网络中的跳跃/短连接(ResNet)

为了解决消失/爆炸梯度的问题,添加了 跳跃/短连接 skip / shortcut 在几个权重层之后将输入x加到输出上,如下所示:

残余网络的构建模块

因此,输出H(x)= F(x) + x。

权重层实际上是学习一种残差映射:F(x)=H(x)-x

( 反向传播时)即使权重层有梯度消失现象,我们仍然总是将x转移回较早的层。

3、ResNet架构

具有跳跃/短连接的34层ResNet,34层普通网络(中部),19层VGG-19(底部)

上图显示了ResNet架构。

  1. VGG-19 [2](底部)是ILSVRC 2014中最先进的方法。

  2. 34层普通网络(中间)被视为比VGG-19的更深的网络,即更多卷积层。

  3. 34层剩余网络(ResNet)是普通网络添加了跳跃/短连接

对于ResNet构建模块,当输入尺寸小于输出尺寸时,有3种类型的 跳跃/短连接。

(A)短连接Shortcut执行映射恒等映射(identity mapping),使用额外的零填充zero padding来增加维度。因此没有额外增加参数。

(B)一个投影短连接projection shortcut仅用于增加尺寸,其他短连接shortcut还是恒等的连接。网络需要额外的参数。

(C)所有短连接都是投影连接。额外需要的参数多于(B)。

4、瓶颈Bottleneck的设计

由于现在网络很深,时间复杂度很高。瓶颈Bottleneck设计用于降低复杂性,如下所示:

基本块(左)和论文所提出的瓶颈块设计(右)

如图(右)所示,1×1转换层被添加到网络的开始和结束。这是Network In Network和GoogLeNet(Inception-v1)中建议的技术。事实证明,1×1转换可以减少连接数(参数),同时不会降低网络性能。 (如果感兴趣,请访问我的评论。)

用瓶颈模块,34层ResNet成为50层ResNet。而且文章还给出更深层的网络与瓶颈设计:ResNet-101和ResNet-152。所有网络的整体架构如下:

所有网络的整体架构

值得注意的是,VGG-16/19有15.3 / 196亿FLOPS。 ResNet-152的复杂程度仍低于VGG-16/19 !!!!

5、消融实验

5.1 传统网络 VS 残差网络

验证错误率:18层和34层普通网络(左),18层和34层ResNet(右)

使用10种作物测试的Top-1错误率

当使用普通网络时,由于梯度消失问题,18层优于34层。

当使用ResNet时,34层优于18层,消失梯度问题已通过跳过连接解决。

如果我们比较18层普通网络和18层ResNet,没有太大区别。这是因为浅层网络不会出现消失梯度问题。

6、与最先进方法的比较(图像分类)

6.1 ILSVRC 数据

10种作物测试结果

通过比较ResNet-34 A,B和C,得出B略好于A,C略好于B,这是因为B引入了额外的参数。ResNet-A,B,C都获得了大约7%的错误率。

通过将网络深度增加到152层,获得5.71%的Top5错误率,这比VGG-16,GoogLeNet(Inception-v1)和PReLU-Net好得多。

多尺度信息全卷积网络在10种作物数据的测试结果

此时,ResNet-152可以获得4.49%的错误率。

10种作物测试+全卷积网络,具有多尺度信息+ 6模型集成的结果

增加了6种模型的集成后,错误率为3.57%。

6.2 CIFAR-10 数据集

CIFAR-10 结果

通过跳过连接,我们可以建立更深的模型。然而,当层数从110到1202时,发现错误率从6.43%增加到7.93%,这扔为本文中的一个未决问题。然而,ResNet-1202没有优化难度,即它仍然可以收敛。

7、与最先进方法(物体检测)的比较

PASCAL VOC 2007/2012 数据 mAP (%)

MS COCO mAP (%)

通过将ResNet-101用于faster R-CNN [3-4],ResNet获得了比VGG-16更好的性能。ResNet最终赢得了ImageNet检测,定位,COCO检测和COCO分割的第一名!

相关文献

[2016 CVPR] [ResNet]Deep Residual Learning for Image Recognition

[2015 ICLR] [VGGNet]Very Deep Convolutional Networks for Large-Scale Image Recognition

[2015 NIPS] [Faster R-CNN]Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

[2017 TPAMI] [Faster R-CNN]Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

我的评论文

Review: Faster R-CNN (Object Detection)

Review: Batch Normalization (Inception-v2 / BN-Inception) -The 2nd to Surpass Human-Level Performance in ILSVRC 2015 (Image Classification)

Review: PReLU-Net, The First to Surpass Human-Level Performance in ILSVRC 2015 (Image Classification)

Review: GoogLeNet (Inception v1) — Winner of ILSVRC 2014 (Image Classification)

Review: VGGNet — 1st Runner-Up (Image Classification), Winner (Localization) in ILSVRC 2014

想要继续查看该篇文章相关链接和参考文献?

点击【ResNet - 2015年 ILSVRC 的赢家(图像分类,定位及检测)】或长按下方地址:

https://ai.yanxishe.com/page/TextTranslation/1525

AI研习社今日推荐:雷锋网雷锋网雷锋网

李飞飞主讲王牌课程,计算机视觉的深化课程,神经网络在计算机视觉领域的应用,涵盖图像分类、定位、检测等视觉识别任务,以及其在搜索、图像理解、应用、地图绘制、医学、无人驾驶飞机和自动驾驶汽车领域的前沿应用。

加入小组免费观看视频:https://ai.yanxishe.com/page/groupDetail/19

相关推荐

CFopen21.1、CFopen21.2都来了(cfile open)

[呲牙][赞][加油]

为何越来越多的编程语言使用JSON(为什么编程)

JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...

何时在数据库中使用 JSON(数据库用json格式存储)

在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...

MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)

前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...

JSON对象花样进阶(json格式对象)

一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...

深入理解 JSON 和 Form-data(json和formdata提交区别)

在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...

JSON 语法(json 语法 priority)

JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...

JSON语法详解(json的语法规则)

JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组注意:json的key是字符串,且必须是双引号,不能是单引号...

MySQL JSON数据类型操作(mysql的json)

概述mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据...

JSON的数据模式(json数据格式示例)

像XML模式一样,JSON数据格式也有Schema,这是一个基于JSON格式的规范。JSON模式也以JSON格式编写。它用于验证JSON数据。JSON模式示例以下代码显示了基本的JSON模式。{"...

前端学习——JSON格式详解(后端json格式)

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLa...

什么是 JSON:详解 JSON 及其优势(什么叫json)

现在程序员还有谁不知道JSON吗?无论对于前端还是后端,JSON都是一种常见的数据格式。那么JSON到底是什么呢?JSON的定义...

PostgreSQL JSON 类型:处理结构化数据

PostgreSQL提供JSON类型,以存储结构化数据。JSON是一种开放的数据格式,可用于存储各种类型的值。什么是JSON类型?JSON类型表示JSON(JavaScriptO...

JavaScript:JSON、三种包装类(javascript 包)

JOSN:我们希望可以将一个对象在不同的语言中进行传递,以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式JSON(JavaScriptObjectNotation)-JS的对象表示法...

Python数据分析 只要1分钟 教你玩转JSON 全程干货

Json简介:Json,全名JavaScriptObjectNotation,JSON(JavaScriptObjectNotation(记号、标记))是一种轻量级的数据交换格式。它基于J...

取消回复欢迎 发表评论:

请填写验证码