【论文阅读】inception v1学习总结
【论文阅读总结】inception v1总结
- 1. 摘要
- 2. 序言
- 3. 文献综述
- 4.动机和高层考虑
- 4.1提高深度神经网络性能的最直接方法
- 4.1.1 增加模型的大小
- 4.1.2 解决增加模型大小导致的缺点思路
- 5.结构详述
- 5.1 Inception架构的主要思想
- 5.2 原生inception块问题
- 5.3 解决通道数增加问题
- 5.4 `1*1`卷积优点
- 6. GoogLeNet
- 6.1辅助分类器
- 7. 训练方法
- 论文链接
https://arxiv.org/pdf/1409.4842v1.pdf - 视频链接
【子豪兄】inception v1精读人工智能经典论文
1. 摘要
- 提出了Inception的深度卷积神经网络架构。
- 该体系结构用于分类和检测。
- 分类【分类问题】:对画框的范围进行分类
- 检测【回归问题】:画出框的线,画出物体的边缘框
- 该体系结构的主要特点是提高了网络内计算资源的利用率。
- 该体系结构基于Hebbian理论和多尺度信息处理
- Hebbian理论:将不同特征进行融合成物体【例如:猫的耳朵,腿等融合成一只完整的猫】
- 多尺度信息处理:用不同大小的卷积核并行处理,进行汇总融合【不同大小的卷积核,会融合不同大小的物体,比如:人,猫大小不一样,需要不同的卷积核】
- 允许增加网络的深度和宽度,同时保持计算量保持不变
2. 序言
- 在过去三年中,深度学习的进步(更具体地说是卷积网络),图像识别和对象检测的质量一直在以惊人的速度进步
- 大部分不仅是更强大的硬件、数据集和模型的结果,而且主要是新思想、算法和改进的网络架构的结果
- GoogLeNet参数比AlexNet少12倍,同时也更加准确。
- 随着移动和嵌入式计算的不断发展,算法的效率(尤其是其功率和内存使用)越来越重要
- 目标检测的最大收益并不是来自于单独使用深度网络或更大的模型,而是来自深度架构和经典计算机视觉的协同作用
- 该模型保持15亿倍的计算量,可以以合理的成本投入到现实中使用,即使是在大型数据集上。
- 该模型增加了网络深度【模型的深度与算法的深度】
3. 文献综述
- 从LeNet-5开始,卷积神经网络(CNN)通常具有标准结构
- 标准结构:多层卷积层——》对比度归一化和最大池层【可选】——》一个或多个全连接的层。
- 对于较大的数据集,最近的趋势是增加深度(层数)和宽度(卷积核个数),同时使用丢弃(dropout)来解决过拟合问题。
- 池化层可能会导致空间信息丢失,但也成功用于定位、对象检测和人体姿态估计
- 池化层具有平移不变性
- Inception模型中的所有滤波器(卷积核)都是学习得到的。 Inception层重复多次使用,导致GoogLeNet模型中的22层深度模型。
- Network-in-Network model,大量使用
1*1
卷积层,旨在提高神经网络的代表能力。具有两种作用- 主要用作降维模块,以消除计算瓶颈,限制网络的大小
- 可以增加网络深度,宽度,非线性运算,且不会造成显著的性能损失。
4.动机和高层考虑
4.1提高深度神经网络性能的最直接方法
4.1.1 增加模型的大小
- 主要优点:
- 增加网络深度【模型的深度】
- 增加网络宽度【卷积核个数】
- 是训练更高质量模型的一种简单而安全的方法,特别是考虑到大量标记训练数据的可用性。
- 主要缺点
- 容易过拟合:增加网络深度会有更多参数,特别是在训练集中标记的数据集少时,使网络容易过拟合
- 计算资源急剧增加
- 参数的增加,计算次数也会增加
- 如果增加深度使用效率降低(如果大多数权重最终接近于零,容量增加并没有显著效果),计算资源就会被浪费。
4.1.2 解决增加模型大小导致的缺点思路
- 思路一:【计算机设施效率降低,没有用】
- 稀疏连接取代密集连接,并且在卷积内部也使用
- 稀疏连接:就是有些参数权重为0【自己理解】
- 在稀疏数据结构上进行数值计算,计算基础设施效率很低。
- 即使参数减少了100倍,因此现有的计算效率低下使稀疏连接取代密集连接,模型并没有实际的提升
- 稀疏连接取代密集连接,并且在卷积内部也使用
- 思路二:【没有降低计算机设施效率,且使用了稀疏计算】
- 使用密集连接,得到稀疏连接
- inception块使用了4种不同大小的卷积核并行卷积【每个卷积核卷积是密集连接】,最后进行汇总融合【各个特征图汇总融合就变成了稀疏连接】。
- 在调整学习率、超参数和改进的训练方法之后,Inception架构在定位和对象检测特别有用,最终证明它们至少是局部最优。
- 尽管该体系结构已经成为计算机视觉的成功,但其质量是否可以归因于导致其构建的指导原则,仍然值得探索。
- 使用密集连接,得到稀疏连接
5.结构详述
5.1 Inception架构的主要思想
- 主要思想:通过多个密集结构融合去获取近似的稀疏结构
- 在较低层(靠近输入层),更注重提取局部特征。在较高层(靠近输出层),更注重提取全局特征。
- 较低层提取局部特征,可以使用1*1卷积核。较高层提取较大特征,可以使用较大的卷积核(例如:3*3,5*5)提取
- 使用不同大小的卷积核并行卷积,汇总融合要确保特征图大小一致,使用padding填充。
- 池化操作对于网络成功至关重要,因此也添加了池化层
- Inception模块相互叠加,它们输出相关性统计数据不同。
- 更高特征会被更高层提取,在更高层特征提取,3×3和5×5卷积的比率应该会增加。
- 仅在较高层开始使用Inception模块
- 由于技术原因(训练期间的内存效率)。在传统卷积结构(CNN标准结构)后使用Inception模块是有益的。【但不是必须的,只是当前训练中的一些基础设施效率低下】
- 另一个优点,它符合一种直觉,即视觉信息应该以各种尺度处理,然后聚合,以便下一阶段可以同时从不同尺度提取特征。
- inception模块增了网络的深度与宽度,但是没有增加计算量。导致inception网络非Inception架构类似性能网络快2-3倍,需要仔细的手动设计模型。
5.2 原生inception块问题
- Inception模块叠加,通道数会大大增加,导致较高层通道数非常大,计算量大大增加,可能导致计算故障。
- 因为一个池化层存在,通道数一定会增加,其它层输出通道为1,最终输出层也会比输入层多3层
5.3 解决通道数增加问题
- 使用1*1卷积
- 在3*3,5*5卷积之前使用1*1卷积降低通道数【降维】
- 在3*3,5*5卷积之前使用1*1卷积降低通道数【降维】
5.4 1*1
卷积优点
- 升维与降维
- 1*1卷积层不会改变卷积核的大小,只会改变通道数,调整通道数,控制模型复杂度【升维,降维】
- 通道数比卷积前小,是对数据降维,降低模型复杂度
- 通道数比卷积前大,是对数据升维,增加模型复杂度
- 1*1卷积层不会改变卷积核的大小,只会改变通道数,调整通道数,控制模型复杂度【升维,降维】
- 增加非线性变换
- 卷积层后会有非线性变换层,增加1*1卷积层,也就增加了非线性变换
- 增加模型深度
- 减少参数量与计算量
- 1*1卷积参数只有1个,参数量较少,计算量也会减少
- 可以替代全连接层【通道数就是神经元的个数】
- 也可当作池化层
- 使用1*1卷积核,当输入输出的特征图个数一致时,设置步长(stride),也可以代替池化层
6. GoogLeNet
模型inception结构图
总图
GoogLeNet 这个名字是对LeNet 5网络的致敬
卷积之后全部使用Relu激活函数
图片大小为224×224,采用RGB颜色通道减去均值,对数据预处理
网络深度为22层(加上池化层,为27层。再加上inception模块内部层,为100层)。
全局平均池化代代替全连接层和展平层。
- 网络能够很容易地适应和微调其他标签集。
- 继续使用dropout
6.1辅助分类器
- 由于模型的深度较大,反向传播求参数会导致梯度消失问题,通过添加中间层的辅助分类器,增加反向传播梯度信号,提供额外的正则化。
- 辅助分类器放在Inception(4a)和(4d)模块的输出之上的较小卷积网络。
- 注意:训练好的模型,会去掉辅助分类器,增加辅助分类器只是防止梯度消失问题,导致求参困难
- 总损失函数公式
Losstotal=Lossend+0.3∗Loss辅助器1+0.3∗Losstotal辅助器2\begin{aligned} Loss_{total}=Loss_{end}+0.3*Loss_{辅助器1}+0.3*Loss_{total辅助器2} \end{aligned} Losstotal=Lossend+0.3∗Loss辅助器1+0.3∗Losstotal辅助器2
7. 训练方法
- 网络使用分布式机器学习系统进行训练。
- 分布式机器学习系统具有数据并行性
- 分布式系统,相当于多个电脑同时对该模型进行训练,数据分为k份,每份有batch个数据集,每个电脑进行前向与反向传播,主电脑用来优化更新参数
- 使用0.9的动量异步随机梯度下降(stochastic gradient descent with 0.9 momentum )。
- 使用固定学习率计划(每8个时期将学习率降低4%)
【论文阅读】inception v1学习总结相关推荐
- 论文阅读_对比学习_SimCSE
英文题目:SimCSE: Simple Contrastive Learning of Sentence Embeddings 中文题目:SimSCE:用简单的对比学习提升句嵌入的质量 论文地址:ht ...
- 【论文阅读】深度学习去雾1——论文精选
文章目录 HDP-Net: Haze Density Prediction Network for Nighttime Dehazing Gated Context Aggregation Netwo ...
- 论文阅读_深度学习的医疗异常检测综述
英文题目:Deep Learning for Medical Anomaly Detection - A Survey 中文题目:深度学习的医疗异常检测综述 论文地址:https://arxiv.or ...
- [论文阅读](对比学习系列)
文章目录 第一阶段:百花齐放 [2018] (CVPR) INstDisc [2019] (CVPR)Unsupervised Embedding Learning via Invariant and ...
- 【论文阅读】强化学习-Other Directions for Combining Policy-Learning and Q-Learning专题4篇
文章目录 Combining Policy Gradient and Q-learning, O'Donoghue et al, 2016. Algorithm: PGQL. The Reactor: ...
- 【论文阅读】强化学习与知识图谱关系路径发现
论文标题:DeepPath: A Reinforcement Learning Method for Knowledge Graph Reasoning 中文标题:深度路径:知识图谱推理的强化学习方法 ...
- 论文阅读(联邦学习):Exploiting Shared Representations for Personalized Federated Learning
Exploiting Shared Representations for Personalized Federated Learning 原文传送门 http://proceedings.mlr.p ...
- 论文阅读——基于深度学习智能垃圾分类
B. Fu, S. Li, J. Wei, Q. Li, Q. Wang and J. Tu, "A Novel Intelligent Garbage Classification Sys ...
- 论文阅读及神经网络学习----Neural Networks for Multi-Instance Learning
神经网络 神经网络由多个layer(单层)组成,一层就是一个函数. 这是一个最简单的网络结构,f()f()f()就是一个layer 输入样本xxx为一个1×d1\times d1×d的矩阵,通过f() ...
最新文章
- 我是唯一一个不介意BCH被称为BCH而不是BTC(目前)的人吗?
- nvidia驱动程序与windows版本不兼容
- leetcode算法题--删除链表的倒数第N个节点
- CodeForces - 833B The Bakery
- 查看linux字符集命令,关于Linux字符集的查看及修改
- 通讯录的初步了解与使用
- spring配置详解-属性注入(p名称空间SPEL表达式)
- 用RecyclerView打造一个轮播图
- DISCUZ网站DIY后,导致DIY功能失效,无法在前台删除已创建的DIY功能解决办法
- python递归函数讲解_带你深入学习Python——Python递归详解!
- 大数据可视化设计到底是啥,该怎么用
- 《软件工程(第4版?修订版)》—第1章1.5节 系统的方法
- java有几个关键字,Java多线程常用的几个关键字
- win10怎么把c盘锁住_老司机教你win10下怎么清理c盘
- 免费流量监控软件,最大可同时监控1000台电脑
- 单链表实现反转的三种方法
- buffer string builder简单说明
- 复习vue笔记第一天
- 最新“母马”病毒反杀主流杀毒软件
- linux编译lnx文件命令_Linux命令总结
热门文章
- 亲爱的老狼-列表符号怎么放在盒子里
- 常见颜色RGB值,有图。
- 没有什么是学不会的,关键是你敢不敢豁出去——《向着光亮那方》读后感
- 无情链表的创建,,插入,,删除第一个位
- Linux特殊权限命令
- 简单解析android Hander处理机制
- BlackSquid恶意软件分析:利用8个臭名昭著的漏洞攻击服务器,并投放挖矿恶意软件
- matlab存储excel数据,怎么把matlab表格数据写入excel-怎么把matlab中处理的数据存入到excel中...
- hdu1026 迷宫王子救公主 BFS+优先队列
- git reset soft、mixed和hard的区别和用途详讲