目标检测 — Inception-ResNet-v2
这篇文章介绍的网络有Inception V1、Inception V2、Inception V3、Inception V4与Inception-ResNet-V2。
1、Inception V1
主要贡献:
(1)提出inception architecture并对其优化
(2)取消全连层(因为FC网络输入要固定、参数过多、容易过拟合)
(3)运用auxiliary classifiers加速网络converge,简称AC

其中1×1的卷积层可以控制kernels的数量,还增加了网络的非线性程度。多个卷层后将卷积直接concate一下。
网络中间层加入了两个AC,这两个AC在训练的时候也跟着学习,同时把自己学习到的梯度反馈给网络,算上网络最后一层的梯度反馈,GoogLeNet一共有3个“梯度提供商”,先不说这么做有没有问题,它确实提高了网络收敛的速度,因为梯度大了嘛。另外,GoogLeNet在做inference的时候AC是要被摘掉的。
该团队又提出了inception v2的结构,基于上面提到的一些原则,在V1的基础之上主要做了以下改进:
(1)使用BN层,将每一层的输出都规范化到一个N(0,1)的正态分布,这将有助于训练,因为下一层不必学习输入数据中的偏移,并且可以专注与如何更好地组合特征(也因为在v2里有较好的效果,BN层几乎是成了深度网络的必备)。这也是最大贡献Batch Normalization(BN)。BN层放在每个隐藏层激活函数前,即 wx+b 之后,之后再加激活函数。总的来讲,加入BN层的反向传播没有发生根本的改变,只是多了一个反向计算过程(batchnorm_backward函数)而已。
(2)使用两个小的3*3卷积核代替一个5*5的大卷积核,好处是:相同的感受野、更少的参数、更深的网络提取特征。
(3)尝试更小的卷积:1*3 + 3*1 替换3*3 卷积。
3、Inception V3
- 1、分解大filters,使其小型化、多层化,其中有个“非对称卷积”很新颖
- 2、优化inception v1的auxiliary classifiers
- 3、提出一种缩小特征图大小的方法,说白了就是一种新的、更复杂的pooling层
- 4、Label smooth,“标签平滑”,很难用中文说清楚的一种方法
4、Inception V4
各种改网络结构,各种复杂,也是醉了。
将原来卷积、池化的顺次连接(网络的前几层)替换为stem模块,来获得更深的网络结构。
5、Inception-ResNet-v2
- 1、在Inception v3的基础上发明了Inception v4,v4比v3更加复杂,复杂到不可思议
- 2、结合ResNet与GoogLeNet,发明了Inception-ResNet-v1、Inception-ResNet-v2,其中Inception-ResNet-v2效果非常好,但相比ResNet,Inception-ResNet-v2的复杂度非常惊人,跟Inception v4差不多
- 3、加入了Residual Connections以后,网络的训练速度加快了
- 4、在网络复杂度相近的情况下,Inception-ResNet-v2略优于Inception-v4
- 5、Residual Connections貌似只能加速网络收敛,真正提高网络精度的是“更大的网络规模”
6、总结
inception 网络系列是从GoogLeNet开始的,一步步将网络设计的更复杂,最后直接结合残差网络,复杂度进一步上升,残差网络负责加快收敛,重要的还是模型的规模。Inception-ResNet v2、ResNet152和Inception v4模型规模差不多,v4略小,Inception v3和ResNet50模型规模相当。
依我个人理解,网络的负责是为了充分挖掘训练数据图像的特征,减少卷积过程中特征的损失,从而提高分类准确度。但在现实应用中,还需要在模型复杂度,计算量和任务需求上进行权衡选择。如果相对简单的网络能满足要求,就不必须选择复杂的网络。
目标检测 — Inception-ResNet-v2的更多相关文章
- 目标检测之YOLO V2 V3
YOLO V2 YOLO V2是在YOLO的基础上,融合了其他一些网络结构的特性(比如:Faster R-CNN的Anchor,GooLeNet的\(1\times1\)卷积核等),进行的升级.其目的 ...
- 目标检测 - Tensorflow Object Detection API
一. 找到最好的工具 "工欲善其事,必先利其器",如果你想找一个深度学习框架来解决深度学习问题,TensorFlow 就是你的不二之选,究其原因,也不必过多解释,看过其优雅的代码架 ...
- 目标检测算法之YOLOv1与v2
YOLO:You Only Look Once(只需看一眼) 基于深度学习方法的一个特点就是实现端到端的检测,相对于其他目标检测与识别方法(如Fast R-CNN)将目标识别任务分成目标区域预测和类别 ...
- 目标检测网络之 YOLOv2
YOLOv1基本思想 YOLO将输入图像分成SxS个格子,若某个物体 Ground truth 的中心位置的坐标落入到某个格子,那么这个格子就负责检测出这个物体. 每个格子预测B个bounding b ...
- AI佳作解读系列(二)——目标检测AI算法集杂谈:R-CNN,faster R-CNN,yolo,SSD,yoloV2,yoloV3
1 引言 深度学习目前已经应用到了各个领域,应用场景大体分为三类:物体识别,目标检测,自然语言处理.本文着重与分析目标检测领域的深度学习方法,对其中的经典模型框架进行深入分析. 目标检测可以理解为是物 ...
- 目标检测网络之 YOLOv3
本文逐步介绍YOLO v1~v3的设计历程. YOLOv1基本思想 YOLO将输入图像分成SxS个格子,若某个物体 Ground truth 的中心位置的坐标落入到某个格子,那么这个格子就负责检测出这 ...
- 【转】目标检测之YOLO系列详解
本文逐步介绍YOLO v1~v3的设计历程. YOLOv1基本思想 YOLO将输入图像分成SxS个格子,若某个物体 Ground truth 的中心位置的坐标落入到某个格子,那么这个格子就负责检测出这 ...
- 【目标检测】YOLO:
PPT 可以说是讲得相当之清楚了... deepsystems.io 中文翻译: https://zhuanlan.zhihu.com/p/24916786 图解YOLO YOLO核心思想:从R-CN ...
- 目标检测之RefineDet
RefineDet 一.相关背景 中科院自动化所最新成果,CVPR 2018 <Single-Shot Refinement Neural Network for Object Detectio ...
- One Stage目标检测
在计算机视觉中,目标检测是一个难题.在大型项目中,首先需要先进行目标检测,得到对应类别和坐标后,才进行之后的各种分析.如人脸识别,通常是首先人脸检测,得到人脸的目标框,再对此目标框进行人脸识别.如果该 ...
随机推荐
- Java编程之路相关书籍(三个维度)
一.关于Java的技术学习.能够依照以下分三个维度进行学习 : (1)向下发展,也就是底层的方向 建议看<深入Java虚拟机>.<Java虚拟机规范>.<Thinking ...
- CentOS6.4下编译安装Apache2.4+PHP5.6
安装Apache2.4: 首先从 http://httpd.apache.org/download.cgi#apache24下载apache源码包httpd-2.4.4.tar.gz从 http: ...
- window安装redis
1.redis简介redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(so ...
- java基础之【堆、栈、方法区】结构图
|--数组实例化过程 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHViaWFvXzA2MTg=/font/5a6L5L2T/fontsize/400/ ...
- 算法调参 weight_ratio, weight_seqratio
from openpyxl import Workbook import xlrd import time import Levenshtein as Le target_city_list = [' ...
- information entropy as a measure of the uncertainty in a message while essentially inventing the field of information theory
https://en.wikipedia.org/wiki/Claude_Shannon In 1948, the promised memorandum appeared as "A Ma ...
- [ubuntu]安装adobe air
修改安装文件为可执行权限: sudo ./AdobeAIRInstaller.bin 提示错误: <code> Adobe AIR could not be installed. Inst ...
- 我的Android进阶之旅------>Android 标签的用法
布局资源文件的根节点可以使用容器控件(如LinearLayout.FrameLayout等),也可以使用非容器控件(如:EditText.TextView等).对于非容器控件,只能在非容器控件标签中放 ...
- hibernate Session的CRUD操作
使用Session里面的方法进行CRUD操作 (1) 增加 save 方法 (2) 查找 get 方法(根据id查) (3) 修改 update 方法 (4) 删除 delete 方法 1.增加 /* ...
- linux c编程:进程控制(四)进程关系
每一个进程除了有一个进程ID外,还属于一个进程组. 进程组是一个或多个进程的集合,通常情况下,他们是在同一作业中结合起来的,同一进程组的个进程接受来自同一终端的各种信号. 每一个进程组有一个唯一的进 ...