深度学习卷积神经网络从入门到精通

深度学习卷积神经网络从入门到精通—阅读笔记

计算机视觉就是用各种成像系统代替视觉器官作为输入敏感手段,由计算机来代替大脑完成处理和解释。计算机视觉的最终研究目标就是使计算机能象人那样通过视觉观察和理解世界,具有自主适应环境的能力。人们致力于建立一种视觉系统,这个系统能依据视觉敏感和反馈的某种程度的智能完成一定的任务。

在这里插入图片描述

第一章:概述

1、卷积核。
卷积层的权值也称为卷积核,卷积核一般是需要训练的,但有时也可以是固定的,比如直接使用Gabor滤波器。从结构的角度看,卷积神经网络起初只能处理黑白或灰度图像,变种模型通过把红、绿、蓝3个颜色通道作为一个整体输入,从而能够直接处理彩色图像。有时还可以直接处理多帧图像甚至连续图像。

2、卷积神经网络缺陷。
卷积神经网络已经使得人工智能迈进了空前盛装、影响深远的新时代,不过这并不等同于说,利用卷积神经网络可以完全实现人类的智能。虽然现在卷积神经网络在图像分类能力上能达到与人类匹敌的水平,但其视觉与人类的视觉相比仍然是非常不同的。

事实上,即使成功训练后,卷积神经网络也仍然可能错分对抗样本。对抗样本是一种含有人类不可感知的微小扰动的非随机图像。在一幅熊猫图像中加入微量噪声后,它可能变成一幅对抗熊猫图像的样本,人类仍然可以轻松识别它为熊猫,但卷积网络却一口咬定它是长臂猿。另外,有些人类根本不能识别的噪声图像,却可能成为神经网络的欺骗图像,让卷积神经网络以高于99%的置信度识别它为一个熟知的对象。因此,卷积神经网络在实际应用中仍然存在一些不易被察觉的潜在缺陷。

3、GPU,图形处理单元,Graphic Processing Unit。

它具有单指令多数据流结构,非常适合用一个程序处理各种大规模并行数据的计算问题。最常用的GPU是英伟达(Nvidia)生产的。编写GPU代码需要在CUDA环境下运行。

CUDA(Computer Unified Device Architecture),是一种用于GPU通用计算的并行计算平台和编程平台,它以C语言为基础,并对C语言进行了扩展,能够在显卡芯片上执行程序。CUDA提供了一个深度神经网络的GPU加速库cuDNN(CUDA Deep Neural Network),完成了对卷积、池化、归一化、激活函数等操作的快速实现。

4、数据集介绍:

(1)手写数字体数据集:60000张训练样本,10000张测试样本,每个样本图像的大小28*28。
http://yann.lecun.com/exdb/mnist/

(2)ImageNet是一个拥有超过1500万幅图像,约22000个类别的数据集,可用于大规模图像识别、定位、检测的研究。ImageNet2012,包含1281167张训练图像和50000幅测试图像,共有1000个类别。训练集中各类图像的数目可能不同,最少为732幅,最多为1300幅。测试集中各类图像都是50幅。
http://www.cnblogs.com/zjutzz/p/6083201.html

(3)Oxford-17是一个鲜花图像数据集,包含1360幅图像,17类,每类80幅图像,大小不相同。
https://www.robots.ox.ac.uk/~vgg/data/flowers/17/

(4)VOC2007,即Pascal Voc 2007,是一个关于物体和场景的图像数据集,可以用于目标检测和语义分割任务。Pascal VOC的全名:Pattern Analysis,Statistical Modelling and Computational Learning Visual Object Classes,指的是模式分析、统计建模、计算学习视觉物体分类。

JPEGImages存放的是所有图像,共包含20个类别。Annotations存放的是xml格式的标签文件。ImageSets存放的是具体的图像信息,下设3个子文件夹Layout、Main、Segmentation,分别存放人体部位数据(比如head、hand、feet),20类图像物体识别数据,以及可用于分割的数据。SegmentationClass和SegmentationObject用来存放分割后的图像,前者标注每个像素的类别,后者标注每个像素属于哪一个物体对象。
http://host.robots.ox.ac.uk/pascal/VOC/voc2007/index.html

(5)SIFT Flow数据集,包含2688幅图像,其中2488张训练图像,200张测试图像。
这些图像的像素共有33个语义类别标记(桥、山、太阳等)和3个几何类别标记(水平、竖直、天空),语义分割。
https://www.cs.unc.edu/~jtighe/Papers/ECCV10/siftflow/SiftFlowDataset.zip

(6)COCO 2014,是微软团队制作的一个图像数据集,可以用于物体识别、目标检测、语义分割、语义描述。训练集含有82783幅图像,验证集和测试集分别有40504幅图像。
https://cocodataset.org/#download

第二章:预备知识

在卷积神经网络中,可能涉及两种采样运算:上采样和下采样,上采样和下采样之间存在着某种对应关系。常用的下采样有两种:平均下采样(average downsampling)和最大下采样(max downsampling)。这两种下采样又分别称为平均池化和最大池化,相应的上采样称为平均上采样和最大上采样。

平均上采样就是每个位置安插相同的数值,最大上采样就是在每个位置填充补零。

第三章-第七章:图片分类模型

1、卷积神经网络起源:

1984年日本学者K.Fukushima提出的神经认知机,被认为是第一个实现的卷积神经网络。1998年,Y.Lecun等人将卷积层和下采样层相结合,建立了卷积神经网络的现代雏形——LeNet,曾被广泛应用于美国银行支票手写数字识别。

2、深度学习开端:

普遍认为深度学习的开端是2006年,但它受到学术界和工业届的广泛关注,却是在2012年Alexnet在大规模图像分类中获得成功应用开始的。Alexnet是深度学习发展史上的突破性成果,使得神经网络重新回到了人工智能的风口浪尖。

Alexnet通过使用GPU显卡和Relu,极大地提高了卷积神经网络的学习训练速度,并在2012年ILSVRC竞赛中取得了第一名的突出成绩。

3、VGG和GoogleNet模型:

VGGNet验证了增加网络的深度确实可以提高网络的性能,它在2014年ILSVRC挑战赛中赢得了定位任务冠军和分类任务亚军。GoogleNet则在加深网络结构的同时,还提出了称为“Inception”的新模块,并赢得了2014年ILSVRC挑战赛的分类任务冠军。

作为一种卷积网络的新模型,GoogleNet的关键在于使用了Inception模块。每个原始Inception模型由前摄入层、并行处理层、过滤拼接层组成。并行处理层包括4个分支:11卷积分支、33卷积分支、55卷积分支、33最大池化分支。

关于原始Inception模块最大的问题是,55卷积分支即使采用中等规模的卷积核个数,在计算代价上也可能是无法承受的。而且,这个问题在混合池化之后会更加突出,将导致输出单元不可避免地增加,并很快出现计算量的暴涨。为了克服原始Inception模块的上述困难,一种可行的策略是,利用11卷积进行降维,由此得到降维Inception模块,亦称Inception V1模块。

GoogleNet V2同时引入了著名的Batch Normalization。BN是一个非常有效的正则化方法,可减少甚至取消dropout、LRN的使用,同时加快训练速度,提高分类正确率。

4、快道网络 Highway Net:

标准卷积神经网络一般由卷积层、池化层、全连接层组成,其中每层只能与相邻层相连,也就是说,只能从相邻的前一层接受输入,并把输出传递给相邻的后一层。这种相邻层连接的网络结构,不仅限制了卷积神经网络的多样性和灵活性,而且在结构加深时越来越难以训练。一种有效的方法是引入跨层连接,建立卷积神经网络的跨连模型。跨连模型允许每层可以与非相邻层相连,既能从前面任意层接收输入,又能把其输出传递给后面的任意非相邻层。

在快道网络中,信息可以无障碍地跨越多层直接传输到后面的层。基本思想是,在网络中定义两个非线性变换,构造快道层,T表示变换门transform gate,C表示传递门carry gate。根据变换门的输出,快道层可以直接通过其输入x,直接输出H;或者在x和H之间产生平缓变化的输出。

5、残差网络 Res Net:

随着层数的增加,深度网络一般会越来越难训练。有些网络在开始收敛时,还可能出现退化问题,导致准确率很快达到饱和,出现层数越深错误率反而越高的现象。更令人意外的是,这种退化导致的更高错误率,并不是由于过拟合引起的,而仅仅是因为增加了更多的网络层数。深度残差学习(deep residual learning)框架的提出,主要动机就是为了解决退化问题,以便能够成功训练成百上千层的残差网络residual net。

残差网络引入了跨层连接,或者称为捷径连接,shortcut connection,构造了残差模块。在一个残差模块中,跨层连接一般只跨2-3层,但不排斥跨更多的层。仅仅跨越一层的模型意义不大,实验效果也不理想。

从数学角度来看,跨连模块计算的是不跨连时的残差,所以又称为残差模块。残差模块的计算要求二者具有相同的维度,如果它们的维度不同,就需要引入一个额外的权值矩阵W,对x进行线性投影,使得它们的维数相同。

基于残差模块,深度残差网络可以具有非常深的结构,深度甚至可以达到1000层以上。

6、密连网络: Dense Net:

残差网络的研究表明,如果在层间加入跨层连接,那么即便是成百上千层的网络,也能够得到准确、有效的训练。不过,残差网络一般只采用跨越2-3层的跨层连接形成残差模块。

密连卷积网络,Densely Connected Convolutional Network,DenseNet,简称密连网络,通过引入密连模块代替残差模块,进一步扩展了残差网络的结构。它与残差模块的区别在于,密连模块内部允许任意两个非相邻层之间进行跨层连接。因此在极端情况下,一个L层的密连网络,总共能具有 L*(L+1)/2 的层间连接,其中每层都输入之前所有层的特征图,同时把它自己的特征图都输出到之后的所有层。而一个L层的传统网络只有L个层间连接,其中每层只能连向它之后的一个相邻层。

密连网络有一些引人入胜的优点,比如缓解梯度消失、加强特征传播、促进特征重用、减少参数数量等。广义的说,密连网络是指包含一个或多个密连模块的卷积神经网络。

第八章:目标检测模型

卷积神经网络在ImageNet大规模视觉识别挑战赛(ILSVRC)中显著提高了图像分类的准确率,所取得的巨大成功引起了广泛关注,同时也引起了各种争议。争议的中心问题是:卷积神经网络对ImageNet的分类结果,能够在多大程度上推广应用于PASCAL VOC挑战赛的目标检测。

第九章:语义分割模型

随着卷积神经网络在目标检测任务上的推进,它也开始被应用于更精细的图像处理任务:语义分割和实例分割。目标检测只需要预测图像中每个对象的位置和类别,语义分割还要把每个像素都进行分类,而实例分割则进一步把每个对象的不同实例都区分开。

第十章:特殊卷积神经网络模型

孪生网络具有两个结构和权值完全相同的网络模块,挤压网络具有更简单的结构和更少的权值,生成对抗网络具有两个功能相互对抗的网络模块,网中网采用微网络卷积核代替线性卷积核。

1、孪生网络 SiameseNet:

传统的分类模型需要确切知道每个样本的标签属于哪一类,而标签的数量通常相对较少。在类别数量特别多、标签相对少的情况下,有些类别可能根本没有标签,比如人们对第一次见到的生物物种往往是叫不出名字的。这时进行分类就可以考虑采用孪生网络(SiameseNet)。

孪生网络不仅能够从给定数据中学习一个相似性度量,而且还能够利用所学到的度量去比较和匹配新样本以确定类别。孪生网络的基本思想是,构造一个函数将输入映射到目标空间,在目标空间通过简单的距离计算相似度。

孪生网络在本质上是一种判断两个输入模式是否相似的通用框架。孪生网络有两个输入X1和X2(比如两幅图像),它们分别经过两个结构相同、权值绑定的双胞胎子网络,得到低维表示G(X1)和G(X2),最后输出它们之间的相容性,用L表示:
L = || G(X1) - G(X2) ||

如果两个输入不太相似,属于不同的类别,双胞胎子网络则应该输出两个差别较大的结果。孪生网络已经在人脸识别和验证中获得了非常成功的应用。

2、挤压网络 SqueezeNet:

卷积神经网络一般规模较大、参数较多,比如AlexNet总共有8层,有65万个神经元和6000万个参数。其它网络VGG、ResNet、DenseNet等还会更为复杂。简化模型结构、压缩模型的参数,就成为改进卷积神经网络的必要问题。

为了利用较少的网络参数获得相近的性能,landola等人提出了一种压缩结构,模型称为挤压网络SqueezeNet。该模型对卷积神经网络进行结构压缩,遵循下面3个基本设计策略:
(1)使用11卷积核代替33卷积核。
(2)减少3*3卷积核的输入通道数量。
(3)推后下采样,增大卷积层的激活图。

3、深度卷积生成对抗网络 DCGAN:

一个生成对抗网络包含两个均由多层神经网络构成的模型:生成模型(generative model)和判别模型(discriminative model)。生成模型,或称生成器,用G表示,能够产生仿真数据分布。判别模型,或称判别器,用D表示,用来判别数据是仿真的还是真实的。生成对抗网络的训练过程是:使G产生的仿真数据尽可能逼近真实数据,同时又使D尽量好地区分仿真数据和真实数据,目标是使G产生的数据足够以假乱真,使得D判别真假的概率均为0.5。

DCGAN的基本思想是,利用卷积神经网络替换普通多层神经网络,主要目的是生成尽量逼近真实图像的仿真图像。DCGAN具有以下特点:
(1)判别器用卷积层代替池化层,生成器用反卷积产生仿真图像。
(2)除生成器的输出层和判别器的输入层之外,网络其它层都使用块归一化。
(3)生成器和判别器均无全连接层。
(4)生成器的输出层使用Tanh激活函数,其它层使用RELU激活函数。
(5)判别器使用Leaky-Relu激活函数。

4、网中网 NIN :

网中网(Network in Network,NIN)是一种非常特殊的卷积网络模型,其基本思想是使用一个微网络(micro network)卷积核来代替线性卷积核。微网络卷积核实际上是一个小型的多层感知机。与线性卷积核相比,微网络卷积核在理论上能够近似任何局部的非线性函数变换,不仅具有更高的抽象能力水平,而且可以通过反向传播算法进行训练。。

线性卷积核结构相对简单,所有局部感受野通过一个线性卷积运算转变成特征图上的一个点。多层感知器卷积层的结构复杂,所有局部感受野都通过一个微网络卷积核转变为特征图上的一个点。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值