卷积神经网络初接触

初探深度学习:卷积神经网络

教材

参考教材:
《深度学习—卷积神经网络从入门到精通》——机械工业出版社:李玉鑑(鉴)等著

卷积神经网络概述

深度学习起源与发展

深度学习:源于人工神经网络,本质上是指一类对具有审查结构的神经网络进行有效训练的方法。
神经网络:是一种由许多非线性计算单元(也就是神经元、节点)组成的分层系统,通常网络的深度就是其中不包括输入层的层数。
最早的神经网络在1943年就被心理学家McCulloch和数学逻辑学家Pitts(神经网络的祖师爷们)建立,名为MP模型,实际上只是单个神经元的形式化数学描述。(看起来就是两个祖师爷名字首字母的缩写)。兴盛至1958年,随后的几十年间进入到低潮,直到20世纪八九十年代,新的模型引发了神经网络的重生,并引发了研究的世界性热潮。
训练神经网络这方面反向传播是最常用、最著名的算法,直到20世纪80年代末期,反向传播似乎还只是对浅层网络有效,尽管原理上也应对深层网络有效。
浅层网络 具有1个隐含层的神经网络。
深层网络 具有2个及以上隐含层的神经网络。
1991年,Hochreteir正式指出,典型的深层网络存在梯度消失或爆炸问题,从而明确确立了深度学习的一个里程碑。该问题时说,累计反向传播误差信号在神经网络的层数增加时会出现指数衰减或增长的现象,从而导致数值计算快速收缩或越界。这就是深层网络很难用反向传播算法训练的主要原因。在循环神经网络中也会出现。
普遍认为,深度学习正式发端于2006年,以Hinton及其合作者发表的两篇重要论文为标志:一篇发表在《Neural Computation》上,题目为:“A fast learning algorithm for deep belief nets”;【Hinton G E , Osindero S , Teh Y W . A Fast Learning Algorithm for Deep Belief Nets[J]. Neural Computation, 2014, 18(7):1527-1554.】另一篇发表在《Science》上,题目为:“Reducing the Dimensionality of data with neural networks”。【Hinton G E , Salakhutdinov R R . Reducing the Dimensionality of. 2006.】从那以后,大量深度学习模型开始受到广泛关注,其中就包括:
RBM——受限波尔兹曼机
deepAE——深层自编码器
deep belief net——深层信念网络
DBM——深层波尔兹曼机
SPN——和积网络
DSN——深层堆叠网络
CNN——卷积神经网络(Convolutional Neural Networks)
RNN——循环神经网络
LSTM network——长短期记忆网络
RLN——强化学习网络
GAN——生成对抗网络
等等

训练技巧 最大池化(max pooling)、丢失输出(dropout)和丢失连接(dropconnect)

这些深度学习模型取得了历史性突破和成就:手写数字识别、ImageNet分类和语音识别等。

卷积神经网络的形成和演变

注意区分卷积神经网络和深度学习的关系
卷积神经网络最初是受到视觉系统的神经机制启发、针对二维形状的识别设计的一种生物物理模型,在平移情况下具有高度不变形,在缩放和倾斜情况下也具有一定的不变性。这种生物物理模型集成了“感受野”的思想,可以看作*一种特殊的多层感知器或前馈神经网络,具有局部连接、权值共享的特点,其中大量神经元按照一定方式组织起来对视野中的交叠区域产生反应。1962年,Hubel和Wiesel通过对猫的视觉皮层细胞的研究,提出了感受野的概念【Hubel D H , Wiesel T N . Receptive fields, binocular interaction and functional architecture in the cat’s visual cortex.[J]. Journal of Physiology, 1962, 160(1):106-154.】【Hubel D H , Wiesel T N . Receptive fields of single neurones in the cat’s striate cortex[J]. The Journal of Physiology, 1959, 148.】1979年,日本学者Fukushima在感受野的基础上,提出了神经认知机模型,该模型被认为是第一个卷积神经网络。
【Neural network model for mechanism of pattern recognition unaffected by shift in position–Neocognitron】
【A self-organizing neural network for a mechanism of pattern recognition unaffected by shift in position】
【Artificial vision by multi-layered neural networks:neocognitron and its advances】
1989年,LeCun等人首次使用了权值共享技术,卷积层和下采样层相结合,设计卷积神经网络的主要结构,形成了LeNet(卷积神经网络的雏形)
【Gradient-base learning applied to document recognition 】
Krizhevsky等人采用修正线性单元(ReLU)作为激活函数提出了AlexNet
【ImageNet classification with deep convolutional neural networks】
在理论上,卷积神经网络是一种特殊的多层感知器或前馈神经网络。标准卷积神经网络一般由输入层交替的卷积层和池化层全连接层输出层构成。
卷积层也称为检测层;
池化层也称为下采样层;
卷积层的权值也称为卷积核(一般需要训练,但有时也可以是固定的如Gabor滤波器);

结构角度看,卷积神经网络起初只能处理黑白或者灰度图像,变种模型通过把红、绿、蓝3个颜色通道作为一个整体输入已能直接处理彩色图像。同时,变种模型可以使用多个向里的卷积层或多个相邻的池化层,也可以使用重叠池化最大池化

激活函数角度看,可以使用:
1)修正线性单元
2)渗漏修正线性单元(Leaky ReLU,LReLU)
3)参数修正线性单元(Parametric ReLU)
4)指数线性单元(Exponential Linear Unit,ELU)
取代sigmoid单元作为激活函数。
也可以在输出层采用软最大函数softmax 替代 sigmoid 函数以产生伪概率。
卷积神经网络可以设计成孪生结构(Siamese architecture)把原始数据映射到目标空间,产生对几何扭曲的鲁棒性。

卷积核角度,可以通过采用非常小的卷积核(如:11、33大小)被加深成一个更深的网络:VGGNet;如果用参数修正线性单元替代修成线性单元,那么VGGNet就变成了MSRANet。卷积神经网络通过使用微型多层感知器代替卷积核还可以被扩展成更为复杂的网络“网中网”(NIN)

区域角度看:
1)区域卷积神经网络:R-CNN
用来抽取区域卷积特征,并通过区域提议进行更加鲁邦的定位和分类。
【Rich feature hierarchies for accurate object detection and semantic segmentation】
2)空间金字塔池化网络:SPPNet
克服输入大小固定的缺点(在最后一个卷积层和第一个全连接层之间插入一个空间金字塔池化层)
缺点:训练过程麻烦
优点:与R-CNN相比能够直接输入可变大小图像
【He K , Zhang X , Ren S , et al. Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition[J]. Pattern Analysis & Machine Intelligence IEEE Transactions on, 2015, 37(9):1904-1916.】
3)快速区域卷积神经网络:Fast R-CNN
在R-CNN中插入一个特殊的单级空间金字塔池化层(称为感兴趣区池化层 ROI pooling layer),并将其提取的特征向量输入到一个最终分化成两个兄弟输出层的全连接层,再构造一个但阶段多任务损失函数对所有网络层进行整体训练。
优点:可以通过一个单阶段多任务损失函数进行联合训练。
【R Girshick. Fast R-CNN】
4)更快速区域卷积神经网络:Faster R-CNN
为了减少区域提议的选择代交,插入一个区域提议网络与Fast R-CNN共享所有卷积层。
【Ren S , He K , Girshick R , et al. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2017, 39(6):1137-1149.】
5)YOLO
获得实时性能极快的对象检测速度,可以把输入图像划分成许多网格,并通过单个网络构造的整体检测管道,直接从政府图像预测对象的边框和类概率建立此模型,只需看一遍图像就能知道对象的位置和类别。
【 Redmon J , Divvala S , Girshick R , et al. You Only Look Once: Unified, Real-Time Object Detection[J]. Computer Vision & Pattern Recognition, 2016.】
6)单词检测器:SSD
在多尺度特征图的每个位置上,使用不同长宽比的缺省框建立单次检测器(SSD)来取代YOLO
【 Liu W , Anguelov D , Erhan D , et al. SSD: Single Shot MultiBox Detector[J]. European Conference on Computer Vision, 2016.】
7)掩膜区域卷积神经网络:Mask R-CNN
在Faster R-CNN基础上扩展而来,在图像中有效检测对象的同时,还能够对每个对象实例生成一个高质量的分割掩膜。
【K He,X Zhang,et al.Mask r-cnn[C].proc.ICCV,2017:2980-2988】

优化角度看:
许多技术可以用来训练CNN:
1)丢失输出:减小过拟合的正则化技术
【Hinton G E , Srivastava N , Krizhevsky A , et al. Improving neural networks by preventing co-adaptation of feature detectors[J]. Computer Science, 2012, 3(4):págs. 212-223.】
【Related S , Ofdevil R , Related S , et al. Dropout: A Simple Way to Prevent Neural Networks from Overfitting [91]. 】
2)丢失连接:丢失输出的推广
【Wan L, Dzeiler M, Zhang S. Regularization of Neural Networks using DropConnect[J]. International Conference on Machine Learning, 2013.】
参考大佬博客
3)块归一化(batch normalization)(批量归一化):按迷你块大小对某些层的输入进行归一化处理的方法。
【Batch Normalization:Accelerating Deep Network Training by Reducing Internal Covariate Shift】
参考大佬博客
4)残差网络(Residual Network)
采用跨越2-3层的连接策略是一种重要的优化技术,可以用来克服极深网络的训练困难
【Deep Residual Learning for Image Recognition】
参考大佬博客
5)火焰模块(fire module):建立卷积神经网络的挤压模型Squeeze Net
【Iandola F N , Han S , Moskewicz M W , et al. SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size[J]. 2016.】
也可以结合深度压缩(deep compression):技术进一步减少网络的参数:
【Han S , Mao H , Dally W J . Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman Coding[C]// 繊維学会. 繊維学会, 2015:3–7.】

演变角度看:
现代卷积网络以LeNet为雏形,在经过AlexNet的历史突破后,演化生成了很多不同的网络模型:
加深模型:VGGNet-16 —> VGGNet-19、GoogleNet
跨连模型:HighwayNet—>ResNet—>DenseNet
应变模型:SPPNet—>Fast R-CNN(区域模型)
区域模型:R-CNN—>Fast R-CNN—>Faster R-CNN—>YOLO—>SSD
分割模型:FCN—>PSPNET、MASK R-CNN
特殊模型:siameseNet、SqueezeNet、DCGAN、NIN
强化模型:DQN、AlphaGo

卷积神经网络的缺陷和视图

即使成功训练之后,卷积神经网络也仍然可能错分对抗样本。对抗样本是一种含有人类不可感知的微小扰动的非随机图像。
如一幅熊猫图像中加入微量噪声后,他可能被识别成为一幅长臂猿。
在这里插入图片描述
如图两个熊猫人眼可以清晰识别,但是右边的熊猫是增加了微量噪声的,通过卷积神经网络识别后被识别为一个长臂猿,如下图:
在这里插入图片描述
为了更好地理解卷积神经网络的成功与失败,一种办法是采用可视化技术来分析其数据表达并解释其工作机理。
【 Mahendran A , Vedaldi A . Visualizing Deep Convolutional Neural Networks Using Natural Pre-Images[J]. International Journal of Computer Vision, 2015, 120(3).】
【Yosinski J , Clune J , Nguyen A , et al. Understanding Neural Networks Through Deep Visualization[J]. Computer Science, 2015.】
例如以某种可见视图方式来显示激活和特征。通过可视化技术,能够按照逐级上升的顺序展现卷积神经网络各层的直觉期望性质,包括组合性、不变性和类别性。常见可视化技术,比如逆变换(inversion)、激活最大化(activation maximization)和卡通化(caricaturization),是以自然原像概念为基础的。自然原像就是那些看起来具有显著自然特征的图像。通常,一幅图像经过卷积神经网络提取特征后,随着层次的深入,可视化结果会变得越来越模糊和抽象。如图为下论文中展示的各层级可视化结果。
【Yosinski J , Clune J , Nguyen A , et al. Understanding Neural Networks Through Deep Visualization[J]. Computer Science, 2015.】
在这里插入图片描述

卷积神经网络的GPU实现和cuDNN库

只采用cpu在大规模训练CNN很慢,因此要用GPU,最常用的是英伟达生产的GPU。编写GPU代码可在CUDA环境下进行。CUDA(compute Unified Device Architecture)是一种用于GPU通用计算的并行计算平台和编程模型。以C语言为基础,并对C语言进行了扩展,能够在显卡芯片上执行程序。
CUDA提供了深度神经网络的GPU加速库,cuDNN完成了对卷积、池化、归一化和激活函数层等标准操作的快速实现。

卷积神经网络的平台和工具

常用的有:
Theano、TensorFlow、Caffe、Caffe2、CNTK、MXNet、Torch、DeepLearning4J和Keras

常用数据集

1)MNIST:手写数字数据集
2)GTSRB:德国交通标志数据集
3)RRSZ:交通路网遥感图像数据集
4)ImageNet:2012年大规模图像视觉识别比赛数据集
5)CIFAR-10:常见物体图像数据集
6)Oxford-17:鲜花图像数据集
7)AR:人脸图像数据集
8)VOC2007:关于物体和场景的图像数据集
9)SIFT Flow:不同场景的图像数据集
10)ADE20K:不同场景的图像数据集
11)COCO2014:微软团队制作的一个图像数据集
12)CelebA:名人人脸图像数据集
13)Gamerecords:围棋棋局文件

预备知识

卷积神经网络涉及的预备知识包括:激活函数、矩阵运算、导数公式、梯度下降算法、反向传播算法(分为通用反向传播算法和逐层反向传播算法)、通用逼近定理、内外卷积运算、膨胀卷积运算、上下采样运算、卷积面计算、池化面计算、局部响应归一化、权值偏置初始化、丢失输出、丢失连接、随机梯度下降算法、块归一化、动态规划算法等。

小结

希望本文能给初学卷积神经网络的同学一个比较清晰脉络,更快的找到相关的经典文献。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

御剑飞行2010

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值