卷积神经网络调研cnndoer@gmail.com2015-1.19报告内容•卷积神经网络(CNN)概述•卷基层,降采样层,激活函数,优化算法•CNN局部结构改进•CNN网络结构改进•CNN并行加速•数据库及相关应用报告内容•卷积神经网络(CNN)概述•CNN局部结构改进•CNN网络结构改进•CNN并行加速•数据库及相关应用1.1卷积神经网络•卷积神经网络(ConvolutionalNeuralNetworks,CNN)•卷积神经网络是前馈神经网络(BP)的扩展•1962年Hubel提出的感受野(ReceptiveField)概念;•1980年日本学者Fukushima提出神经认知机(Neocognition),是卷积神经网络的第一个实现网络,并将其应用于手写体字符识别;•1988年YannLeCun等提出反向传播算法,极大地推动了卷积神经网络的发展。•1998年YannLeCun等提出LeNet-5网络结构,并应用于文档识别,该结构为CNN最经典的网络结构。•2012年,Hinton改进了卷进神经网络的训练方式(ReLU+Dropout),并将其应用于ImageNet,取得了最好的分类效果。•目前,在计算机视觉领域,卷积神经网络是应用最广的深度学习模型。1.2深度神经网络1.3CNN经典模型卷积神经网络最核心的地方在于卷积和Pooling操作,卷积思想来源于人眼视觉的感受野概念,即以兴趣点为中心的一小块区域,卷积更符合图像的二维空间的本质,可以学习更有效的特征;Pooling可以简单理解为降采样操作,学习图像的空域特征。CNN中通过卷积核共享可以减少参数的个数,降低模型的复杂度;Pooling可以使学到的特征具有一些不变形,如平移、旋转、旋转不变性等。From:(1998)Gradient-BasedLearningAppliedtoDocumentRecognition.1.4CNN的训练过程•训练算法与传统的BP算法差不多。主要包括两个阶段:•第一阶段,向前传播阶段:•从样本集中取一个样本(X,Y),将X输入网络;•计算相应的实际输出O。•在此阶段,信息从输入层经过逐级的变换,传送到输出层。这个过程也是网络在完成训练后正常运行时执行的过程。在此过程中,网络执行的是计算(实际上就是输入与每层的权值矩阵相点乘,得到最后的输出结果):•O=Fn(…(F2(F1(XW(1))W(2))…)W(n))•第二阶段,向后传播阶段•计算实际输出O与相应的理想输出Y的差;•按极小化误差的方法反向传播调整权矩阵。1.5CNN反向传播算法•CNN代价函数•一般选择最小化平方误差(MSE)或者最小化相对熵(RelativeEntropy)。•反向传播一般使用随机梯度下降法。•CNN的反向传播主要考虑三个方面:•输出层,代价函数的确定及求导,类似BP网络;•Pooling,数据的下采样及残差的上采样;•卷基层,数据的卷积运算及残差的反卷积运算。•如果卷积层的下一层为pooling层时,需要做残差的上采样。Pooling如果采用maxpooling的话需要在前向传播时记录最大值的位置。•如果Pooling的下一层为卷积层时,需要做残差的反卷积。From:(2014)NotesonConvolutionalNeuralNetworks.报告内容•卷积神经网络(CNN)概述•CNN局部结构改进•CNN网络结构改进•CNN并行加速•数据库及相关应用2.1CNN卷基层•卷积的概念:•卷积表示函数f与经过旋转和平移的g的重叠部分的面积。•对应计算机视觉中,可以将f看成二维图像矩阵,g为另一个二维矩阵,称卷积核,f与g卷积可以简单理解为g对f的滤波。•CNN中,设计卷积核时一般考虑三个方面:•卷积核的大小;•卷积核的数目;•卷积时的滑动步长。(pooling时类似)•卷积核越大,数目越多,网络可表示的特征空间越大,学习能力越强,但是计算更复杂,易出现过拟合现象,所以在设计卷积核时,应根据应用的需求适当选择。2.1.1卷积层的改进左边为线性卷基层;右边为非线性卷基层。线性卷积层擅长处理线性分离的感受野,处理复杂问题是借助于大量的卷积核;非线性卷积层能够处理更复杂的非线性问题。Mlpconvlayer可以有两个解释:一个是1x1convolutionkernel;另一个是cross-channelparametericpooling。From:(2013)NetworkinNetwork.2.1.2NIN网络结构•MLPconvolutionallayer+globalaveragingpoolinglayer+Softmax传统的CNN包括三个部分:线性卷基层、Pooling层和全连接层,即Convolution+Pooling+BP,线性卷积的特征提取能力有限,且BP容易过拟合;NIN网络也包括三个部分:MLP卷积层、全局平均Pooling层和分类器层,去掉了全连接层,MLP卷基层具有更强的非线性特征提取能力,全局平均Pooling层可以增强网络的泛化能力。From:(2013)NetworkinNetwork2.2CNN采样层•Meanpooling(均值采样)•Maxpooling(最大值采样)•Overlapping(重叠采样)•L2pooling(均方采样)•LocalContrastNormalization(归一化采样)•Stochasticpooling(随即采样)•Def-pooling(形变约束采样)2.2.1Stochasticpooling•stochasticpooling方法非常简单,只需对featuremap中的元素按照其概率值大小随机选择,即元素值大的被选中的概率也大。而不像max-pooling那样,永远只取那个最大值元素。•步骤:•求Pooling区域的统计和;•Pooling区域每个元素除去该统计和,得到每个元素的概率值;•按照该概率值随机采样。•(实际运算过程可以理解为加权平均,元素值大的权重大。)•Stochasticpooling是广义的maxpooling,具有更强的学习能力。From:(2013_ICML)StochasticPoolingforRegularizationofDeepConvolutionalNeuralNetworks.2.2.2Def-poolingFrom:(2014)DeepID-Net--DeformableDeepConvolutionalNeuralNetworksforObjectDetection.引入类似partfilter的结构,并且在pooling的时候引入了deformation的思想。左式中,𝑘𝑥∙𝑥,𝑘𝑦∙𝑦为采样块的中心,𝑘𝑥,𝑘𝑦为步长,𝑏(𝑥,𝑦)为pooling结果,𝑐𝑛和𝑑𝑛𝑖,𝑗为需要学得的形变约束参数。2.3激活函数•Thresholdfunction•Sigmoid•Tanh•Softrect•RectifiedLinearUnits(ReLU)•Maxout•Dropout•DropConnect2.3.1Maxout这里的W是3维的,尺寸为d*m*k,其中d表示输入层节点的个数,m表示隐含层节点的个数,k表示每个隐含层节点对应了k个“隐隐含层”节点,这k个“隐隐含层”节点都是线性输出的,而Maxout的每个节点就是取这k个“隐隐含层”节点输出值中最大的那个值。任意的凸函数都可以由分段线性函数以任意精度拟合,而Maxout又是取k个隐隐含层节点的最大值,这些“隐隐含层节点也是线性的,所以在不同的取值范围下,最大值也可以看做是分段线性的(分段的个数与k值有关)。因此Maxout可以拟合任意的凸函数。From:(2013_ICML)MaxoutNetwork.2.3.2DropConnectFrom:(2013_ICML)Dropconnect.DropConnect是Dropout的扩展,Dropout是将隐含层节点以一定概率清0,而DropConnect是将节点中的每个与其相连的输入权值以1-p的概率清0。DropConnect具有更好的模型平均能力,但是前向传播和反向传播时都需做复杂的设计,训练速度慢。2.4代价函数•均方误差(MeanSquaredError,MSE)•Softmax回归2.4.1DeepID2•DeepID2是目前在LFW数据库上人脸匹配率最高的一个算法,它使用CNN提取人脸特征DeepID,目标函数不是传统单一的目标函数,而是包含两个部分。•1、IdentificationLoss:•即Softmax,用于学习人脸ID;•𝐼𝑑𝑒𝑛𝑡𝑓,𝑡,𝜃𝑖𝑑=−𝑖=1𝑛−𝑝𝑖𝑙𝑜𝑔𝑝𝑖=−𝑙𝑜𝑔𝑝𝑡.•2、verificationloss:•使用L2范式或Bayes,用于学习人脸变化,以增大类间离散度,减小类内离散度;•𝑉𝑒𝑟𝑖𝑓𝑓𝑖,𝑓𝑗,𝑦𝑖𝑗,𝜃𝑣𝑒=12𝑓𝑖−𝑓𝑗22𝑖𝑓𝑦𝑖𝑗=112max0,𝑚−𝑓𝑖−𝑓𝑗22𝑖𝑓𝑦𝑖𝑗=−1•式中f为特征,ϴ为参数。From:(2014_NIPS)DeepLearningFaceRepresentationbyJointIdentification-Verification2.5优化算法•随机梯度下降(StochasticGradientDecent,SGD)•自适应梯度(AdaptiveGradient,AdaGraD)•NESTEROV’SAcceleratedGradient(NAG)From:报告内容•卷积神经网络(CNN)概述•CNN局部结构•CNN网络结构•CNN并行加速•数据库及相关应用3.1LeNet-5From:(1998)Gradient-BasedLearningAppliedtoDocumentRecognition.3.2AlexNetFrom:(2012_NIPS)Imagenetclassificationwithdeepconvolutionalneuralnetworks.3.3NetworkInNetworkFrom:(2014)NetworkInNetwork.3.4GoogLeNet(3/3)From:(2014)Godeeperwithconvolutions.3.5反卷积网络•Deconvolutionnetwork是和convolutionnetwork(CNN)对应的,在CNN中,是由inputimage卷积featurefilter得到featuremap,而在Devonvolutionnetwork中,是由featuremap卷积featurefilter得到inputimage.所以,Deconvolutionnetwork是一种top-down方式,如下图:上图表示的是DN(deconvolutionnetwork的简称)的第一层,其输入图像是3通道的RGB图,学到的第一层特征有12个,说明每个输入通道图像都学习到了4个特征。而其中的特征图Z是由对应通道图像和特征分别卷积后再求和得到的。Deconvolutionalnetwork类似于层次稀疏编码网络(HierarchicalConvolutionSparseCoding),都是通过逐层交叉优化的方式进行训练的,每次交叉优化卷积核和特征图。From:(2010_CVPR)DeconvolutionalNetworks.报告内容•卷积神经网络(CNN)概述•CNN局部结构改进•CNN网络结构改进•CNN并行加速•数据库及相关应用4.1CNN的并行化•AlexNet•腾讯multi-GPU•Caffe•Eblearn•Theano•NvidiaCuDNNFrom: