深度学习和卷积神经网络
卷积神经网络介绍
• 卷积神经网络(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于图像处理有出色表现。它包括卷积层(convolution layer),池化层(pooling layer)和全连接层(fully connected layer)。
• 20世纪60年代,Hubel和Wiesel在研究猫脑皮层中用于局部敏感和方向选择的神经元时发现其独特的网络结构可以有效地降低前馈神经网络的复杂性,继而提出了卷积神经网络。现在,CNN已经成为众多科学领域的研究热点之一,特别是在模式分类领域,由于该网络避免了对图像的复杂前期预处理而可以直接输入原始图像,因而得到了更为广泛的应用。
卷积
• 信号与线性系统:
• 矩阵论:
• 深度学习:
单卷积核计算
• 卷积计算描述
• 卷积计算结果演示
深度学习卷积的重要概念
• 卷积核(convolution kernel):根据一定规则进行图片扫描并进行卷积计算的对象称为卷积核。卷积核可以提取局部特征。
• 卷积核尺寸(kernel size):卷积核是一个3维的矩阵,可以用一个立方体表示,宽w,高h,深度d。深度d由输入的通道数决定,一般描述卷积核尺寸时,可以只描述宽w和高h。
• 特征图(feature map):经过卷积核卷积过后得到的结果矩阵就是特征图。每一个卷积核会得到一层特征图,有多个卷积核则会得到多层的特征图。
• 特征图尺寸(feature map size):特征图也是一个3维的矩阵,可以用一个立方体图示,宽w,高h,深度d。深度d由当前层的卷积核个数决定,一般描述特征图尺寸时,可以只描述宽w和高h
• 步长(stride):卷积核在输入图像上滑动的跨度。如果卷积核一次移动一个像素,我们称其步长为1。
• 零填充(zero padding):为了提取图像的边缘信息,并且保证输出特征图的尺寸满足要求,可以对输入图像边缘填充一个全为0的边框,边框的像素宽度就是padding。
多卷积核计算
图像不变性
• 图像不管在画面左侧还是右侧,都会被识别为同一物体,这一特点就是不变性,或者是图像不管经过哪种角度的旋转,都会被识别为同一物体,不变性对图像识别的效果影响很大。
• 通过细节和轮廓判断物体的种类,不受到方向,角度和光照影响,CNN使用局部感知来实现。
• 左图,白色方块表示值为0的像素,橙色方块圆点表示值为1的像素。不管这个横折在图片中的什么位置,都会被认为是相同的横折。
• 若训练前馈神经网络来完成该任务,如右图所示,那么表达图像的三维张量将会被摊平成一个向量,作为网络的输入,即(width, height, depth)为(5, 5, 1)的图片会被展成维度为25的向量作为网络的输入层。当横折处于不同位置时,展开的向量数据完全不同,给网络的训练和识别造成了困难。
• 处于图像的不同位置的物体都会判断为同一类,CNN使用权值共享来实现。
卷积神经网络核心思想
• 局部感知,一般认为人对外界的认知是从局部到全局的,而图像的空间联系也是局部的像素联系较为紧密,而距离较远的像素相关性则较弱。因而,每个神经元其实没有必要对全局图像进行感知,只需要对局部进行感知,然后在更高层将局部信息综合起来就得到了全局信息。网络部分连通的思想,也是受启发于生物学里面的视觉系统结构。视觉皮层的神经元就是局部接受信息的(即这些神经元只响应某些特定区域的刺激)。
• 参数共享,对输入的照片,用一个或者多个filter扫描照片,filter自带的参数就是权重,用同一个filter扫描整张图像且这个filter参数保持不变,就是参数共享。比如有3个filter,每个filter都会扫描整个图像,在扫描的过程中,filter的参数值是固定不变的,即整个图像的所有元素都“共享”了相同的权值.
• 局部感知即图像有局部相关性。
局部感知
• 局部感知:提取局部细节。
参数共享
• 参数共享:位置不变性
卷积神经网络结构
• 输入层:用于数据的输入。
• 卷积层(convolution layer):卷积神经网路中每层卷积层由若干卷积单元组成,每个卷积单元的参数都是通过反向传播算法优化得到的。卷积运算的目的是提取输入的不同特征,第一层卷积层可能只能提取一些低级的特征如边缘、线条和角等层级,更多层的网络能从低级特征中迭代提取更复杂的特征。
• **函数(activation function),又被称作**层(activation layer)。使用**函数将卷积层的输出非线性化。最常用的**函数是ReLU函数(Rectified Linear Units)。函数表达式为f(x)=max(0,x)。**函数不被计算层数。
• 池化层(pooling layer):通常在卷积层之后会得到维度很大的特征,将特征切成几个区域,取其最大值或平均值,得到新的、维度较小的特征。
• 全连接层(fully connected layer):把所有局部特征结合变成全局特征,用来计算最后每一类的得分。
• 输出层:用于输出最终结果。
卷积神经网络结构图
卷积层的功能
• 卷积层通过不同的特征核提取图像的局部特征信息。
不同深度的卷积层提取的特征
卷积效果
1层
2层
3层
4层
5层
池化层的功能
• 池化的目的是减少图像特征图(feature map)的空间尺寸。
• 有时图像太大,我们需要减少训练参数的数量,它被要求在随后的卷积层之间周期性地引进池化层。
• 池化层一般分为最大池化(max pooling)和平均池化(mean pooling)。
• 池化层的最常见形式是最大池化。
最大池化
• 在这里,我们把步幅定为 2,池化尺寸也为 2。最大池化也应用在调整卷积的输出尺寸中。正如你所看到的,最大池化操作后,44 卷积的输出变成了 22。
全连接的功能
• 全连接层可以用来将最后得到的特征映射到线性可分的空间,通常,卷积神经网络会将末端得到的特征图平摊成一个长的列向量,经过全连接层的计算得到最终的输出层。
• 全连接层在整个卷积神经网络中起到“分类器”的作用。
• 连接所有特征,将所有特征传递给具体的分类器进行分类或者回归处理,一般都使用的softmax**函数将最终的输出量化。
卷积层和全连接层的连接处理
• 将最后一个卷积层的特征图展开在加入全连接层计算。
卷积神经网络全景
ILSVRC
• 深度学习和卷积神经网络的发展离不开ILSVRC。
• ILSVRC(ImageNet Large Scale Visual Recognition Challenge)是斯坦福都会举办一个科技比赛。
• 每年度的ILSVRC比赛数据集大概拥有120万张图片,以及1000类的标注,是ImageNet全部数据的一个子集。比赛一般采用top-5和top-1分类错误率作为模型性能的评测指标。
• ILSVRC:ImageNet视觉识别挑战
• 机器视觉在ILSVRC的比赛成绩屡创佳绩,其错误率已经低于人类视觉,若再继续举办类似比赛已无意义,是故大家对电脑视觉技术的期待由相当成熟的 image identification 转向尚待开发的 image understanding 。
• ILSVRC 2017 已是最后一届举办。
ImageNet
• ImageNet项目于2007年由斯坦福大学华人教授李飞飞创办,目标是收集大量带有标注信息的图片数据供计算机视觉模型训练。
• ImageNet拥有1500万张标注过的高清图片,总共拥有22000类,其中约有100万张标注了图片中主要物体的定位边框。
ILSVRC历年成绩
• 从2010年以来,每年的ILSVRC都主要包括以下3个比赛项目:图像分类,单物体定位,物体检测。
AlexNet
• AlexNet,2012
• ReLU,重叠的Pooling,数据增强,Dropout
VGGNet
• VGGNet(Visual Geometry Group),2014
• VGGNet研究深度对卷积网络的影响。使用简单的3x3卷积核,不断重复卷积层,池化,最后经过全连接、softmax,得到输出类别概率。
VGG的六种配置
GoogLeNet
Inception结构
• Inception结构将卷积和池化堆叠在一起,一方面增加了网络的宽度,另一方面增加了网络对尺度的适应性。
• 为了避免这一现象提出的inception具有如下结构,在3x3前,5x5前,max pooling后分别加上了1x1的卷积核起到了降低特征图厚度的作用。
ResNet
残差结构
• ResNet提出的残差结构
SENet