5.10.10 用于图像识别的深度残差学习

1. 介绍

深度卷积神经网络为图像分类带来了一系列突破。深度网络自然地以端到端的多层方式集成低/中/高级特征和分类器,并且特征的“级别”可以通过堆叠层的数量(深度)来丰富。

学习更好的网络是否像堆叠更多层一样容易?

这个问题的一个障碍是臭名昭著的梯度消失/爆炸问题,它从一开始就阻碍了收敛。然而,这个问题已在很大程度上通过归一化初始化中间归一化层 得到解决,这些归一化层使具有数十层的网络能够开始收敛于具有反向传播的随机梯度下降(SGD)。

当更深的网络能够开始收敛时,退化问题就暴露出来了:随着网络深度的增加,准确性变得饱和,然后迅速退化。这种退化并不是由过度拟合引起的,并且向适当深度的模型添加更多层会导致更高的训练误差。

“更深的网络能够开始收敛”是指在构建深度神经网络时,随着网络层数的增加,模型在训练过程中能够逐渐达到一个稳定的状态,即模型的参数不再发生大幅度的变化,并且模型的性能(如准确率、损失函数值等)也逐渐趋于稳定或达到最优。

“饱和”指的是随着网络深度的增加,模型的准确度达到一个特定的水平后就不再显著提升了

(训练准确性)的下降表明并非所有系统都同样容易优化。存在一种通过构建更深层次模型的解决方案:添加的层是恒等映射,其他层是从学习的较浅层模型中复制的。更深的模型不应比其更浅的对应模型产生更高的训练误差。

 \mathcal{F}(\mathbf{x})+\mathbf{x} 可以通过具有“快捷连接”的前馈神经网络来实现。快捷连接是那些跳过一层或多层的连接。快捷连接只是执行恒等映射,并且它们的输出被添加到堆叠层的输出中。这样的操作既不会增加额外的参数,也不会增加计算复杂性。整个网络仍然可以通过 SGD 通过反向传播进行端到端训练,并且可以使用通用库轻松实现。

1、我们的极深残差网络很容易优化,但是当深度增加时,对应的“普通”网络(简单地堆叠层)表现出更高的训练误差;

2、深度残差网络可以轻松地从大大增加的深度中获得精度增益,产生比以前的网络更好的结果。

在 ImageNet 分类数据集上,我们通过极深的残差网络获得了出色的结果。我们的 152 层残差网络是 ImageNet 上有史以来最深的网络,同时仍然比 VGG 网络 具有更低的复杂性。

2. 相关工作

残差表示

在图像识别中,VLAD 是通过残差向量相对于字典进行编码的表示,Fisher Vector 可以表示为 VLAD 的概率版本 。它们都是用于图像检索和分类的强大浅层表示。对于矢量量化,编码残差矢量被证明比编码原始矢量更有效。

在VLAD中,一个图像被分割成多个局部区域,每个区域都描述为一个特征向量。然后,这些特征向量与预定义的字典(也称为聚类中心)进行比较,并计算每个特征向量与最近字典项之间的残差。

训练多层感知器(MLP)的早期实践是添加一个从网络输入连接到输出的线性层。之前曾提出,一些中间层直接连接到辅助分类器以解决梯度消失/爆炸问题。 还提出了通过快捷连接实现的居中层响应、梯度和传播误差的方法。“初始”层由一个快捷分支和一些更深的分支组成。

3. 深度残差学习

3.1 残差学习

\mathcal{H}(\mathbf{x})视为由几个堆叠层(不一定是整个网络)拟合的底层映射,其中 x 表示第一层的输入。如果假设多个非线性层可以渐近逼近复杂函数,那么就相当于假设它们可以渐近逼近残差函数,即

\mathcal{H}(\mathbf{x})-\mathbf{x}(假设输入和输出具有相同的维度)。因此,我们不是期望堆叠层逼近\mathcal{H}(\mathbf{x}),而是明确让这些层逼近残差函数\mathcal{F}(\mathbf{x}):=\mathcal{H}(\mathbf{x})-\mathbf{x}。原函数也就变为\mathcal{F}(\mathbf{x})+\mathbf{x}

退化问题表明求解器在通过多个非线性层逼近恒等映射时可能会遇到困难。通过残差学习重构,如果恒等映射是最优的,则求解器可以简单地将多个非线性层的权重驱动至零以接近恒等映射。

这里的“权重驱动”指的是在训练过程中,通过优化算法(如梯度下降或其变种)调整网络的权重值,使得网络的输出接近于恒等映射的输出。 

3.2 通过快捷连接进行恒等映射

我们对每隔几个堆叠层采用残差学习。

\mathbf{y}=\mathcal{F}(\mathbf{x},\{W_i\})+\mathbf{x},x 和 y 是所考虑层的输入和输出向量。

函数\mathcal{F}=W_{2}\sigma(W_{1}\mathbf{x})表示要学习的残差映射。其中\sigma表示 ReLU,为了简化符号,省略了偏差。\mathcal{F}+\mathbf{x}通过快捷连接和逐元素加法来执行。

我们可以通过快捷连接执行线性投影 Ws 以匹配尺寸:\mathbf{y}=\mathcal{F}(\mathbf{x},\{W_{i}\})+W_{s}\mathbf{x}

函数\mathcal{F}(\mathbf{x},\{W_{i}\})可以表示多个卷积层。逐元素相加是在两个特征图上逐个通道执行的。

3.3 网络架构

普通网络

卷积层大多具有3*3卷积核,并遵循两个简单的设计规则:

①对于相同的输出特征图大小,每层具有相同数量的卷积核;

②如果特征图大小减半,卷积核的数量加倍,从而保持每层的时间复杂度。

通过步长为 2 的卷积层执行下采样。网络以全局平均池化层和带有 softmax 的 1000 路全连接层结束。

残差网络

插入快捷连接,将网络变成其对应的残差版本。当输入和输出具有相同维度时,可以直接使用恒等快捷方式。当维度增加时,我们考虑两种选择:(A)快捷方式仍然执行恒等映射,并填充额外的零条目以增加维度。该选项不引入额外的参数; (B) 方程 (2) 中的投影快捷方式用于匹配维度(通过 1×1 卷积完成)。对于这两个选项,当快捷方式穿过两种尺寸的特征图时,它们的步幅为 2。

3.4 实验执行

图像的大小被调整,其短边在 [256, 480] 中随机采样,以进行尺度增强。从图像或其水平翻转中随机采样 224×224 裁剪,并减去每个像素的平均值,使用标准颜色增强。在每次卷积之后和激活之前采用批量归一化。

之后,初始化权重,使用小批量大小为256的SGD(随机梯度下降)。学习率从0.1开始,当误差达到稳定水平时除以10,模型的迭代次数最多为60*104。使用 0.0001 的权重衰减和 0.9 的动量。

4. 实验

4.1 ImageNet 分类

在包含 1000 个类的 ImageNet 2012 分类数据集上评估我们的方法。这些模型在 128 万张训练图像上进行训练,并在 5 万张验证图像上进行评估。

与普通网络相比,残差网络没有额外的参数。

ImageNet架构 

虽然18-layers网络的解空间是34-layers网络解空间的子集。但是34-layers具有更高的训练误差。 

普通网络使用 BN 进行训练,确保前向传播的信号具有非零方差。前向或后向信号都不会消失。事实上,34 层普通网络仍然能够达到有竞争力的精度。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/624328.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

网络工程师----第二十七天

计算机基 第四章:网络层 网络层提供服务的特点:网络层向上只提供简单的、无连接的、尽最大努力交付的数据报服务,不保证可靠通信。 网际协议IP: *地址解析协议ARP(Address Resolution Protocol) *网际控制报文协议ICMP(Inter…

分享一个非常好用的安装包下载网站

当我们需要下载linux下的某些包,以便在自己的环境下进行编译自己的安装包的时候,可能需要用到一些各种版本的依赖包,从网上 百度会很麻烦。 这里分享一个很好用的安装包下载网站,记得点赞收藏 网站: Red Hat Enterprise Linux Repositories - pkgs.org 找到对应系统,然…

【Java的抽象类和接口】

1. 抽象类 1.1 抽象类概念 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果 一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。 以上代码中…

4.Jmeter阶梯加压Stepping Thread Group

1. 先去Jmeter下载地址下载PluginsManager,放置在Jmeter的lib/ext 目录下 ,重启Jmeter 2. 在插件管理器查找并安装jpgc - Standard Set,重启Jmeter 3.右键测试计划->添加->Threads(Users)->jpgc - Stepping Thread Group 然后设置阶梯加压参数…

【保姆级教程】如何将火爆全网的Kimi接入微信公众号,成为你的专属AI智能客服

【保姆级教程】如何将火爆全网的Kimi接入微信公众号,成为你的专属AI智能客服 在数字化转型的浪潮中,企业越来越重视利用人工智能技术提升客户服务的效率和质量。Kimi 作为一款功能强大的AI智能助手,能够理解自然语言、提供信息搜索、解析网址…

图像/视频恢复和增强CodeFormer

github:https://github.com/sczhou/CodeFormer 尝试增强旧照片/修复人工智能艺术 面部修复 面部色彩增强和恢复 脸部修复

[XYCTF]-PWN:Intermittent解析(pop栈内数据构造shellcode,自己编写shellcode)

查看ida 这里程序只会把输入的前12字节内容移到虚拟地址里,然后执行,大小不足以让执行shellcode,只能用pop寄存器调用read,再把gets hell的shellcode输入进去 完整exp: from pwn import* context(log_leveldebug,arc…

【数据结构】平衡二叉树(插入、查找、删除)解析+完整代码

3.2 平衡二叉树 3.2.1 定义 平衡二叉树,简称平衡树(AVL树) 树上任一结点的左右子树高度差不超过1。 结点的平衡因子左子树高-右子树高 3.2.2 插入操作 插入结点后,可能造成不平衡 要调整最小不平衡子树,使其恢复平衡。…

Python以docker形式部署,flask简易服务器。

公司大部分都是springboot 服务器,有时候用到python写的一些模型,部署在linux上进行处理 首先项目这样: flask就不说了,快捷服务器, # -*- coding: utf-8 -*-from flask import Flask, request# 实例化Flask对象 app…

齐护K210系列教程(二十六)_口罩检测

口罩检测 1.下载模型1.1使用机器码下载模型1.2将模型文件下载到SD卡1.3 烧录基本固件 2.程序解释3.课程资源联系我们 要实现此程序的功能需要: 支持 kmodelv4 支持固件 人脸口罩检测模型的模型 模型下载地址为:https://maixhub.com/model/zoo/64 机器码…

简单4步教你电脑摄像头怎么打开!

电脑摄像头是现代计算机的一个重要组件,它为我们提供了进行视频通话、视频会议、拍摄照片和录制视频等功能。然而,对于一些用户来说,不清楚电脑摄像头怎么打开。在本文中,我们将介绍几个简单的步骤,帮助您在电脑上轻松…

易康001:易康多尺度分割结果异常

前言 易康是一种在遥感领域常用的数据处理软件,它主要是用于面向对象的分类,涵盖了分割、模糊分类、监督分类等流程。但是在进行多尺度分割时,往往会遇到一些问题,例如下面图片所示: 1 多尺度分割问题 这种问题一般是…

【C++】AVL

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、AVL 树 1.1、AVL树的概念 1.2、AVL树节点的定义 1.3、AVL树的插入 1.4、AVL树的旋转 1.4.1、新节点插入较高左子树的左侧---左左:右单旋 1…

深度论证-高速走线控制100欧姆阻抗一定是最好的选择吗?

高速先生成员--黄刚 对于高速差分信号到底需要控制多少欧姆的阻抗,高速先生相信大部分工程师首先都会看下例如信号的协议文档或者芯片的文档,看看里面有没有推荐的控制阻抗值。例如像PCIE信号,在4.0之后的阻抗会明确要求按照85欧姆来控制&…

240W 宽电压输入 AC/DC 导轨式开关电源——TPR/SDR-240-XS 系列

TPR/SDR-240-XS 导轨式开关电源,额定输出功率为240W,产品输入范围:85-264VAC。提供24V、48V输出,具有短路保护,过载保护等功能,并具备高效率,高可靠性、高寿命、更安全、更稳定等特点&#xff0…

Docker容器中的SSH免密登录

简介:在日常的开发和测试环境中经常需要创建和管理Docker容器。有时,出于调试或管理的目的,可能需要SSH到容器内部。本文将介绍如何创建一个Docker容器,它在启动时自动运行SSH服务,并支持免密登录。 构建支持SSH的Doc…

对于fastjson之rmi利用问题的解决

前言 也是被一个问题困扰了好久,都要崩溃了,就为了一个问题调试半天的代码,最后终于解决了,现在做一个记录,幸好没有放弃,感觉学java是比较慢的,但是学java就是重在分析能力的提升,…

关于使用git拉取gitlab仓库的步骤(解决公钥问题和pytho版本和repo版本不对应的问题)

先获取权限,提交ssh-key 虚拟机连接 GitLab并提交代码_gitlab提交mr-CSDN博客 配置完成上诉步骤之后,执行下列指令进行拉去仓库的内容 sudo apt install repo export PATHpwd/.repo/repo:$PATH python3 "实际路径"/repo init -u ssh://gitxx…

是谁,又被分布式锁给锁住了?(上)

大家好,我是徒手敲代码。 今天来介绍一下分布式锁。首先思考下这些问题: 为什么需要分布式锁? 基于 Redis 如何实现分布式锁? 单纯使用setNx命令来加锁,会存在什么问题? 经常听到的RedLock,…

winserver系统设置图片查看器

新建 .bat 批处理执行文件,内容如下: echo off&cd&color 0a&cls echo Set Win10 Photo Viewer reg add "HKLM\SOFTWARE\Microsoft\Windows Photo Viewer\Capabilities\FileAssociations" /v ".jpg" /t REG_SZ /d Photo…