#### 2.2.2走向ConvNet不变性
使用ConvNets的挑战之一是需要非常大的数据集来学习所有基础参数。即使像ImageNet [126]这样拥有超过一百万张图像的大型数据集也被认为太小而无法训练某些深层架构。处理大数据集要求的一种方法是通过例如随机翻转,旋转和抖动来改变图像来人为地增加数据集。这些增强的主要优点是所得到的网络对各种变换变得更加不变。事实上,这项技术是AlexNet取得巨大成功背后的主要原因之一。因此,除了改变网络架构以便于培训的方法之外,如前一节所述,其他工作旨在引入能够产生更好培训的新型构建模块。具体而言,本节讨论的网络引入了新的块,这些块直接包含来自原始数据的学习不变表示。
一个明确解决不变性最大化的着名ConvNet是空间变压器网络(STN)[76]。特别地,该网络利用了一种新的学习模块,该模块增加了对不重要的空间变换的不变性,_,例如_。在物体识别过程中由不同视点产生的那些。该模块由三个子模块组成:定位网,网格生成器和采样器,如图2.12(a)所示。执行的操作可以分为三个步骤。首先,定位网络(通常是一个小的2层神经网络)将一个特征图![](https://img.kancloud.cn/5a/7f/5a7ff183ef9bed05791f88aa7e41f2b3_13x12.gif)作为输入,并从该输入中学习变换参数![](https://img.kancloud.cn/d7/4e/d74edaaf2305d2d981f9c13219e34f36_9x12.gif)。例如,转换![](https://img.kancloud.cn/66/33/6633e24b86742d5a0da7972058c1f1fe_16x16.gif)可以定义为一般的仿射变换,允许网络学习翻译,缩放,旋转和剪切。其次,给定变换参数和预定义大小的输出网格![](https://img.kancloud.cn/9e/bb/9ebb2db1fc35cfe1c1ab8c76d35bde19_58x12.gif),网格生成器为每个输出坐标![](https://img.kancloud.cn/32/7f/327fe04bb22309be14d9375805506520_51x21.gif)计算应从输入中采样的相应坐标![](https://img.kancloud.cn/99/df/99df9d5fef753f215d31c0774408a2d9_53x19.gif),![](https://img.kancloud.cn/5a/7f/5a7ff183ef9bed05791f88aa7e41f2b3_13x12.gif),根据
![](https://img.kancloud.cn/18/66/18660be3990b6d3ca1d0177cf847d387_127x24.gif)(2.17)
最后,采样器采用特征图![](https://img.kancloud.cn/5a/7f/5a7ff183ef9bed05791f88aa7e41f2b3_13x12.gif)和采样网格,并插入像素值![](https://img.kancloud.cn/99/df/99df9d5fef753f215d31c0774408a2d9_53x19.gif),以填充位置![](https://img.kancloud.cn/32/7f/327fe04bb22309be14d9375805506520_51x21.gif)的输出特征图![](https://img.kancloud.cn/ba/ea/baeac1d9d7cf057a52a3fbff326ac3de_14x12.jpg),如图2.12所示(b) )。在任何ConvNet架构的每一层添加此类模块,使其能够从输入中自适应地学习各种变换,以增加其不变性,从而提高其准确性。
| ![](https://img.kancloud.cn/63/c7/63c7e6c2d2a9a6f7048a0776c9a14c4b_412x178.png) | ![](https://img.kancloud.cn/06/c7/06c7eca7a69cb770891f01c0a5a76393_214x181.png) |
| (一个) | (b)中 |
图2.12:空间变压器网络运营。 (a)空间变换器模块的描述,典型的变换操作在(b)中示出。图[〜]复制。
为了增强ConvNets的几何变换建模能力,两种现代方法,即Deformable ConvNet [29]和Active ConvNet [78],引入了灵活的卷积块。这些方法的基本思想是避免在卷积过程中使用刚性窗口,以有利于学习进行卷积的感兴趣区域(RoI)。这个想法类似于空间变换器模块的定位网络和网格生成器所做的事情。为了确定每层的RoI,修改卷积块以使其从初始刚性卷积窗口学习偏移。具体来说,从在给定的刚性窗口上的卷积运算的标准定义开始
![](https://img.kancloud.cn/0d/e4/0de4cf26e62b52a6d895069df553d8d0_217x42.gif)(2.18)
其中![](https://img.kancloud.cn/44/3a/443a3476c31c58eb77a7d419e1b84a1c_14x12.gif)是执行卷积的区域,![](https://img.kancloud.cn/d9/25/d9258a59245833381958e5545bce0ce2_18x12.gif)是区域内的像素位置![](https://img.kancloud.cn/44/3a/443a3476c31c58eb77a7d419e1b84a1c_14x12.gif),![](https://img.kancloud.cn/a6/b0/a6b0be345db0ef116fdc1d5afd7cd84c_44x18.gif)是相应的滤波器权重,添加新术语以包括根据的偏移量
![](https://img.kancloud.cn/ff/1a/ff1af7db57b656e518efcccf64bbf8d2_273x42.gif)(2.19)
其中![](https://img.kancloud.cn/6f/2b/6f2bb3ba1a817977e58c5b772decd6d2_32x18.gif)是偏移量,现在最终的卷积步骤将在变形窗口上执行,而不是传统的刚性![](https://img.kancloud.cn/35/84/358496eee2e338abdedbf9ab75bac30f_44x9.gif)窗口。为了学习偏移量![](https://img.kancloud.cn/6f/2b/6f2bb3ba1a817977e58c5b772decd6d2_32x18.gif),可以修改可变形ConvNets的卷积块,使其包含一个新的子模块,其作用是学习偏移,如图2.13所示。与可交替学习子模块参数和网络权重的空间变换器网络不同,可变形控制器可同时学习权重和偏移,从而使其在各种体系结构中的部署速度更快,更容易。
![](https://img.kancloud.cn/17/c6/17c647dcb8cbcd4e984a40e48ff2c915_465x292.png)
图2.13:可变形或主动卷积。从固定的窗口大小开始,网络通过一个小的子网络(在图的顶部显示为绿色)学习偏移,最后在变形的窗口上执行卷积。图[29]再版。
#### 2.2.3走向ConvNet本地化
除了简单的分类任务,例如对象识别,最近ConvNets在需要精确定位的任务中也表现出色,例如语义分割和对象检测。用于语义分割的最成功的网络是所谓的完全卷积网络(FCN)[98]。顾名思义,FCN没有明确地使用完全连接的层,而是将它们转换为卷积层,其感知域覆盖整个底层特征映射。重要的是,网络学习上采样或反卷积滤波器,恢复最后一层图像的完整分辨率,如图2.14所示。在FCN中,通过将问题转换为密集像素分类来实现分割。换句话说,softmax层附加到每个像素,并且通过对属于相同类的像素进行分组来实现分割。值得注意的是,在这项工作中报告说,在上采样步骤中使用来自架构的较低层的特征起着重要作用。它允许更精确的分割,因为较低层特征倾向于捕获更细粒度的细节,与分类相比,这对于分割任务而言更为重要。学习反卷积滤波器的替代方法依赖于使用atrou或扩张卷积[24],_,即_。上采样稀疏滤波器,有助于恢复更高分辨率的特征映射,同时保持可学习的参数数量可管理。
![](https://img.kancloud.cn/ec/1e/ec1e005a60f6b5b1cf6b30adbdff3435_332x165.png)
图2.14:完全卷积网络。在上采样以在最后一层恢复图像全分辨率之后,使用softmax对每个像素进行分类以最终生成片段。图[98]再版。
在对象本地化方面,ConvNet框架中最早的方法之一被称为Region CNN或R-CNN。该网络将区域提议方法与ConvNet架构相结合[53]。尽管R-CNN是围绕简单的想法而建立的,但它产生了最先进的物体检测结果。特别地,R-CNN首先使用用于区域提议的现成算法(_,例如_。选择性搜索[140])来检测可能包含对象的潜在区域。然后将这些区域扭曲以匹配所使用的ConvNet的默认输入大小,并将其馈送到ConvNet以进行特征提取。最后,每个区域的特征用SVM分类,并在后处理步骤中通过非最大抑制进行细化。
在其天真的版本中,R-CNN简单地使用ConvNets作为特征提取器。然而,它的突破性结果带来了改进,更多地利用了ConvNets的强大代表性。例如,快速R-CNN [52],更快的R-CNN [116]和掩模R-CNN [61]。快速R-CNN ,提出通过网络传播独立计算区域提议,以提取最后一个特征映射层中的相应区域。这种技术避免了从图像中提取的每个区域的昂贵的网络传输。此外,快速R-CNN避免了重载 - 处理步骤通过改变网络的最后一层,使其学习对象类和精炼的边界框坐标。重要的是,在R-CNN和快速R-CNN中,检测瓶颈在于区域提议步骤,该步骤是在ConvNet范例。
更快的R-CNN通过在ConvNet的最后一个卷积层之后添加称为区域提议网络(RPN)的子模块(或子网络)来进一步推动使用ConvNets。 RPN模块使网络能够学习区域提议,作为网络优化的一部分。具体来说,RPN被设计为一个小的ConvNet,由卷积层和一个小的完全连接层组成,两个输出返回潜在的物体位置和物体分数(_,即_。属于一个物体类的概率)。按照迭代的两步程序完成整个网络的培训。首先,使用RPN单元优化网络以进行区域建议提取。其次,保持提取的区域提议固定,网络被微调用于对象分类和最终对象边界框位置。最近,引入掩模R-CNN以增强更快的R-CNN,其具有分割检测区域的能力,从而在检测到的物体周围产生紧密掩模。为此,掩码R-CNN将分段分支添加到更快的R-CNN的分类和边界框回归分支。特别是,新分支实现为一个小FCN,它被优化用于将任何边界框中的像素分类为两个类中的一个;前景或背景。图2.15说明了从简单的R-CNN到屏蔽R-CNN的差异和进展。
| ![](https://img.kancloud.cn/ab/85/ab853bd746739fee2eccb37ddd70243c_266x77.png) | ![](https://img.kancloud.cn/da/72/da726ed26029c926cebe208673b5f0c8_133x52.png) |
| (a) | (b) |
| ![](https://img.kancloud.cn/b3/f5/b3f5c2956d0d7e2b9b5c38bbfbae9d1d_134x140.png) | ![](https://img.kancloud.cn/cc/6f/cc6f41bdfb0be32efec2bc774f51f492_134x90.png) |
| (C) | (d) |
图2.15:突出区域提案网络的进展情况。 (a)原始R-CNN的结构。图[...]转载。 (b)快速R-CNN的结构。图[...]转载。 (c)更快的R-CNN的结构。从[116]再现的图。(d)掩模R-CNN的结构。图[〜]复制。
- TensorFlow 1.x 深度学习秘籍
- 零、前言
- 一、TensorFlow 简介
- 二、回归
- 三、神经网络:感知器
- 四、卷积神经网络
- 五、高级卷积神经网络
- 六、循环神经网络
- 七、无监督学习
- 八、自编码器
- 九、强化学习
- 十、移动计算
- 十一、生成模型和 CapsNet
- 十二、分布式 TensorFlow 和云深度学习
- 十三、AutoML 和学习如何学习(元学习)
- 十四、TensorFlow 处理单元
- 使用 TensorFlow 构建机器学习项目中文版
- 一、探索和转换数据
- 二、聚类
- 三、线性回归
- 四、逻辑回归
- 五、简单的前馈神经网络
- 六、卷积神经网络
- 七、循环神经网络和 LSTM
- 八、深度神经网络
- 九、大规模运行模型 -- GPU 和服务
- 十、库安装和其他提示
- TensorFlow 深度学习中文第二版
- 一、人工神经网络
- 二、TensorFlow v1.6 的新功能是什么?
- 三、实现前馈神经网络
- 四、CNN 实战
- 五、使用 TensorFlow 实现自编码器
- 六、RNN 和梯度消失或爆炸问题
- 七、TensorFlow GPU 配置
- 八、TFLearn
- 九、使用协同过滤的电影推荐
- 十、OpenAI Gym
- TensorFlow 深度学习实战指南中文版
- 一、入门
- 二、深度神经网络
- 三、卷积神经网络
- 四、循环神经网络介绍
- 五、总结
- 精通 TensorFlow 1.x
- 一、TensorFlow 101
- 二、TensorFlow 的高级库
- 三、Keras 101
- 四、TensorFlow 中的经典机器学习
- 五、TensorFlow 和 Keras 中的神经网络和 MLP
- 六、TensorFlow 和 Keras 中的 RNN
- 七、TensorFlow 和 Keras 中的用于时间序列数据的 RNN
- 八、TensorFlow 和 Keras 中的用于文本数据的 RNN
- 九、TensorFlow 和 Keras 中的 CNN
- 十、TensorFlow 和 Keras 中的自编码器
- 十一、TF 服务:生产中的 TensorFlow 模型
- 十二、迁移学习和预训练模型
- 十三、深度强化学习
- 十四、生成对抗网络
- 十五、TensorFlow 集群的分布式模型
- 十六、移动和嵌入式平台上的 TensorFlow 模型
- 十七、R 中的 TensorFlow 和 Keras
- 十八、调试 TensorFlow 模型
- 十九、张量处理单元
- TensorFlow 机器学习秘籍中文第二版
- 一、TensorFlow 入门
- 二、TensorFlow 的方式
- 三、线性回归
- 四、支持向量机
- 五、最近邻方法
- 六、神经网络
- 七、自然语言处理
- 八、卷积神经网络
- 九、循环神经网络
- 十、将 TensorFlow 投入生产
- 十一、更多 TensorFlow
- 与 TensorFlow 的初次接触
- 前言
- 1. TensorFlow 基础知识
- 2. TensorFlow 中的线性回归
- 3. TensorFlow 中的聚类
- 4. TensorFlow 中的单层神经网络
- 5. TensorFlow 中的多层神经网络
- 6. 并行
- 后记
- TensorFlow 学习指南
- 一、基础
- 二、线性模型
- 三、学习
- 四、分布式
- TensorFlow Rager 教程
- 一、如何使用 TensorFlow Eager 构建简单的神经网络
- 二、在 Eager 模式中使用指标
- 三、如何保存和恢复训练模型
- 四、文本序列到 TFRecords
- 五、如何将原始图片数据转换为 TFRecords
- 六、如何使用 TensorFlow Eager 从 TFRecords 批量读取数据
- 七、使用 TensorFlow Eager 构建用于情感识别的卷积神经网络(CNN)
- 八、用于 TensorFlow Eager 序列分类的动态循坏神经网络
- 九、用于 TensorFlow Eager 时间序列回归的递归神经网络
- TensorFlow 高效编程
- 图嵌入综述:问题,技术与应用
- 一、引言
- 三、图嵌入的问题设定
- 四、图嵌入技术
- 基于边重构的优化问题
- 应用
- 基于深度学习的推荐系统:综述和新视角
- 引言
- 基于深度学习的推荐:最先进的技术
- 基于卷积神经网络的推荐
- 关于卷积神经网络我们理解了什么
- 第1章概论
- 第2章多层网络
- 2.1.4生成对抗网络
- 2.2.1最近ConvNets演变中的关键架构
- 2.2.2走向ConvNet不变性
- 2.3时空卷积网络
- 第3章了解ConvNets构建块
- 3.2整改
- 3.3规范化
- 3.4汇集
- 第四章现状
- 4.2打开问题
- 参考
- 机器学习超级复习笔记
- Python 迁移学习实用指南
- 零、前言
- 一、机器学习基础
- 二、深度学习基础
- 三、了解深度学习架构
- 四、迁移学习基础
- 五、释放迁移学习的力量
- 六、图像识别与分类
- 七、文本文件分类
- 八、音频事件识别与分类
- 九、DeepDream
- 十、自动图像字幕生成器
- 十一、图像着色
- 面向计算机视觉的深度学习
- 零、前言
- 一、入门
- 二、图像分类
- 三、图像检索
- 四、对象检测
- 五、语义分割
- 六、相似性学习
- 七、图像字幕
- 八、生成模型
- 九、视频分类
- 十、部署
- 深度学习快速参考
- 零、前言
- 一、深度学习的基础
- 二、使用深度学习解决回归问题
- 三、使用 TensorBoard 监控网络训练
- 四、使用深度学习解决二分类问题
- 五、使用 Keras 解决多分类问题
- 六、超参数优化
- 七、从头开始训练 CNN
- 八、将预训练的 CNN 用于迁移学习
- 九、从头开始训练 RNN
- 十、使用词嵌入从头开始训练 LSTM
- 十一、训练 Seq2Seq 模型
- 十二、深度强化学习
- 十三、生成对抗网络
- TensorFlow 2.0 快速入门指南
- 零、前言
- 第 1 部分:TensorFlow 2.00 Alpha 简介
- 一、TensorFlow 2 简介
- 二、Keras:TensorFlow 2 的高级 API
- 三、TensorFlow 2 和 ANN 技术
- 第 2 部分:TensorFlow 2.00 Alpha 中的监督和无监督学习
- 四、TensorFlow 2 和监督机器学习
- 五、TensorFlow 2 和无监督学习
- 第 3 部分:TensorFlow 2.00 Alpha 的神经网络应用
- 六、使用 TensorFlow 2 识别图像
- 七、TensorFlow 2 和神经风格迁移
- 八、TensorFlow 2 和循环神经网络
- 九、TensorFlow 估计器和 TensorFlow HUB
- 十、从 tf1.12 转换为 tf2
- TensorFlow 入门
- 零、前言
- 一、TensorFlow 基本概念
- 二、TensorFlow 数学运算
- 三、机器学习入门
- 四、神经网络简介
- 五、深度学习
- 六、TensorFlow GPU 编程和服务
- TensorFlow 卷积神经网络实用指南
- 零、前言
- 一、TensorFlow 的设置和介绍
- 二、深度学习和卷积神经网络
- 三、TensorFlow 中的图像分类
- 四、目标检测与分割
- 五、VGG,Inception,ResNet 和 MobileNets
- 六、自编码器,变分自编码器和生成对抗网络
- 七、迁移学习
- 八、机器学习最佳实践和故障排除
- 九、大规模训练
- 十、参考文献