『TensorFlow』读书笔记_Inception_V3_上
1.网络背景
- 自2012年Alexnet提出以来,图像分类、目标检测等一系列领域都被卷积神经网络CNN统治着。接下来的时间里,人们不断设计新的深度学习网络模型来获得更好的训练效果。一般而言,许多网络结构的改进(例如从VGG到RESNET可以给很多不同的计算机视觉领域带来进一步性能的提高。
 - 这些CNN模型都有一个通病:计算量大。最早的AlexNet含有60M个参数,之后的VGGNet参数大致是AlexNet的3倍之多,而14年GoogLe提出的GoogleNet仅有5M个参数,效果和AlexNet不相上下。虽然有一些计算技巧可以减少计算量,但是在无形中会增加模型的复杂度。参数少的模型在一些超大数据量或内存受限的场景下具有很大优势。
 
2.卷积的因式分解
- GoogleNet带来的性能提升很大程度上要归功于“降维”,也就是卷积分解的一种。考虑到网络邻近的激活单元高度相关,因此聚合之前进行降维可以得到类似于局部特征的东西。接下来主要讨论其他的卷积分解方法。既然Inception网络是全卷积,卷积计算变少也就意味着计算量变小,这些多出来的计算资源可以来增加filter-bank的尺寸大小。
 
卷积因式分解成小的卷积
- 卷积核大,计算量也是成平方地增大。假设有一个5*5的卷积核,我们可以Figure1将其分成两次3*3卷积,这样输出的尺寸就一样了。虽然5*5的卷积可以捕捉到更多的邻近关联信息,但两个3*3组合起来,能观察到的“视野”就和5*5的一样了。

 - 进行分解后,原来的Inception结构也相应发生改变(从Figure4变到Figure5)。 


 - 还有两个问题,一个是就是这样分解是否会导致表达损失,还有一个是是否要在两个卷积之间添加非线性计算。通过实验表明,因式分解没有带来太大问题,而在卷积之间添加非线性效果也更好。
 
卷积因式分解为空间不对称卷积
- 其实,以上的卷积分解还不是最优策略,3*3卷积还可以进一步分解为1*3和3*1,两个卷积分别捕捉不同方向的信息,参数只有之前的6/9。其实,这个可以推广到n*n卷积的情况,n*n卷积因式分解为1*n和n*1。这个方法在网络前面部分似乎表现欠佳,但在中间层起到很好的效果。


 
3.辅助分类器
- 辅助分类器这个概念在GoogleNet中已经用到了,就是把一些网络中间层提前拿出类进行回归分类,主要目的是为了更有效地回传梯度。作者发现,辅助分类器在其中扮演者regularizer的角色,因为辅助分类器使用了batch normalization后,效果会更好。
 
4.降低特征图尺寸
  

- 为了减少计算量且保留特征表达,作者提出一种双线结构,将分别进行池化和步长为2的卷积操作,最后在合并起来(如下图)。 

 
『TensorFlow』读书笔记_Inception_V3_上的更多相关文章
- 『TensorFlow』读书笔记_Inception_V3_下
		
极为庞大的网络结构,不过下一节的ResNet也不小 线性的组成,结构大体如下: 常规卷积部分->Inception模块组1->Inception模块组2->Inception模块组3 ...
 - 『TensorFlow』读书笔记_降噪自编码器
		
『TensorFlow』降噪自编码器设计 之前学习过的代码,又敲了一遍,新的收获也还是有的,因为这次注释写的比较详尽,所以再次记录一下,具体的相关知识查阅之前写的文章即可(见上面链接). # Aut ...
 - 『TensorFlow』读书笔记_VGGNet
		
VGGNet网络介绍 VGG系列结构图, 『cs231n』卷积神经网络工程实践技巧_下 1,全部使用3*3的卷积核和2*2的池化核,通过不断加深网络结构来提升性能. 所有卷积层都是同样大小的filte ...
 - 『TensorFlow』读书笔记_ResNet_V2
		
『PyTorch × TensorFlow』第十七弹_ResNet快速实现 要点 神经网络逐层加深有Degradiation问题,准确率先上升到饱和,再加深会下降,这不是过拟合,是测试集和训练集同时下 ...
 - 『TensorFlow』读书笔记_进阶卷积神经网络_分类cifar10_上
		
完整项目见:Github 完整项目中最终使用了ResNet进行分类,而卷积版本较本篇中结构为了提升训练效果也略有改动 本节主要介绍进阶的卷积神经网络设计相关,数据读入以及增强在下一节再与介绍 网络相关 ...
 - 『TensorFlow』读书笔记_简单卷积神经网络
		
如果你可视化CNN的各层级结构,你会发现里面的每一层神经元的激活态都对应了一种特定的信息,越是底层的,就越接近画面的纹理信息,如同物品的材质. 越是上层的,就越接近实际内容(能说出来是个什么东西的那些 ...
 - 『TensorFlow』读书笔记_SoftMax分类器
		
开坑之前 今年3.4月份的时候就买了这本书,同时还买了另外一本更为浅显的书,当时读不懂这本,所以一度以为这本书很一般,前些日子看见知乎有人推荐它,也就拿出来翻翻看,发现写的的确蛮好,只是稍微深一点,当 ...
 - 『TensorFlow』读书笔记_多层感知机
		
多层感知机 输入->线性变换->Relu激活->线性变换->Softmax分类 多层感知机将mnist的结果提升到了98%左右的水平 知识点 过拟合:采用dropout解决,本 ...
 - 『TensorFlow』读书笔记_进阶卷积神经网络_分类cifar10_下
		
数据读取部分实现 文中采用了tensorflow的从文件直接读取数据的方式,逻辑流程如下, 实现如下, # Author : Hellcat # Time : 2017/12/9 import os ...
 
随机推荐
- 设备树..ing
			
.dts==>.dtb ==>device_node ==> platform_device ==> led_dev.c ==>匹配 led_drv.c (设备 ...
 - Windebug调试
			
.loadby SOS clr .Symfix .reload !threads !printexception [address]
 - POJ 3264 线段树入门解题报告
			
题意:给n个值, Q次询问, 每次询问给定一个区间, 要求输出该区间最大最小值之差 思路:暴力的话每次询问都要遍历多次for循环一定会超时, 用线段树记录区间的信息(左边界右边界, 该区间最大值最小值 ...
 - js/jquery 元素是否存在
			
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>spli ...
 - [js]js设计模式-原型模式
			
构造函数模型- 对象的属性和方法每人一份 function createJs(name, age) { this.name = name; this.age = age; this.writeJs = ...
 - 解决Windows下文件在Linux下打开出现乱码的问题
			
目录 问题 原理 解决 总结 参考资料 问题 前几天生病了,Java一直在看代码但是没跟着打,于是决定偷一波小小的懒,直接把教材的代码从Windows通过共享文件夹放到了Linux里面.但是编译的时候 ...
 - Cocos Creator 使用计时器(官方文档摘录)
			
在 Cocos Creator 中,我们为组件提供了方便的计时器,这个计时器源自于 Cocos2d-x 中的 cc.Scheduler,我们将它保留在了 Cocos Creator 中并适配了基于组件 ...
 - 泛型-----键值对----映射  hashmap--entry中key  value   链表
			
connection map 集合框架 * java.util.Collection *集合与数组相似,也是可以保存一组元素,并且提供了操作元素的相关方法. *collection是所有集合的顶级接口 ...
 - 创建servlet程序知识点详解---servlet-day01
			
方法调用完后,其中的所有局部变量都会消失 ###网络架构 -CS:Client Server 客户端服务器 特点:每种平台都需要开发相对应的app, 开发成本高 功能升级需要下载最新的客户端,用户 ...
 - SpringBoot使用HttpClient远程调用
			
一. Get请求 try { //拼接url url = url+"access_token="+token+"&department_id=1&fetc ...