GoogLeNet(InceptionV3)模型算法

GoogLeNet 团队在给出了一些通用的网络设计准则,以期望在不提高网络参数 量的前提下提升网络的表达能力:
       避免特征图 (feature map) 表达瓶颈:从理论上讲,尺寸 (seize) 才包含了相关结构等重要因素,维度(channel) 仅仅提供了信息内容的粗略估计,因此特征图的尺寸应该从输入到输出慢慢减小,避免使用极端压缩。更高的维度特征图更容易获得网络的局部表达:在卷积网络结构中,增加非线
性能够使得更多的特征解耦合,相互独立的特征更多,输入的信息就被分解的更彻底,分解的子特征间相关性低,子特征内部相关性高,因此高维特征带有更多的判别信息,会更容易收敛。在低维特征上的空间聚合( 池化 ) 不会 ( 极少 ) 损失太多信息:相邻的位置的信息具有强相关性,即使进行了降维,也不会带来太多的损失,并且维数的降低,也能够加速网络学习。
       平衡网络的宽度与深度:最优的网络应该在每一层网络宽度和网络深度之间有一个很好的平衡。

1.Factorized Convolutions卷积分解

       分解卷积的主要目的是为了 减少网络中的参数 ,主要方法有:大卷积分解成小卷积,小卷积分解为非对称卷积。
       大卷积分解成小卷积: 大尺度的卷积可以获得更大的感受野,但是也带来参数量的增加VggNet 表明使用大于大卷积核 ( 大于 3×3) 完全可以由一系列的3×3卷积核来替代,即使用小卷积核串联来替代大卷积核。因此在 InceptionV2中已经通过堆叠两层3×3 的卷积核的方式替代一层 5×5 的卷积核,这样的连接方式在保持感受野范围的同时又减少了参数量,不会造成表达缺失,降低网络性能,并且可以避免表达瓶颈,加深非线性表达能力。
       小卷积分解为非对称卷积: 3x3 卷积是能够完全获取上下文信息 ( 上、下、左、右) 的最小卷积核,是否能把小卷积核分解的更小呢?在 InceptionV3 中, GoogLeNet团队考虑了非对称卷积分解,引入了将一个较大的二维卷积拆成两个较小的一维卷积的做法,即任意n×n 的卷积都可以通过 1×n 卷积后接 n×1 卷积来替代,非对称卷积能够降低运算量,并且不会降低模型的整体表征能力。

2.InceptionV3结构(一)

      与 InceptionV2 结构相同,即 5x5 卷积使用两个 3x3 的卷积代替,目的是减少参数量和计算量—— 大卷积分解成小卷积。

3.InceptionV3结构(二)

       将 InceptionV2 结构中 3x3 的卷积使用 1x3 3x1 的卷积组合来代替, 5x5 的卷积使用俩个1x3 3x1 的卷积组合来代替,目的也是减少参数量和计算量 ———小卷积分解为非对称卷积。
采用这种分解在模型的早期网络层上不能有效发挥作用,但是在中等特征
图大小 (m×m ,其中 m 12 20 之间的范围 ) 上取得了非常好的效果。
使用 3x3 的卷积代替 5x5 的卷积,输出 512 通道特征图,输出 128 通道特征图:
参数量: 512×3×3×128+128×3×3×128=737280
计算量: 512×3×3×128×W×H+128×3×3×128×W×H=737280×W×H
W×H 是特征图尺寸,假设卷积层的输入输出特征图尺寸保持一致
使用 1x3 3x1 的卷积组合代替 5x5 的卷积,输出 512 通道特征图,输出 128 通道特
征图:
参数量: 512×1×3×128+128×3×1×128+128×1×3×128+128×3×1×128=344064
计算量:
512×1×3×128×W×H+128×3×1×128×W×H+128×1×3×128×W×H+128×3×1×128×W
×H=344064×W×H

4. InceptionV3结构(三)

该结构主要用于扩充通道数,网络变得更宽,该结构被放置在所以放在
GoogLeNet(InceptionV3) 的最后。

4. InceptionV3特殊结构

        在传统方法中,卷积神经网络使用池化等操作以减小特征图大小。先池化
再进行卷积升维会导致瓶颈结构,过程中将丢失很多信息,对于后面输出的特
征图提取的图像中的特征将会更少;先卷积升维再进行池化,计算量将增加三
倍,增加了计算成本:
        GoogLeNet(InceptionV3)的改进方案采用一种并行的降维结构,在扩充通
道数的同时下采样减小特征图大小,既减少计算量保证了计算效率又避免了瓶
颈结构。
替换 GoogLeNet(InceptionV1) 模型中的 MaxPool
辅助分类器
        GoogLeNet(InceptionV1)引入了辅助分类器的概念,最初的动机是为了将有用
的梯度反向传递到网络低层,解决梯度消失的问题,提高网络的收敛能力,保
证网络训练正常进行。
        GoogLeNet(InceptionV3)的实验则发现 1. 辅助分类器并不能保证收敛更快,并
且有无辅助分类器,训练过程基本保持一致,只有在训练的最后阶段,有辅助
分类器略微高于无辅助分类器的网络; 2. 位于网络低层的辅助分类器对最终结果
没有影响; 3. 辅助分类器充当了正则化器,如果辅助分类器带有 BN Dropout 层那么主分类器性能会更好。
GoogLeNet(InceptionV3) 中的辅助分类器同样不直接用于最终的预测结
果。在训练过程中,辅助分类器的损失函数会被加权,并与主分类器的损失函
数相结合。在推理阶段,辅助分类器被舍弃,仅使用主分类器进行预测。

GoogLeNet(InceptionV3)模型结构

下图是原论文给出的关于 GoogLeNet(InceptionV3) 模型结构的详细示意图:
        GoogLeNet(InceptionV3)在图像分类中分为两部分: backbone 部分: 主
要由 InceptionV3 模块、卷积层和池化层 ( 汇聚层 ) 组成,分类器部分: 由主分类
器和辅助分类器组成。
        博主仿造GoogLeNet(InceptionV1) 的结构绘制了以下 GoogLeNet(InceptionV3)
的结构。

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

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

相关文章

【C++】stack、queue和deque的使用

💗个人主页💗 ⭐个人专栏——C学习⭐ 💫点击关注🤩一起学习C语言💯💫 目录 导读 一、stack 1. stack介绍 2. stack使用 二、queue 1. queue介绍 2. queue使用 三、deque 1. deque介绍 2. deque的…

6个免费自动写文章软件,简直好用到爆

对于创作者而言,创作一篇高质量的文章并非易事,它需要耗费大量的时间与精力去构思、组织语言、斟酌字句。灵感并非总是源源不断,有时我们可能会陷入思维的僵局,不知从何下手。而此时,免费自动写文章软件就如同黑暗中的…

pdf structuredClone is not defined 解决

问题 部分手机系统的浏览器 pdf v2版本会出现 structuredclone is not defined 的报错,这是因为浏览器过低 解决 查看structuredClone的浏览器兼容性 structuredClone api 文档 polyfill 网站下方有个 polyfill的网址入口 可以解决低版本的兼容问题 相应网址…

官方文档 搬运 MAXMIND IP定位 mysql导入 简单使用

官方文档地址: 官方文档 文件下载 1. 导入mysql可能报错 Error Code: 1290. The MySQL server is running with the --secure-file-priv option so it cannot execute this statement 查看配置 SHOW GLOBAL VARIABLES LIKE %secure%;secure_file_priv 原来…

动作识别综合指南

本文将概述当前动作识别(action recognition)的方法和途径。 为了展示动作识别任务的复杂性,我想举这个例子: 你能明白我在这里做什么吗?我想不能。至少你不会确定答案。我正在钻孔。 你能弄清楚我接下来要做什么吗&…

C++11移动语义

前言 之前我们已经知道了在类里开辟数组后,每一次传值返回和拷贝是,都会生成一个临时变量 class Arr { public://构造Arr() {/*具体实现*/ };//拷贝Arr(const Arr& ar) {/*具体实现*/ };//重载Arr operator(const Arr& ar) { /*具体实现*/Arr …

Mybatis动态sql标签

动态SQL标签简介: MyBatis的一个强大的特性之一通常是它的动态SQL能力。如果你有使用JDBC或其他相似框架的经验,你就明白条件地串联SQL字符串在一起是多么的痛苦,确保不能忘了空格或在列表的最后省略逗号。动态SQL可以彻底处理这种痛苦。 Mybatis中实现动态sql的标签有&#x…

vue 安装依赖报错

解决方法: npm install --legacy-peer-deps 然后再运行项目即可。

微前端乾坤方案

微前端乾坤方案 了解乾坤 官方文档 介绍 qiankun 是一个基于 single-spa 的微前端实现库,旨在帮助大家能更简单、无痛的构建一个生产可用微前端架构系统。 qiankun 的核心设计理念 🥄 简单 由于主应用微应用都能做到技术栈无关,qiankun 对…

湘潭大学软件工程数据库2(题型,复习资源和计划)

文章目录 选择题关系范式事务分析E-R 图sql作业题答案链接(仅限有官方答案的版本)结语 现在实验全部做完了,实验和作业占比是百分之 40 ,通过上图可以看出来,重点是 sql 语言 所以接下来主要就是学习 sql 语句怎么书写…

万能破题方法包(3)暴力破解法

一、前言 暴力破解法是指通过尝试所有可能的密码组合来破解密码 1.1、概念 暴力破解法是一种通过尝试所有可能的密码组合来破解密码的方法。它基于暴力的方式,不依赖于任何密码漏洞或特殊技巧,而是通过穷举所有可能性来找到正确的密码。 1.2、解决步骤 …

Python中关于电商商品数据的采集【taobao/JD/商品详情数据返回】

在Python中采集电商商品数据(如淘宝、京东等)通常涉及到网络爬虫(web scraping)或称为网络数据抓取(web data scraping)。由于电商平台通常会有反爬虫机制,因此直接抓取数据可能会遇到各种挑战&…

UITableView初识之分组显示数据Demo

基本介绍 继承自UIScrollView,因此可以滚动。 需要Datasource 遵循UITableViewDataSource协议的OC对象,都可以是UITableView的数据源,该协议中的方法告诉UITableView如何显示数据。 关于UITableView UITableView显示分组数据,对应…

C++ 30 之 new 和 delete 关键字

#include <iostream> #include <string.h> using namespace std;class Students08{ public:Students08(){cout << "students08的默认构造函数"<< endl;}Students08(int a){cout << "students08的有参构造函数"<< endl…

springboot与flowable(9):候选人组

act_id_xxx相关表存储了所有用户和组的数据。 一、维护用户信息 Autowiredprivate IdentityService identityService;/*** 维护用户*/Testvoid createUser() {User user identityService.newUser("zhangsan");user.setEmail("zhangsanqq.com");user.setF…

超万卡训练集群网络互联技术解读

超万卡训练集群互联关键技术 大模型迈向万亿参数的多模态升级&#xff0c;万卡集群计算能力亟需飞跃。关键在于增强单芯片性能、提升超节点算力、融合DPU多计算能力&#xff0c;并追求算力能效比极致。这一系列提升将强有力支撑更大规模模型训练和推理&#xff0c;快速响应业务…

ROS中Twist消息类型

Twist消息类型在Robot Operating System (ROS)中是一个常见的数据结构&#xff0c;主要用于描述物体的线性速度和角速度。这种消息类型在ROS的geometry_msgs包中定义&#xff0c;常用于机器人运动控制&#xff0c;尤其是当需要向机器人发布速度指令时。 Twist消息由两个Vector…

实拆一个风扇

fr:徐海涛(hunkxu)

枚举算法01

限制&#xff1a;升序-局部-表征新加的数大于前面一个 从前往后依次枚举每个位置上的数是几 我们排列时候 是从1 到 n 实际上比前面的数大 递归时 1.把搜索问题顺序变成搜索树 2 如何把树转化为

PySide在QLabel上按住鼠标左键画方框

用于截图放大等 import sys from PySide6.QtWidgets import QApplication, QLabel, QMainWindow from PySide6.QtGui import QPixmap, QPainter, QPen, QColor from PySide6.QtCore import Qt, QRect, QPointclass ImageLabel(QLabel):def __init__(self, parentNone):super().…