5.23.12 计算机视觉的 Inception 架构

1. 介绍

分类性能的提升往往会转化为各种应用领域中显着的质量提升,深度卷积架构的架构改进可用于提高大多数其他计算机视觉任务的性能,这些任务越来越依赖于高质量的学习视觉特征。在 AlexNet 功能无法与手工设计、制作的解决方案竞争的情况下,网络质量的改进为卷积网络带来了新的应用领域。

GoogleNet 使用了大约 700 万个参数,比其前身 AlexNet(使用 6000 万个参数)减少了 9 倍。此外,VGGNet 使用的参数比 AlexNet 多大约 3 倍。

Inception 架构的复杂性使得对网络进行更改变得更加困难。如果单纯地扩展架构,则很大一部分计算收益可能会立即丢失。如果认为有必要增加某些 Inception 式模型的容量,那么只需将所有  滤波器组大小  的数量加倍的简单变换将导致计算成本和参数数量增加 4 倍。

2. 通用设计原则

避免表示瓶颈,尤其是在网络早期。前馈网络可以用从输入层到分类器或回归器的非循环图来表示。这为信息流定义了明确的方向。对于网络中的任何一个分割(即将网络分成两部分,一边是输入,一边是输出),都可以评估通过该分割的信息量。

从输入到输出,表示的大小(即特征的数量或维度)应该逐渐减小,直到达到用于特定任务的最终表示。这种逐渐减小的过程有助于网络逐步提取和精炼关键信息,同时避免不必要的复杂性。理论上,信息内容不能仅仅通过表示的维度来评估,因为它抛弃了相关结构等重要因素;维度仅提供信息内容的粗略估计。


更高维度的表示更容易在网络中进行 局部处理。增加卷积网络中每个图块的激活可以实现更多独立的特征。由此产生的网络将训练得更快。 


空间聚合(如池化或者更复杂的聚合函数)可以在较低维度的嵌入上完成,而不会损失太多或任何表示能力。在执行更分散的(例如 3 × 3)卷积之前,可以在空间聚合之前减小输入表示的维度,而不会产生严重的不利影响。如果在 空间聚合 上下文中使用输出,则相邻单元之间的强相关性会导致降维期间的信息损失会较少。


平衡网络的宽度和深度。通过平衡  每个阶段 滤波器的数量和网络的深度可以达到网络的最佳性能。增加网络的宽度和深度有助于提高网络质量。然而,如果两者并行增加,则可以达到恒定计算量的最佳改进。

一个阶段可以是一个卷积层或者一组卷积层。

3. 使用大卷积核尺寸分解卷积

由于 Inception 网络是完全卷积的,因此每个权重对应于每次激活的一次乘法。因此,计算成本的任何减少都会导致参数数量的减少。这意味着通过适当的因子分解,我们最终可以获得更多 解耦 的参数,从而加快训练速度。此外,我们可以利用计算和内存节省来增加网络的滤波器组大小,同时保持在单台计算机上训练每个模型副本的能力。

解耦(Decoupling)是指降低系统组件之间的依赖程度

解耦是希望减少各个模块之间的依赖关系,使模块间尽可能的独立存在 

3.1 因式分解为更小的卷积

具有较大空间滤波器(例如 5 × 5 或 7 × 7)的卷积在计算方面往往会非常昂贵。例如,在输入数据有 m 个特征图或通道时 使用 n 个卷积核的 5 × 5 卷积的计算成本是具有相同数量卷积核的 3 × 3 卷积的 25 / 9 = 2.78 倍。当然,5×5 卷积核可以捕获较早层中较远的单元激活之间的信号之间的依赖关系,因此卷积核几何尺寸的减小会导致表达能力的巨大损失。

3.2 空间分解为不对称卷积

通过使用非对称卷积,可以做得比 2 × 2 更好,例如n × 1。例如,使用 3 × 1 卷积后跟 1 × 3 卷积相当于滑动具有与 3 × 3 卷积相同的感受野的两层网络。

如果输入和输出 卷积核 的数量相等,那么对于相同数量的输出 卷积核 ,两层解决方案的成本仍然要低 33%。相比之下,将一个 3 × 3 卷积分解为两个 2 × 2 卷积仅节省 11% 的计算量。

理论上,我们可以更进一步,认为可以用 1 × n 卷积,然后是 n × 1 卷积来替换任何 n × n 卷积,并且随着 n 的增长,计算成本节省会急剧增加。

n × n 卷积分解后的 Inception 模块

为 17 × 17 的特征图选择 n = 7

在中等网格大小上(在 m×m 特征图上,其中 m 范围在 12 到 20 之间)给出了非常好的结果。在这个层面上,通过使用 1 × 7 卷积,然后使用 7 × 1 卷积可以获得非常好的结果。

4. 辅助分类器的实用性

引入了辅助分类器的概念来提高非常深的网络的收敛性。最初的动机是将有用的梯度推到较低层,使它们立即有用,并通过解决非常深的网络中的梯度消失问题来提高训练期间的收敛性。在训练接近结束时,具有辅助分支的网络开始超过没有任何辅助分支的网络的准确性,并达到稍高的平台。

5. 有效减小网格(特征图)尺寸

在传统的卷积网络中,通常会使用某种池化操作(如最大池化或平均池化)来减小特征图的网格大小。在应用最大池化或平均池化之前,通常需要扩展网络滤波器的激活维度,以避免所谓的“表达瓶颈”。

例如,从一个具有 k 个 卷积核 的 d\times d 网格开始,如果希望得到一个具有 2k 个 卷积核 的\frac{d}{2}\times \frac{d}{2} 网格,首先需要在更大的网格上进行一个步长为1的卷积,使用 2k 个卷积核,然后应用一个额外的池化步骤。这意味着整体的计算成本主要由在较大网格上使用 2d^2k^2 操作的昂贵卷积所决定。

使用卷积替代池化

一种可能的解决方案是使用卷积来替代池化,这可以将计算成本减少到 2(\frac{d}{2})^2k^2 ,即减少到原来的四分之一。然而,这种替代方案会导致表示的整体维度降低到  (\frac{d}{2})^2k ,从而导致网络表达能力下降(即出现表达瓶颈)。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python 面对对象 类 魔法方法

魔法方法 一、__init__ 构造函数,可以理解为初始化 触发条件:在实例化的时候就会触发 class People():def __init__(self, name):print(init被执行)self.name namedef eat(self):print(f{self.name}要吃饭)a People(张三) a.eat() # in…

K8S认证|CKA题库+答案| 12. 查看Pod日志

12、查看Pod日志 您必须在以下Cluster/Node上完成此考题: Cluster Master node Worker node k8s master …

以太坊钱包

以太坊钱包是你通往以太坊系统的门户。它拥有你的密钥,并且可以代表你创建和广播交易。选择一个以太坊钱包可能很困难,因为有很多不同功能和设计选择。有些更适合初学者,有些更适合专家。即使你现在选择一个你喜欢的,你可能会决定…

深度学习Day-18:ResNet50V2算法实战与解析

🍨 本文为:[🔗365天深度学习训练营] 中的学习记录博客 🍖 原作者:[K同学啊 | 接辅导、项目定制] 要求: 根据本文Tensorflow代码,编写对应的Pytorch代码了解ResNetV2与ResNetV的区别 一、 基础…

小红书云原生 Kafka 技术剖析:分层存储与弹性伸缩

面对 Kafka 规模快速增长带来的成本、效率和稳定性挑战时,小红书大数据存储团队采取云原生架构实践:通过引入冷热数据分层存储、容器化技术以及自研的负载均衡服务「Balance Control」,成功实现了集群存储成本的显著降低、分钟级的集群弹性迁…

开放式耳机2024超值推荐!教你如何选择蓝牙耳机!

开放式耳机的便利性让它在我们的日常生活中变得越来越重要。它让我们摆脱了传统耳机的限制,享受到了更多的自由。不过,市面上的开放式耳机种类繁多,挑选一款既实用又实惠的产品确实需要一些小窍门。作为一位对开放式耳机颇有研究的用户&#…

民国漫画杂志《时代漫画》第18期.PDF

时代漫画18.PDF: https://url03.ctfile.com/f/1779803-1248612707-27e56b?p9586 (访问密码: 9586) 《时代漫画》的杂志在1934年诞生了,截止1937年6月战争来临被迫停刊共发行了39期。 ps:资源来源网络!

内网穿透--Frp-简易型(速成)-上线

免责声明:本文仅做技术交流与学习... 目录 frp项目介绍: 一图通解: ​编辑 1-下载frp 2-服务端(server)开启frp口 3-kali客户端(client)连接frp服务器 4-kali生成马子 5-kali监听 6-马子执行-->成功上线 frp项目介绍: GitHub - fatedier/frp: A fast reverse proxy…

回溯大法总结

前言 本篇博客将分两步来进行,首先谈谈我对回溯法的理解,然后通过若干道题来进行讲解,最后总结 对回溯法的理解 回溯法可以看做蛮力法的升级版,它在解决问题时的每一步都尝试所有可能的选项,最终找出所以可行的方案…

从0开始实现一个博客系统 (SSM 实现)

相关技术 Spring Spring Boot Spring MVC MyBatis Html Css JS pom 文件我就不放出来了, 之前用的 jdk8 做的, MySQL 用的 5.7, 都有点老了, 你们自己看着配版本就好 实现功能 用户注册 - 密码加盐加密 (md5 加密)前后端用户信息存储 - 令牌技术用户登录 - (使用 拦截…

Xilinx(AMD) FPGA通过ICAP原语读取芯片IDCODE实现方法

1 概述 Xilinx每种型号的FPGA芯片都有一个唯一的IDCODE与之对应,同一型号不同封装的IDCODE是相同的。IDCODE的获取方法包括JTAG、ICAP原语、AXI_HWICAP IP核等。获取IDCODE常用于根据芯片型号改变代码的功能,或者对代码进行授权保护,只能在指…

从《红楼梦》的视角看大模型知识库 RAG 服务的 Rerank 调优

背景介绍 在之前的文章 有道 QAnything 源码解读 中介绍了有道 RAG 的一个主要亮点在于对 Rerank 机制的重视。 从目前来看,Rerank 确实逐渐成为 RAG 的一个重要模块,在这篇文章中就希望能讲清楚为什么 RAG 服务需要 Rerank 机制,以及如何选…

现代密码学——消息认证和哈希函数

1.概述 1.加密-->被动攻击(获取消息内容、业务流分析) 消息认证和数字签名-->主动攻击(假冒、重放、篡改、业务拒绝) 2.消息认证作用: 验证消息源的真实性, 消息的完整性(未被篡改…

集合、Collection接口特点和常用方法

1、集合介绍 对于保存多个数据使用的是数组,那么数组有不足的地方。比如, 长度开始时必须指定,而且一旦制定,不能更改。 保存的必须为同一类型的元素。 使用数组进行增加/删除元素的示意代码,也就是比较麻烦。 为…

分布式数据库HBase入门指南

目录 概述 HBase 的主要特点包括: HBase 的典型应用场景包括: 访问接口 1. Java API: 2. REST API: 3. Thrift API: 4. 其他访问接口: HBase 数据模型 概述 该模型具有以下特点: 1. 面向列: 2. 多维: 3. 稀疏: 数据存储: 数据访问: HBase 的数据模型…

你真的会使用Vue3的onMounted钩子函数吗?Vue3中onMounted的用法详解

目录 一、onMounted的前世今生 1.1、onMounted是什么 1.2、onMounted在vue2中的前身 1.2.1、vue2中的onMounted 1.2.2、Vue2与Vue3的onMounted对比 1.3、vue3中onMounted的用法 1.3.1、基础用法 1.3.2、顺序执行异步操作 1.3.3、并行执行多个异步操作 1.3.4、执行一次…

基于STM32实现智能光照控制系统

目录 引言环境准备智能光照控制系统基础代码示例:实现智能光照控制系统 光照传感器数据读取PWM控制LED亮度用户界面与显示应用场景:智能家居与农业自动化问题解决方案与优化收尾与总结 1. 引言 本教程将详细介绍如何在STM32嵌入式系统中使用C语言实现智…

纯代码如何实现WordPress搜索包含评论内容?

WordPress自带的搜索默认情况下是不包含评论内容的,不过有些WordPress网站评论内容比较多,而且也比较有用,所以想要让用户在搜索时也能够同时搜索到评论内容,那么应该怎么做呢? 网络上很多教程都是推荐安装SearchWP插…

数据结构----堆的实现(附代码)

当大家看了鄙人的上一篇博客栈后,稍微猜一下应该知道鄙人下一篇想写的博客就是堆了吧。毕竟堆栈在C语言中常常是一起出现的。那么堆是什么,是如何实现的嘞。接下来我就带大家去尝试实现一下堆。 堆的含义 首先我们要写出一个堆,那么我们就需…

基于地理坐标的高阶几何编辑工具算法(4)——线分割面

文章目录 工具步骤应用场景算法输入算法输出算法示意图算法原理 工具步骤 选中待分割面,点击“线分割面”工具,绘制和面至少两个交点的线,双击结束,执行分割操作 应用场景 快速切分大型几何面,以降低面的复杂度&…