一.图像分类简单介绍

1.什么是图像分类

判断图片中是否有某个物体

一个图对应一个标签

性能指标

(1)Top1 error ----前1中1

(2)Top5 error ----前5中1

2.ILSVRC竞赛

ILSVRC全称为ImageNet Large ScaleVisual Recongnition Chalenge

竞赛的内容有:

(1)图像分类

1000个分类

训练集(1.2M),验证集(50K),测试集(150K)

(2)场景分类

来自MIT的Places2数据集(图片10M+,分类400+)

365个场景分类

训练集(8M),验证集(36K),测试集(328K)

(3)物体检测

(4)物体定位

(5)场景解析

ImageNet数据集:

根据WordNet组织的图片集

100,000+个词/词组(sysnsets)

8000+个名词

为一个名词提供平均1000张图片

总共14,197,122张图片

支持21,841个synsets

3.ImageNet的性能进化

从有竞赛开始,分类的性能,每年都会有显著提升,其中几个变革性的分类模型如下图。

4.CIFAR-10数据集

该数据集共有60000张彩色图像,这些图像分辨率是32*32,分为10个类,每类6000张图

其中有50000张用于训练,构成了5个训练批,每一批10000张图;另外10000用于测试,单独构成一批

测试批的数据里,取自10类中的每一类,每一类随机取1000张

二.分类模型

1.网络进化

网络:AlexNet→VGG→GoogLeNet→ResNet

深度:8→19→22→152

VGG结构简洁有效

容易修改,迁移到其他任务中去

高层任务的基础网络

性能竞争网络

GoogleNet:Inception v1 → v4

Split-transform-merge

ResNet:ResNet1024→ResNeXt

深度,宽度,基数

2.CNN结构的演化

3.AlexNet网络

(1)ImageNet-2012竞赛第一

标志着DNN深度学习革命的开始

5个卷积层+3个全连接层

60M个参数+650K个神经元

2个分组→2个GPU(3GB)

使用两块GTX 580 GPU训练了5-6天

新技术

ReLU非线性激活

Max pooling池化

Dropout regularization

还包括后来不被认可的LRN

(2)模型示意图

(3)网络解析

(6)局部响应归一化(LRN)

Local Response Normalization

后面被证实作用性不大,了解一下就可以了

神经元的侧抑制机制

某个位置(x,y)上沿通道方向上的归一化

n为邻域值,N为通道数

超参数:k=2,n=5,α=0.0001,β=0.75

(7)Network-in-Network网络(NiN)

提高CNN的局部感知区域的非线性

卷积层→1×1卷积层→Max池化层

NiN源自2014年ICLR的一篇论文,Alexnet网络参数大小是230M,采用NiN的算法才变为29M.

1×1卷积,实现的是“同一个像素点上”的各个通道的值的线性组合

这里的“全连接”指的是卷积前通道数与卷积后通道数之间的。

1×1卷积有两个方面的作用

实现跨通道的交互和信息整合

进行卷积核通道数的降维和升维

4.VGG网络

(1)简介:

VGG提出的目的是为了探究在大规模图像识别任务中,卷积网络深度对模型精确度有何影响。

一个大卷积核分解成连续多个小卷积核

核分解:7×7核→3个3×3核(由ReLU连接)

参数数量:49C**2 →27C**2   (C为通道数)

减少参数,降低计算,增加深度

ImageNet-2014竞赛第二

网络改造的首选基础网络

5.GoogLeNet

(1)简介:

GoogLeNet出现之前,主流的网络结构突破大致是网络更深(层数),网络更宽(神经元数),但现在看来这纯粹是增大网络的缺点。

ImageNet-2014竞赛第一

进化顺序:

Inception V1 → V2 → V3 →V4

为了提升性能:

减少参数,降低计算

增加宽度,深度

(2)Inception V1网络

1)核心组件Inception Architecture

split-Merge→1×1卷积,3×3卷积,5×5卷积,3×3池化

增加网络对多尺度的适应性

增加网络深度

Bottleneck Layer→使用NiN的1×1卷积进行特征降维

大幅降低计算量

2)取消全连接

参数量大,减负

3)辅助分类器

解决前几层的梯度消失问题

1)核心组件Inception Architecture(稀疏连接结构)

1*1,3*3,5*5的卷积和3*3的pooling组合在一起

亮点是从NIN中引入了1*1卷积核

上图中:假设前一层的输出为28*28*192,则:

a的weights数量为:

1*1*192*64 + 3*3*192*128 + 5*5*192*32 = 387072

a的输出feature map大小为:

28*28*64 + 28*28*128 + 28*28*32 + 28*28*192 = 28*28*416

b的weights数量为:

1*1*192*64 + (1*1*192*96 + 3*3*96*128)+ (1*1*192*16 + 5*5*16*32)+ 1*1*192*32 = 163328

b的输出feature map大小为:

28*28*64 + 28*28*128 + 28*28*32 + 28*28*32 = 28*28*256

可以看出1*1 conv一方面减少了weights,另一方面降低了dimension

2)取消全连接层

本质上是一个全尺寸的卷积层

全连接层占用了大量参数

AlexNet: 58.6M(6×6×256×4096 + 4096×4096 + 4096×1000)

VGG: 72M(7×7×256×4096 + 4096×4096 + 4096×1000)

GoogleNet由全局平均池化替代

输入:7×7×1024

输出:1×1×1024

一大趋势

全局平均池化介绍:

全局平均池化就没有size,它针对的是整张feature map

3)2个辅助分类器

深网络中,梯度回传到最初几层,存在严重消失问题

有效加速收敛

测试阶段不使用

(3)Inception V2网络

核心组件

Batch Normalizatio(批归一化)

白化:使每一层的输出都规范到N(0,1)

解决Internal Covariate Shift问题

允许较高学习率

取代部分Dropout

5×5卷积核→2个3×3卷积核

1)Batch Normalization批归一化

在batch范围内,对每一个特征通道分别进行归一化

所有图片,所有像素点

训练阶段→实时计算

测试阶段→使用固定值(对训练求平均)

位置:卷积→BN→ReLU

配对使用scale&shift

添加一组逆算子:scale乘子,bias偏置

这组参数需要学习 y**(k)= γ**(k)x**(k) + β**(k)

(4)Inception V3网络

核心组件

非对称卷积:

N×N分解成1×N→N×1

降低参数数量和计算量

在中度大小的feature map 上使用效果才会更好,对于m*m大小的feature map,建议m在12道20之间。

Inception V3 优化了Inception Module的结构,V3有三种不同的结构,如下图。

这些Inception Module只在网络的后部出现,前部还是普通的卷积层

高效的降尺寸

避免表达瓶颈

降尺寸前增加特征通道

2个并行分支

卷积分支+池化分支

串接分支结果

取消浅层的辅助分类器

完全无用

深层辅助分类器只在训练后期有用

加上BN和Dropout,主分类器Top1性能提升0.4%

正则化作用

用在最后一层17×17后

(5)Inceoption V4网络

(6)总结Iception

1)代替人工确定卷积层中的过滤器类型或者确定是否需要创建卷积层和池化层

2) 不需要人为的决定使用哪个过滤器,是否需要池化层等,有网络自行决定这些参数

3)即:预先给网络添加所有可能值,将输出连接起来,让网络自己学习它需要什么的参数

4)Iception网络有个问题:网络的超参数设定的针对性比较强,当应用在别的数据集上时需要修改许多参数,因此可扩展性一般

6.ResNet残差网络

(1)介绍:

核心组件Skip/shortcut connection

Plain net:可以拟合出任意目标映射H(x)

Residual net

可以拟合出任意目标映射F(x),H(x) = F(x) + x

F(x)是残差映射,相对于identity来说

其他设计

全是3×3卷积核

卷积步长2取代池化

使用Batch Normalization

取消

Max池化

全连接层

Dropout

ResNet残差网络,使用了更深的网络,根据BootLeneck优化残差映射网络

原始残差映射网络:3×3×256×256→3×3×256×256

优化后的残差映射网络:1×1256×64→3×3×64×64→1×1×64×256

Inception-ResNet网络(如下图)

7.ResNeXt网络

(1)介绍

1)提出“深”和“宽”之外的第三个维度

2)cardinality(基数)

采用Split-Transform-Aggregate策略

将卷积核按照通道分组,形成32个并行分支

低纬度卷积进行特征变换

加法合并

3)同参数规模下,增加结构,提高模型表达力

100层ResNeXt = 200层ResNet

ILSVRC-2016竞赛第二

4)ResNeXt实际上就是将AlexNet中的group convolution引进了ResNet中,以获得更少的参数。

这里的group convolution用了32×4d块结构。

resnet的参数量为:

256*64 + 3*3*64*64 + 64*256 = 70k

ResNeXt的参数量为:

C*(256*d + 3*3*d*d + d*256)

当C取32,d=4时,上式也等于70k

5)ResNeXt网络打破或deeper,或wider的常规思路,ResNeXt则认为可以引入一个新维度,称之为cardinality。增加cardinality基数可以不断提高性能。

(2)32×4d结构参数

1)32个分支

2)每个分支4通道

8.CNN设计准则

(1)避免信息瓶颈

卷积过程中

空间尺寸H×W逐渐变小

输出通道数C逐渐变多

H×W×C要缓慢变小

(2)通道(卷积核)数量保持在可控范围内

输入通道数量C

输出通道数量K

参数数量Hf × Wf ×C × K

操作数量[(H×Hf)/ stride ] × [ (W×Wf)/ stride ] × C × K

从上式,可看出卷积核的大小对总计算量的影响

                                                 (3)感受野要足够大

卷积时基于局部图片的操作

捕捉大尺寸内容

多个小尺寸卷积核 VS 一个大尺寸卷积核

参数少,计算快

多个非线性激活

(4)分组策略→降低计算量

(5)低秩分解→降低参数&计算量

最后,放上ImageNet竞赛分类组的各模型性能示意图

深度学习基础之图像分类相关推荐

  1. 人工智能 - paddlepaddle飞桨 - 深度学习基础教程 - 图像分类

    图像分类 本教程源代码目录在book/image_classification,初次使用请您参考Book文档使用说明. 说明:¶ 1.硬件环境要求: 本文可支持在CPU.GPU下运行 2.Docker ...

  2. 【完结】有三AI阿里云的深度学习基础课程暂时完结,欢迎扩散学习

    2021年3月份有三AI与阿里天池联合推出了深度学习系列课程, 课程内容包括人工智能与深度学习发展背景,深度学习典型应用,卷积神经网络,循环神经网络,生成对抗网络,深度学习开源框架等内容,目前已经基本 ...

  3. [深度学习基础] 深度学习基础及数学原理

    图像分类 (image classification) 问题是指, 假设给定一系列离散的类别(categories)(如猫, 狗, 飞机, 货车, ...), 对于给定的图像, 从这些类别中赋予一个作 ...

  4. Deep learning with python notebooks 笔记 第一章 深度学习基础

    第一章 深度学习基础 好的图表比文字传达的信息量多 图1-1帮助理清了人工智能.机器学习和深度学习之间的关系. 图1-2 清晰的阐述了经典程序设计范式和机器学习一种新的编程范式的不同.两种范式引出了两 ...

  5. 深度学习论文阅读图像分类篇(三):VGGNet《Very Deep Convolutional Networks for Large-Scale Image Recognition》

    深度学习论文阅读图像分类篇(三):VGGNet<Very Deep Convolutional Networks for Large-Scale Image Recognition> Ab ...

  6. 一种基于深度学习的遥感图像分类及农田识别方法

    文章针对现有的神经网络收敛速度慢.识别准确率不高的缺点,提出了一种基于卷积神经网络的遥感图像农田分类及识别方法.该算法使用较大的卷积核,有效地提取梯度信息:设计深度为6层的卷积神经网络,提高了网络的分 ...

  7. Python深度学习(一)深度学习基础

    翻译自Deep Learning With Python(2018) 第一章 深度学习基础:https://www.jianshu.com/p/6c08f4ceab4c 第二章 深度学习的数学构建模块 ...

  8. 深度学习论文阅读图像分类篇(五):ResNet《Deep Residual Learning for Image Recognition》

    深度学习论文阅读图像分类篇(五):ResNet<Deep Residual Learning for Image Recognition> Abstract 摘要 1. Introduct ...

  9. 二分类交叉熵损失函数python_【深度学习基础】第二课:softmax分类器和交叉熵损失函数...

    [深度学习基础]系列博客为学习Coursera上吴恩达深度学习课程所做的课程笔记. 本文为原创文章,未经本人允许,禁止转载.转载请注明出处. 1.线性分类 如果我们使用一个线性分类器去进行图像分类该怎 ...

最新文章

  1. 计算机的桌面教案,《认识计算机桌面》教案-20210608141312.pdf-原创力文档
  2. 16年寒假随笔(3)
  3. 蚂蚁金服与阿里云宣布启动“蚂云计划”
  4. onclick 调用php,AJAX调用PHP简单应用
  5. c++exe程序在别人电脑上双击无法打开_Windows10电脑磁盘占用率过高,用这二招轻松解决...
  6. easyui datagrid加载数据的三种方式
  7. jira confluence 作用 ppt_有没有一个PPT技巧让自己觉得人生都亮了?
  8. [转载] Python学习系列之下划线与变量命名规则
  9. 【图像处理】图像锐化
  10. Java中Number类详解
  11. CC2530采集重力加速度MMA7455的值
  12. PHP 计算当前时间是这一年的第几周
  13. MM-DD-RRRR / MM-DD-YYYY 的区别【Blog 搬家】
  14. 中文版Geneve02
  15. 攻防世界 黑客精神unidbg破解
  16. java下载m3u8视频,解密并合并ts(二)
  17. 如何通过IP地址来访问网站
  18. 湖南师范大学2018年大学生程序设计竞赛新生赛 J 名哥的完全平方数 莫队算法
  19. Python中语音播报的应用(简单版)
  20. 电影天堂APP项目开发之Python爬虫篇,共18课时/5时33分

热门文章

  1. 周末加班有加班费,真是太好了
  2. python网易云爬虫_使用python进行爬虫下载网易云音乐
  3. python 余弦定理_自己实现文本相似度算法(余弦定理)
  4. 机器学习项目-垃圾邮件分类-KNN-SVM-DT-RF-GBDT-Bayes
  5. java怎么运行安卓程序_在安卓手机上怎么运行java的应用程序
  6. CES 2019上芯片巨头们的争夺焦点:光线追踪、“永远”在线PC、汽车
  7. 小班关于计算机运用的教案,关于信息技术在幼儿园的运用教案设计
  8. Docker容器内部无法访问外网原因之一
  9. html并排div可重叠,html – 并排堆叠div
  10. 【MOOS系统安装步骤】