经典卷积神经网络的学习(三)—— Inception Net
Google Inception Net 首次出现在 ILSVRC 2014 的比赛中(和 VGGNet 同年),就以较大优势拔得头筹。那届比赛中的 Inception Net 一般被称为 Inception V1(version 1),其最大的优势在于控制 了参数量(也就控制了计算量)的同时,仍然能够获得非常好的分类性能 —— top-5 错误率 6.67%。
Inception V1 降低餐数量的目的在于以下两点:
- 参数越多,模型越庞大,需要提供模型学习的数据量也就越大,而当前高质量的数据非常昂贵;
- 参数越多,相应地耗费的计算资源也会更大;
0. 一些细节问题
- Scale images because Inception needs pixels to be between 0 and 255,
- Inception net 要求输入图像的像素值在 0-255 区间内,而不是 0-1,如果原始图像的像素值在 0-1,需要在乘以 255;
- The output of the Inception model is a so-called Softmax-function
- Inception net 的输出是 softmax-function,
- 为什么使用了较多 1×1 的卷积?
- 图片数据天然地邻近区域的数据相关性较高,也即可通过卷积操作使相邻的像素点连接在一起。我们可十分方便构造多个卷积核,在同一空间位置但不同通道的卷积核的输出结果相关性较高。
- 因此一个 1×1 的卷积就可以很自然地将这些相关性很高的、在同一空间位置但不同通道的特征连接在一起,这也正是 1×1 的卷积会频繁地应用到 Inception Net 中的原因。
- 1×1 卷积所连接的节点的相关性是最高的,而稍微大一点尺寸的卷积,3×3、5×5 的卷积所连接的节点相关性也很高,因此可进一步地使用一些稍大尺寸的卷积,增加特征多样性(diversity);
1. 模型拓扑
- Inception V1 有 22 层深,比 AlexNet 的 8 层或者 VGGNet 的 19 层还要更深。
去除了最后的全连接层,而使用全局平均池化层(将图片尺寸变为 1×1)取代全连接层;
如上图所示为 Inception Module 的结构图,可知:
- 基本结构共有四个分支;Inception Module 的 4 个分支在最后一个聚合操作合并(在输出通道数这个维度上聚合)
- Inception Module 中包含了:
- 3 种不同尺寸的卷积:1×1,3×3,5×5
- 1 个最大池化层:3×3
2. Inception Net 家族
- 2014 年 9 月,Going Deeper with Convolutions ⇒ Inception V1(top-5 错误率 6.67%)
- 2015 年 2 月,Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate ⇒ Inception V2(top-5 错误率 4.8%)
- 学习了 VGGNet,用两个 3×3 的卷积代替 5×5 的大卷积(以降低参数和减轻过拟合),正如论文标题所言,还提出了有效的 Batch Normalization 方法,可为大型卷积网络的训练加速很多倍;
- 2015 年 12 月,Rethinking the Inception Architecture for Computer Vision ⇒ Inception V3(top-5错误率 3.5%),主要有下述改进:
- 引入 Factorization into Small convolutions 的思想,讲一个较大的二维卷积拆成两个较小的一维卷积,比如将 7×7 ⇒ 1×7 & 7×1
- 2016 年 2 月,Inception V4、Inception-ResNet and the Impact of Residual Connections on learning,提出 Inception V4 的概念,(top-5 错误率 3.08%)
经典卷积神经网络的学习(三)—— Inception Net的更多相关文章
- 经典卷积神经网络的学习(一)—— AlexNet
AlexNet 为卷积神经网络和深度学习正名,以绝对优势拿下 ILSVRC 2012 年冠军,引起了学术界的极大关注,掀起了深度学习研究的热潮. AlexNet 在 ILSVRC 数据集上达到 16. ...
- 经典卷积神经网络的学习(二)—— VGGNet
1. 简介 VGGNet 是牛津大学计算机视觉组(Visual Geometry Group)和 Google DeepMind 公司的研究员一起研发的深度卷积神经网络,其主要探索了卷积神经网络的深度 ...
- 经典卷积神经网络(LeNet、AlexNet、VGG、GoogleNet、ResNet)的实现(MXNet版本)
卷积神经网络(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现. 其中 文章 详解卷 ...
- TensorFlow实战之实现AlexNet经典卷积神经网络
本文根据最近学习TensorFlow书籍网络文章的情况,特将一些学习心得做了总结,详情如下.如有不当之处,请各位大拿多多指点,在此谢过. 一.AlexNet模型及其基本原理阐述 1.关于AlexNet ...
- 卷积神经网络(CNN)学习笔记1:基础入门
卷积神经网络(CNN)学习笔记1:基础入门 Posted on 2016-03-01 | In Machine Learning | 9 Comments | 14935 Vie ...
- 五大经典卷积神经网络介绍:LeNet / AlexNet / GoogLeNet / VGGNet/ ResNet
欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习.深度学习的知识! LeNet / AlexNet / GoogLeNet / VGG ...
- 卷积神经网络CNN学习笔记
CNN的基本结构包括两层: 特征提取层:每个神经元的输入与前一层的局部接受域相连,并提取该局部的特征.一旦该局部特征被提取后,它与其它特征间的位置关系也随之确定下来: 特征映射层:网络的每个计算层由多 ...
- 经典卷积神经网络算法(5):ResNet
.caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...
- 卷积神经网络 CNN 学习笔记
激活函数Relu 最近几年卷积神经网络中,激活函数往往不选择sigmoid或tanh函数,而是选择relu函数.Relu函数的定义 $$f(x)= max(0,x)$$ Relu函数图像如下图所示: ...
随机推荐
- 通过WMI的方式去设置LCD背光亮度
code例如以下: #include "stdafx.h" #include <objbase.h> #include <windows.h> #inclu ...
- Altium Designer如何重命名文件
- WCF 设计和实现服务协定(01)
作者:jiankunking 出处:http://blog.csdn.net/jiankunking WCF 术语: • 消息 – 消息是一个独立的数据单元,它可能由几个部分组成,包含消息正文和消息头 ...
- POJ 1833 生成排列
题目链接:POJ 1833 /************************************ * author : Grant Yuan * time : 2014/10/19 16:38 ...
- TextView之一:子类的常用属性 分类: H1_ANDROID 2013-10-30 15:14 770人阅读 评论(0) 收藏
TextView常见的子类包括EditText,Button,CheckBox, RadioButton等. 1.EditText EditText继承自TextView,因此TextView所有属性 ...
- Opencv在视频中静态、动态方式绘制矩形框ROI
Opencv视频处理中的目标跟踪经常用到要在视频上画一个矩形框ROI,标注出要跟踪的物体,这里介绍两种在视频中绘制矩形框的方法,一种是"静态的",一种是"动态的" ...
- C# 使用 RabbitMQ
1. RabbitMQ MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过写和检索出入列队的针对应用程序的数据(消息)来通信,而无需专用连接来链接 ...
- centos-mirrors
http://mirrors.aliyun.com/centos/7.2.1511/os/x86_64/Packages/ http://mirrors.aliyun.com/centos/7.2.1 ...
- 枚举系统磁盘驱动器(使用GetLogicalDriveStrings API函数,system("pause"); 很实用,还用到wcslen等函数)
代码如下: #include "stdafx.h" #include <vector> #include <string> #include <Win ...
- Android JNI编程(三)——C语言指针的初步认识、指针变量、互换两个数、函数返回多个值
版权声明:本文出自阿钟的博客,转载请注明出处:http://blog.csdn.net/a_zhon/. 目录(?)[+] 一.什么是指针? 简单来说: 指针就是内存地址 内存地址就是指针. ...