卷积神经网络CNNWord格式文档下载.docx
- 文档编号:1465867
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:25
- 大小:4.61MB
卷积神经网络CNNWord格式文档下载.docx
《卷积神经网络CNNWord格式文档下载.docx》由会员分享,可在线阅读,更多相关《卷积神经网络CNNWord格式文档下载.docx(25页珍藏版)》请在冰点文库上搜索。
注:
红色数字表示相应文献的引用量。
二、卷积神经网络vs神经网络
2.1神经网络
首先简要介绍下神经网络。
神经网络的每个单元如下:
其对应的公式如下:
hW,bx=fWTx=f(i=13Wixi+b)
其中,该单元也可以被称作是Logistic回归模型。
当将多个单元组合起来并具有分层结构时,就形成了神经网络模型。
下图展示了一个具有一个隐含层的神经网络。
比较类似的,可以拓展到有2,3,4,5,…个隐含层。
神经网络的训练方法也同Logistic类似,不过由于其多层性,还需要利用链式求导法则对隐含层的节点进行求导,即梯度下降+链式求导法则,专业名称为反向传播。
神经网络的权值调整过程如下(BP算法):
①计算误差函数J=x∈DJxω=12k=1Dtk-zk2;
②误差函数对权系数偏微分的计算
<
1>
对输出层权系数的微分:
∂J∂ωkj=∂J∂netk×
∂netk∂ωkj(求导链式法则)
输出层第k个神经元的总输入:
netk=j=1nHωkjyj+ωk0zk=f(netk)
∂J∂netk=∂J∂zk×
∂zk∂netk=-(tk-zk)×
f'
(netk)∂netk∂ωkj=yj
令∂J∂netk=δk,可得∂J∂ωkj=δkyj
2>
对隐层权系数的微分:
∂J∂ωji=∂J∂netj×
∂netj∂ωji
隐含层第j个神经元的总输入:
netj=i=1dωjixi+ωj0yj=f(netj)
∂J∂netj=∂J∂yj×
∂yj∂netj=(k=1c∂J∂netk∂netk∂yj)×
∂yj∂netj=(k=1cδkωkj)×
(netj)
令∂J∂netj=δj,可得∂J∂ωji=δjxi
3>
权系数的更新
ωkj←ωkj-η∂J∂ωkjωji←ωji-η∂J∂ωji
根据计算误差修正权值,最终使得误差值J最小,此时就建立好了神经网络模型。
卷积神经网络的权值调整过程也多采用BP算法。
2.2卷积神经网络
目前有许多CNN架构的变体,但它们的基本结构非常相似。
CNN的基本体系结构通常由三种层构成,分别是卷积层、池化层和全连接层。
卷积层旨在学习输入的特征表示。
如图,卷积层由几个特征图(featuremaps)组成。
一个特征图的每个神经元与它前一层的临近神经元相连,这样的一个邻近区域叫做该神经元在前一层的局部感知野。
为了计算一个新的特征图,输入特征图首先与一个学习好的卷积核(也被称为滤波器、特征检测器)做卷积,然后将结果传递给一个非线性激活函数。
通过应用不同的卷积核得到新的特征图。
注意到,生成一个特征图的核是相同的。
(也就是权值共享)这样的一个权值共享模式有几个优点,如可以减少模型的复杂度,使网络更易训练等。
激活函数描述CNN的非线性度,对多层网络检测非线性特征十分理想。
典型的激活函数有sigmoid、tanh和ReLU。
池化层旨在通过降低特征图的分辨率实现空间不变性。
它通常位于两个卷积层之间。
每个池化层的特征图和它相应的前一卷积层的特征图相连,因此它们的特征图数量相同。
典型的池化操作是平均池化和最大池化。
通过叠加几个卷积和池化层,我们可以提取更抽象的特征表示。
几个卷积和池化层之后,通常有一个或多个全连接层。
它们将前一层所有的神经元与当前层的每个神经元相连接,在全连接层不保存空间信息。
下面对各层进行详细的分析与介绍:
在图像处理中,往往把图像表示为像素的向量,比如一个1000×
1000的图像,可以表示为一个1000000的向量。
在上一节中提到的神经网络中,如果隐含层数目与输入层一样,即也是1000000时,那么输入层到隐含层的参数数据为1000000×
1000000=1012,这样就太多了,基本没法训练,所以必需先减少参数加快速度。
2.2.1卷积层(Theconvolutionallayer)
1、局部感知
卷积神经网络有两种神器可以降低参数数目,第一种神器叫做局部感知野。
一般认为人对外界的认知是从局部到全局的,而图像的空间联系也是局部的像素联系较为紧密,而距离较远的像素相关性则较弱。
因而,每个神经元其实没有必要对全局图像进行感知,只需要对局部进行感知,然后在更高层将局部的信息综合起来就得到了全局的信息。
网络部分连通的思想,也是受启发于生物学里面的视觉系统结构。
视觉皮层的神经元就是局部接受信息的(即这些神经元只响应某些特定区域的刺激)。
如下图所示:
左图为全连接,右图为局部连接。
在上右图中,假如每个神经元只和它前一层邻近的10×
10个像素值相连,那么权值数据为1000000×
100个参数,减少为原来的万分之一。
而那10×
10个像素值对应的10×
10个参数,其实就相当于卷积操作。
2、权值共享
但其实这样的话参数仍然过多,那么就启动第二级神器,即权值共享。
在上面的局部连接中,每个神经元都对应100个参数,一共1000000个神经元,如果这1000000个神经元的100个参数都是相等的,那么参数数目就变为100了。
怎么理解权值共享呢?
我们可以这100个参数(也就是卷积操作)看成是提取特征的方式,该方式与位置无关。
这其中隐含的原理则是:
图像的一部分的统计特性与其他部分是一样的。
这也意味着我们在这一部分学习的特征也能用在另一部分上,所以对于这个图像上的所有位置,我们都能使用同样的学习特征。
更直观一些,当从一个大尺寸图像中随机选取一小块,比如说8×
8作为样本,并且从这个小块样本中学习到了一些特征,这时我们可以把从这个8×
8样本中学习到的特征作为探测器,应用到这个图像的任意地方中去。
特别是,我们可以用从8×
8样本中所学习到的特征跟原本的大尺寸图像作卷积,从而对这个大尺寸图像上的任一位置获得一个不同特征的激活值。
如下图所示,展示了一个3×
3的卷积核在5×
5的图像上做卷积的过程。
每个卷积都是一种特征提取方式,就像一个筛子,将图像中符合条件的部分筛选出来。
(图片为gif格式)
3、多卷积核
上面所述只有100个参数时,表明只有1个10×
10的卷积核,显然,特征提取是不充分的,我们可以添加多个卷积核,比如32个卷积核,可以学习32种特征。
在有多个卷积核时,如下图所示:
上图右,不同颜色表明不同的卷积核。
每个卷积核都会将图像生成为另一幅图像。
比如两个卷积核就可以将生成两幅图像,这两幅图像可以看做是一张图像的不同的通道,如下图所示。
下图展示了在四个通道上的卷积操作,有两个卷积核,生成两个通道。
其中需要注意的是,四个通道上每个通道对应一个卷积核,先将W1忽略,只看W0,那么在W0的某位置(i,j)处的值,是由四个通道上(i,j)处邻近区域的卷积结果相加然后再取激活函数(假设选择tanh函数)值得到的。
hij0=tanh(k=03(Wk*(W0*x)ij)+b0)
所以,在上图由4个通道卷积得到2个通道的过程中,参数的数目为4×
2×
2个,其中4表示4个通道,第一个2表示生成2个通道,最后的2×
2表示卷积核大小。
2.2.2池化层(Thepoolinglayer)
在通过卷积获得了特征(features)之后,下一步我们希望利用这些特征去做分类。
理论上讲,人们可以用所有提取得到的特征去训练分类器,例如softmax分类器,但这样做面临计算量的挑战。
例如:
对于一个96×
96像素的图像,假设我们已经学习得到了400个定义在8×
8输入上的特征(即:
有400个卷积核),每一个特征和图像卷积都会得到一个(96−8+1)×
(96−8+1)=7921维的卷积特征,由于有400个特征,所以每个样例(example)都会得到一个7921×
400=3,168,400维的卷积特征向量。
学习一个拥有超过3百万特征输入的分类器十分不便,并且容易出现过拟合(over-fitting)。
为了解决这个问题,首先回忆一下,我们之所以决定使用卷积后的特征是因为图像具有一种“静态性”的属性,这也就意味着在一个图像区域有用的特征极有可能在另一个区域同样适用。
因此,为了描述大的图像,一个很自然的想法就是对不同位置的特征进行聚合统计,例如,人们可以计算图像一个区域上的某个特定特征的平均值(或最大值)。
这些概要统计特征不仅具有低得多的维度(相比使用所有提取得到的特征),同时还会改善结果(不容易过拟合)。
这种聚合的操作就叫做池化(pooling),有时也称为平均池化或者最大池化(取决于计算池化的方法)。
形式上,在获取到我们前面讨论过的卷积特征后,我们要确定池化区域的大小(假定为m×
n),来池化我们的卷积特征。
那么,我们把卷积特征划分到数个大小为m×
n的不相交区域上,然后用这些区域的平均(或最大)特征来获取池化后的卷积特征。
这些池化后的特征便可以用来做分类。
2.2.3全连接层(Fully-connectedlayers)
几个卷积和池化层之后,通常有一个或多个全连接层,旨在执行对原始图像的高级抽象。
它们将前一层所有的神经元与当前层的每个神经元相连接,即与标准神经网络各层之间的连接相同,在全连接层不保存空间信息。
最后的全连接层的输出传递到输出层。
对于分类任务,softmax回归由于其可以生成输出的well-formed概率分布[4]而被普遍使用。
给定训练集xi,yi;
i∈1,…,N,yi∈0,…,K-1,其中xi是第i个输入图像块,yi是它的类标签,第i个输入属于第j类的预测值aji可以用如下的softmax函数转换:
pji=eajil=0K-1eali,softmax将预测转换为非负值,并进行正则化处理。
至此,卷积神经网络的基本结构和原理已经阐述完毕。
在实际应用中,往往使用多层卷积,然后再使用全连接层进行训练,多层卷积的目的是一层卷积学到的特征往往是局部的,层数越高,学到的特征就越全局化。
2.2.4问题
1、预处理步骤
利用PCA或ZCA白化矩阵调整权值。
白化的目的就是降低输入的冗余性;
更正式的说,希望通过白化过程使得学习算法的输入具有如下性质:
(1)特征之间相关性较低;
(2)所有特征具有相同的方差。
利用PCA或ZCA白化矩阵后,卷积层输出的特征激活值等于f(WTx-x+b),其中T是白化矩阵,x是前一层图像块的均值,此时,相当于对图像块做WT卷积而不是之前的W,同时神经元单元的偏置也变为b-WTx。
补充:
PCA白化和ZCA白化算法
首先,我们需要确保数据的均值(近似)为零。
对于自然图像,我们通过减去每个图像块(patch)的均值(近似地)来达到这一目标。
为此,我们计算每个图像块的均值,并从每个图像块中减去它的均值;
avg=mean(x,1);
%分别为每个图像块计算像素强度的均值
x=x-repmat(avg,size(x,1),1);
其次,计算=1mi=1m(x(i))(x(i))T,假设x为一数据结构,其中每列表示一个训练样本(所以x是一个n×
m的矩阵);
sigma=x*x'
/size(x,2);
接下来,PCA计算∑的特征向量。
但是由于∑是对称半正定的矩阵,用svd函数在数值计算上更加稳定。
矩阵U将包含Sigma的特征向量(一个特征向量一列,从主向量开始排序),矩阵S对角线上的元素将包含对应的特征值(同样降序排列)。
矩阵V等于U的转置,可以忽略。
[U,S,V]=svd(sigma);
最后,计算PCA白化后的数据xPCAwhite和ZCA白化后的数据xZCAwhite:
xPCAwhite=diag(1./sqrt(diag(S)+epsilon))*U'
*x;
%diag函数功能:
矩阵对角元素的提取和创建对角阵
xZCAwhite=U*diag(1./sqrt(diag(S)+epsilon))*U'
%epsilonMATLAB本身内建的常数,它是一個10的-52次方的小数,可以作为反复运算时比较之用
2、如何计算卷积核?
常用的计算卷积核的方法,一种是BP算法,上面神经网络中已经讨论过:
3、窄卷积vs宽卷积
在上文中解释卷积运算的时候,忽略了如何使用滤波器的一个小细节。
在矩阵的中部使用3×
3的滤波器没有问题,在矩阵的边缘该怎么办呢?
左上角的元素没有顶部和左侧相邻的元素,该如何滤波呢?
解决的办法是采用补零法(zero-padding)。
所有落在矩阵范围之外的元素值都默认为0。
这样就可以对输入矩阵的每一个元素做滤波了,输出一个同样大小或是更大的矩阵。
补零法又被称为是宽卷积,不使用补零的方法则被称为窄卷积。
如图所示:
图中滤波器长度为5,输入长度为7。
当滤波器长度相对输入向量的长度较大时,宽卷积很有用,或者说很有必要。
在上图中,窄卷积输出的长度是(7-5)+1=3,宽卷积输出的长度是(7+2*4-5)+1=11。
一般形式为nout=nin+2*npadding-nfilter+1
4、步长
卷积运算的另一个超参数是步长,即每一次滤波器平移的距离。
上面所有例子中的步长都是1,相邻两个滤波器有重叠。
步长越大,则用到的滤波器越少,输出的值也越少。
下图来自斯坦福的cs231课程网页4,分别是步长为1和2的情况:
三、卷积神经网络在各个领域的应用
在过去的十几年间,卷积神经网络被广泛的应用在了各个领域,包括计算机视觉、语音识别、自然语言处理等[8]。
3.1计算机视觉
在计算机视觉中的应用包括:
图像分类、对象追踪、姿态估计、视觉显著性检测、行为识别、场景标识等。
①图像分类
CNN已经被用于图像分类很长时间,相比于其他的方法,CNN由于其特征学习和分类学习的结合能力,在大规模数据集上实现了更高的分类准确率。
对大规模图像分类的突破是在2012年,AlexKrizhevsky等人[9]建立的AlexNet网络,在ILSVRC2012比赛中实现了最佳的性能。
(1)AlexNet网络介绍:
ImageNetLSVRC是一个图片分类的比赛,其训练集包括127W+张图片,验证集有5W张图片,测试集有15W张图片。
本文截取2012年AlexKrizhevsky的CNN结构进行说明,该结构在2012年取得冠军,top-5错误率为15.3%。
下图即为Alex的CNN结构图。
需要注意的是,该模型采用了2-GPU并行结构,即所有卷积层都是将模型参数分为2部分进行训练的。
在这里,更进一步,并行结构分为数据并行与模型并行。
数据并行是指在不同的GPU上,模型结构相同,但将训练数据进行切分,分别训练得到不同的模型,然后再将模型进行融合。
而模型并行则是,将若干层的模型参数进行切分,不同的GPU上使用相同的数据进行训练,得到的结果直接连接作为下一层的输入。
随着AlexNet的成功,一些工作对它的性能进行了改进。
三个最具代表性的网络是ZFNet、VGGNet和GoogleNet。
ZFNet提高AlexNet性能通过减少第一层滤波器的大小从11×
11到7×
7以及减少卷积层数目从5到2。
在这样的设置中,之间卷积层的大小被扩展以便于获得更有意义的特征。
VGGNet将网络深度扩展到19层并在每个卷积层使用非常小的滤波器,大小为3×
3。
结果表明深度是提高性能至关重要的因素。
GoogleNet增加了网络的深度和宽度,相比于较浅和较窄的网络,在计算需求的适当增加上实现了显著的质量提升。
值得一提的是,在2015年的ImageNetLSVRC比赛中,取得冠军的GoogleNet已经达到了top-5错误率6.67%。
可见,深度学习的提升空间还很巨大。
(2)DeepID网络介绍:
DeepID网络结构是香港中文大学的SunYi开发出来用来学习人脸特征的卷积神经网络[13]。
每张输入的人脸被表示为160维的向量,学习到的向量经过其他模型进行分类,在人脸验证实验上对10000类的分类准确率达到了97.45%,更进一步的,原作者改进了CNN(DeepID2[14]),又达到了99.15%的正确率。
如下图所示,该结构与ImageNet的具体参数类似:
上图模型的基本参数为:
输入:
31×
39大小的图片,1通道
第一层
卷积:
4×
4大小的卷积核20个->
得到20个28×
36大小的卷积特征。
max-pooling:
2的核->
池化得到20个14×
18大小的卷积特征。
第二层
3×
3卷积核40个->
得到40个12×
16大小的卷积特征。
2×
池化得到40个6×
8大小的卷积特征。
第三层
3×
3的卷积核60个->
得到60个4×
6大小的卷积特征
池化得到60个2×
3大小的卷积特征。
第四层
2的卷积核80个->
得到80个1×
2大小的卷积特征。
全连接层
以第四层卷积(160维)和第三层max-pooling的输出(60×
3=360维)作为全连接层的输入,这样可以学习到局部的和全局的特征。
Softmax层
输出的每一维都是图片属于该类别的概率。
②对象追踪Objecttracking
对象追踪在计算机视觉的应用中起着重要作用,对象追踪的成功在很大程度上依赖于如何健壮的表示目标外观,它面临的挑战如视点改变、光照变化以及遮挡等。
Fan等人[10]使用CNN作为基础学习器,学习一个独立的分类专用网络来追踪对象。
在实验中,作者设计了一个具有移位变体结构的CNN追踪器。
在离线训练期间学习特征,与传统追踪器不同的是,CNN追踪器只提取局部空间结构,通过考虑两个连续帧的图像来提取空间和时间结构。
由于时间信息的大规模信号趋向于在移动对象附近变化,因此时间结构能够提供原始的速度信号,便于对象追踪。
③姿态估计/行为识别
类似于其他的视觉识别任务,人体姿态的估计任务由于CNN的大规模学习能力以及更全面训练的可扩展性而实现了巨大的性能提升。
DeepPose[11]是CNN在人体姿态估计问题中的第一个应用(2014)。
在这个应用中,姿态估计被视为一个基于CNN的回归问题来求解人体关节坐标。
提出串联7层CNN来构成姿态的整体表示。
不同于之前明确设计图形化模型和部分探测器的工作,DeepPose描述人体姿态估计的整体视图,通过将整个图像作为最终人体姿态的输入和输出,来获得每个人体关节的完整内容。
④场景标记
场景标记(也被称为场景解析、场景语义分割)建立了对深度场景理解的桥梁,其目标是将语义类(路、水、海洋等)与每个像素关联。
一般来说,由于尺度、光照以及姿态变化因素影响,自然图像中的“事物”像素(汽车、人等)是完全不同的,而“物体”像素(路、海洋等)是非常相似的。
因此,图像的场景标记具有挑战性。
最近,CNN已经被成功地应用在场景标记任务中。
在这个场景中,CNN被用来直接从局部图像块中建模像素的类估计,它们能够学习强大的特征,来区分局部视觉像素微妙的变化。
Farabet等人首次将CNN应用在场景标记任务中[30],用不同尺度的图像块来调整多尺度卷积网络,结果表明CNN网络性能明显优于比采用手工提取特征的系统。
3.2自然语言处理(NLP)1
NLP任务的输入不再是像素点了,大多数情况下是以矩阵表示的句子或者文档。
矩阵的每一行对应于一个分词元素,一般是一个单词,也可以是一个字符。
也就是说每一行是表示一个单词的向量。
通常,这些向量都是wordembeddings(一种底维度表示)的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 卷积 神经网络 CNN
![提示](https://static.bingdoc.com/images/bang_tan.gif)