CNN网络进化:AlexNet-》VGG->GoogleNet->ResNet,深度8-》19-》22-》152
GoogleNet:Lsplit-》transform-》merge,分治思想
ResNeXt:在ResNet上增加cardinality基数,即通道数,残差~缓解梯度消失问题
Bag of words:视觉词汇组成一组一组的

ground truth:任何标签都可以称为~
鞍点 (saddle point)的数学含义是: 目标函数在此点上的梯度(一阶导数)值为 0, 但从该点出发的一个方向是函数的极大值点,而在另一个方向是函数的极小值点。判断鞍点的一个充分条件是:函数在一阶导数为零处(驻点)的黑塞矩阵为不定矩阵。

卷积核/滤波器的个数~通道数

Relu:解决梯度消失,深度网络能进行优化的关键

卷积层+激活函数:激活函数类似于人眼-达到一定阈值才会被激活,传到下一次;增加非线性-》分段线性,拟合所有函数

卷积步长大于1:特征降维作用

池化:特征融合,尺寸降维

全连接层:等效全局卷积/全尺寸卷积,卷积核大小维上一层输出尺寸即W*H*C,卷积核个数维最终分类个数即K;去除空间信息

工程tricks:

  图像像素中心化~rgb各自减通道均值

  防止过拟合:数据增强;dropout;weigth decay权重衰减(L2正则)

Alexnet:新技术~Relu;dropout;max pooling

  注意双gpu交互:卷积层一中特征通道96在2中显卡评分-》48

          三中通道合并,即跨显卡做卷积

  LRN局部响应归一化~模拟神经元侧抑制机制,某位置跨通道方向上的归一化~超参是实验定出的

VGG:卷积核7*7拆解为3个3*3

GoogleNet:进化InceptionV1到V4
   核心组件:Inception模块,先分支再合并

    inception3a:128=1*1,3*3,3*3,pooling四个的输出值和~即串接

    卷积分支中1*1先放前面,pooling中1*1放在后面~先pooling特征合并保证原始信息量再降维

      Split-Merge:四个不同卷积/池化~多尺度,宽度
      Bottleneck:NiN的1*1卷积来解决多尺度带来的高额参数,特征降维
   
  Inception V1:两大贡献(1)取消全连接:global average pooling+softmax可以代替,对应主分类器取消全连接层增加两个辅助分类器,辅助是有全连接的  (2)辅助

  InceptionV2:核心组件

      (1)批归一化:解决相关偏移问题~内部神经元的数据分布发生变化;本质是白化即每一层的输出都规范化到0,1的正态分布,取代dropout,允许较高学习率;

        详细:在batch范围内,对每个特征通道分别进行归一化~每个batch如32个图片,每个图片k通道,那么每个通道对应32个值~长*宽*1*batchsize的均值和标准差来归一化;注意~每张图片的每个通道的矩阵表示:长*宽*1

        位置:卷积层和激活层之间,归一化在非线性变换之前

        因为不同特征的均值和方差本来就是有相对差异 的,强制化为0,1的正态分布是有问题的,比如有的特征是在均值1附近的-》尺度变换和偏移,即scale和shift即尺度和偏移即乘子和偏置要学习出来即需训练,配对使用,每个通道都有一对共k组,乘以scale加上shift后的y才是传入后面的

        训练中每个batch中的k组均值和标准差都会被保存,测试时存储的所有batch的k组均值和标准差会分别求平均,使用k组平均

       (2)5*5卷积核拆为3*3

 Inception3:

    (1)非对称卷积:N*N分解成1*N-》N*1

      (2) 低层处低分辨35*35上将5*5拆为两个3*3;分辨率17*17上火将两个N*N分别拆了;分辨率8*8上并行操作做分解    why好--  工程实践经验

       (3)高效的降尺寸Grid size :

      现象:25*25*320先pooling后Incepion~有表达瓶颈计算量小,因为pooling后hi是低维的17*17*320,inception后17*17*640;25*25*320先inception后pooling~无表达瓶颈但是计算量大,因为inceptin后时25*25*640,pooiling后维17*17*640

      目的:避免表达瓶颈增加特征通道

      操作:两个并行分支,卷积分支+池化分支,串接分支结果

        卷积分支1:1*1特征降维减少计算量-》3*3卷积步长1-》3*3卷积步长2

        卷积分支2:1*1卷积-》3*3步长2

        池化:步长2,即池化照常做

        卷积分支1出160,卷积分支2出160,池化出320,串接为640的特征通道数,卷积的串接补充了信息

   (4)取消浅层辅助分类器。深层辅助分类器只在训练后期有用-工程经验

  Inception4:Inception模块加上了resnet的直连

ResNet:核心组件为skip/shortcut connection

  目标映射=残差映射+identity即H=F+x,求导,该模块倒数永远大于1

  卷积核基本都为3*3,池化层用卷积步长2代替~淡紫和黄色之间,步长为2使得尺寸降维度通道升维,使用BN;取消了全连接层,max池化,dropout

  基础网络时VGG

  当H是最优映射接近identity时,很容易捕捉到小的扰动

  更深层用Bootleneck优化残差映射网络

  

    

    

  

lesson4-图像分类-小象cv的更多相关文章

  1. lesson8-图像问答-小象cv

    QA即图像问答:覆盖最全面的AI,ai完备性 动态模型:不同任务需要不同模型 or 不同细分任务需要不同模型参数 数据集: 1)VQA,显示图片+抽象场景:每个问题给10个不同答案:含有无图片答案(考 ...

  2. lesson7-图像描述 -小象cv

    2018-04-25朴素rcnn - 梯度消失严重LSTM长短时记忆模型,有效捕捉长时记忆包含四个神经元组:一个记忆神经元三个控制门神经元:输入.忘记.输出 注意:输入调制门.输出调制门 3个输入:前 ...

  3. lesson5-图像检测-小象cv

    R-CNN: 2014,cnn为Alexnet 训练流程: 1)在imagenet上对cnn模型pre-train 2)使用所有ss生成区域对1)进行fine-tune ~softmax改为21维度 ...

  4. resNet代码-小象/cv

    C:\yyy\ml\dengsong\ChinaHadoop\ChinaHadoop_C4-master\ChinaHadoop_C4-master\C4_ResNet_TF http://blog. ...

  5. OpenCV探索之路(二十五):制作简易的图像标注小工具

    搞图像深度学习的童鞋一定碰过图像数据标注的东西,当我们训练网络时需要训练集数据,但在网上又没有找到自己想要的数据集,这时候就考虑自己制作自己的数据集了,这时就需要对图像进行标注.图像标注是件很枯燥又很 ...

  6. Android开发学习—— ContentProvider内容提供者

    * 应用的数据库是不允许其他应用访问的* 内容提供者的作用就是让别的应用访问到你的数据库.把私有数据暴露给其他应用,通常,是把私有数据库的数据暴露给其他应用. Uri:包含一个具有一定格式的字符串的对 ...

  7. Android基础总结(十)

    内容提供者(掌握) 应用的数据库是不允许其他应用访问的 内容提供者的作用就是让别的应用访问到你的私有数据 自定义内容提供者,继承ContentProvider类,重写增删改查方法,在方法中写增删改查数 ...

  8. openCV C++ 代码笔记

    代码片段1 cv_contourMask_step_tmp=cv_contourMask.clone(); cv::Mat maskImage; UIImageToMat(pathimg, maskI ...

  9. Android应用开发基础之九:内容提供者(ContentProvider)

    内容提供者 应用的数据库是不允许其他应用访问的 内容提供者的作用:就是让别的应用访问到你的数据库 自定义内容提供者,继承ContentProvider类,重写增删改查方法,在方法中写增删改查数据库的代 ...

随机推荐

  1. Easyui的datagrid的editor(行编辑器)如何扩展datetimebox类型

    在easyui的datagrid扩展方法中添加这样的时间日期(datetimebox)代码块 放在   $.extend($.fn.datagrid.defaults.editors,{datetim ...

  2. JS--label语句的使用

    使用label语句可以在代码中添加标签,以便将来使用. 一般与for循环一起使用 如: var num = 0; outermost: for(var i=0;i<10;i++){ for(va ...

  3. GCC 命令行详解 -L 指定库的路径 -l 指定需连接的库名 zhuan

    1.gcc包含的c/c++编译器gcc,cc,c++,g++,gcc和cc是一样的,c++和g++是一样的,(没有看太明白前面这半句是什么意思:))一般c程序就用gcc编译,c++程序就用g++编译 ...

  4. shell IF分支判断语句

    单分支IF条件语句 if [ 条件判断式 ] then  程序: fi //结束的时候if反过来写 fi ----------------------------- /** * if test -d ...

  5. nodejs项目文件搭建环境

    nodeJS,作为一门较为“新鲜的”的原因,近年来普遍受到一些前端想转为全栈的ITer青睐,在想用nodeJS配合数据库开发出一个小玩意的路上,萌新们第一步便要遇到就是环境的支持.node作为Java ...

  6. 银联接口C#

    银联支付: ChinaPay的会员商户接入支付平台,以方便商户开展网上支付交易. 持卡人从商户网站中生成订单信息,通过公共支付交易平台中的支付网关子系统进行支付的过程,其交易流程包括订单确认.支付处理 ...

  7. asp.net中HttpModule扩展的浅析

    在asp.net中,我们可以使用HttpModule扩展自己的相关业务.可以在HttpApplication的19个管道事件中注入我们自己的业务逻辑代码. 闲话不说,代码先上. 一.新建网站项目 我们 ...

  8. leetcode python 002

    ##002 Input: (2 -> 4 -> 3) + (5 -> 6 -> 4) Output: 7 -> 0 -> 8# 链表节点都是一位数字,以上可以视为2 ...

  9. 2.6 C++通过引用来传递和返回类对象

    参考:http://www.weixueyuan.net/view/6338.html 总结: C++语言中,由类声明的对象,和其它类型声明的变量一样,同样可以通过传值.引用和指针的方式作为函数的参数 ...

  10. 「版本升级」MyEclipse CI 2018.12.0正式发布

    新版本MyEclipse为WildFly 14新增一个新的服务器连接器,改进性能并新增一些Java 10修复程序.新版本为IDE做了几个核心修复,这是MyEclipse 2018一个更棒的升级. [M ...