1、目录背景介绍Contents1章节概述2小节介绍3本章总结4背景介绍B A C K G R O U N D机 器 学 习 背 景 介 绍 及 神 经 网 络 结 构 与 功 能 简 介ONE机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。其专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,其主要使用归纳、综合而不是演绎。机器学习背景最近十多年来,神经网络的研究工作不断深
2、入,已经取得了很大的进展,其在模式识别、智能机器人、自动控制、预测估计、生物、医学、经济等领域已成功地解决了许多现代计算机难以解决的实际问题。在计算机视觉领域,神经网络作为深度学习模型的基础,在本章节将进行详细介绍。神经网络的用途背 景 介 绍神经网络(Neural Network,即NN)此处指的是人工神经网络,属于机器学习方法中的一个分支,是20世纪80 年代以来人工智能领域兴起的研究热点。它从信息处理角度对人脑神经元网络进行抽象,建立某种简单模型,按不同的连接方式组成不同的网络。神经网络是一种运算模型,由大量的节点(或称神经元)之间相互联接构成。神经网络背景及结构章节概述C H A P
3、T E R O V E R V I E W本 章 节 内 容 简 介 及 思 维 导 图TWO本章将首先介绍神经网络的基础感知器模型的原理及激活函数相关内容,之后从原理及公式推导方面介绍神经网络的结构与前向传播及反向传播算法,最后在普通神经网络的基础之上,详细介绍卷积神经网络及循环神经网络的原理、结构、应用及演变模型。第四章第四章 神经网络神经网络本章简介本章简介思维导图思维导图章 节 概 述小节介绍S E C T I O N I N T R O D U C T I O N各 小 节 内 容 详 细 讲 解THREE、深度学习始于神经网络,神经网络始于感知器。4.1 感知器感知器由Frank
4、Rosenblatt在1957年第一次提出。这种结构以一个向量作为输入,计算输入每一维度的值的线性组合,然后和一个阈值进行比对,高于阈值则输出1,否则输出-1。简单来说就是加权求和,然后再和b进行比大小。基本概念感知器本质上就是一个仿射变换接一个非线性变换激活函数tanh函数sigmoid函数ReLU函数 表示一个非线性变换。在机器学习领域,这种非线性变换通常被称为激活函数。、4.2 神经网络基础输入层的向量传递到隐藏层之后,变成了一个四维向量,而这个三维向量到达输出层之后,最终变成二维。每一层的输出都和下一层所有的感知器输入相连,也就是通常所说的全连接(Fully Connected)。W代
5、表权值的总数,Pi代表第i层的感知器数量:神经网络基础最原始的输入层(x1,x2,x3)和4个不同感知器相连,这 4个感知器有2个输出,最终输出y1和y2。在这样一个经典的网络结构中,输入层后面的一层叫隐藏层,因为通常在训练和使用的时候,其输出对使用者来说是不可见的,然后是输出层。W代表权值的总数,Pi代表第i层的感知器数量:神经网络基础分层结构:如果把输入也当成一层,则每一层有一定数量的输出作为下一层的输入。从这个角度来说,可以把神经网络看作是对一个向量进行分步变换,每一层的输入向量经过这一层感知器变换之后,相当于变成了一个新的向量,并且新向量的维度等于这一层感知器单元的数量,这样一层层变换
6、直到形成最后的输出。整个神经网络的作用就是一个向量x,经过了变换之后成了一个向量y而己。所以在这种经典的结构中,对于一个n层(包含输入层和输出层)的网络,权值的数目和神经元数目的关系如下当网络层数不多的时候,随着感知器单元数量的增加,权值数目是平方增加的趋势、4.3 前向传播与反向传播算法随着神经网络的崛起而名声大噪的方法假设上一层结点i,j,k,与本层的结点w有连接,结点w的计算方法就是通过上一层的i,j,k等结点以及对应的连接权值进行加权和运算,最终结果再加上一个偏置项(图中为了简单省略了),最后通过一个非线性函数(即激活函数),如ReLU,sigmoid等函数,得到的结果就是本层结点w的
7、输出。最终通过逐层运算的方式,得到输出层结果。前向传播算法对于前向传播来说,不管维度多高,其过程都可以用如下公式表示:前向传播算法其中,上标代表层数,*表示卷积,b表示偏置项bias,表示激活函数。反向传播算法原理及推导符号含义结点a到结点b的权重结点a的输出值结点a的输入值结点a的损失损失函数结点激活函数左边字母,右边数字,代表第几层的矩阵或者向量abWayazaC1()1xf xe2W正向传播后:反向传播:最终结果:更新权值:链式推导:、4.4 卷积神经网络概述计算机视觉核心网络。卷积神经网络是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。
8、卷积神经网络由一个或多个卷积层和顶端的全连通层(对应经典的神经网络)组成,同时也包括关联权重和池化层。这一结构使得卷积神经网络能够利用输入数据的二维结构,其中最早比较有名的卷积神经网络为LeNet-5。与其他深度学习结构相比,卷积神经网络在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网络,卷积神经网络需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。卷积神经网络概述普通神经网络卷积神经网络卷积神经网络利用输入是图片的特点,把神经元设计成三个维度:width,height,depth(注意这个depth不是神经网络的深度,而是用来
9、描述神经元的)。比如输入的图片大小是 32323(rgb),那么输入神经元就也具有32323的维度。一个卷积神经网络由很多层组成,它们的输入是三维的,输出也是三维的,有的层有参数,有的层则不需要参数。卷积神经网络概述、4.5&4.6 卷积神经网络结构与组成卷积神经网络通常包含以下几种层:(1)卷积层:卷积神经网路中每层卷积层由若干卷积单元组成,每个卷积单元的参数都是通过反向传播算法优化得到的。卷积运算的目的是提取输入的不同特征,第一层卷积层可能只能提取一些低级的特征如边缘、线条和角等层级,更多层的网络能从低级特征中迭代提取更复杂的特征。(2)线性整流层:这一层神经的活性化函数使用线性整流f(x
10、)=max(0,x)。事实上,其他的一些函数也可以用于增强网络的非线性特性,如双曲正切函数f(x)=tanh(x),f(x)=|tanh(x)|,或者Sigmoid函数f(x)=(1+e(-x)(-1)。相比其它函数来说,线性整流函数更受青睐,这是因为它可以将神经网络的训练速度提升数倍,而并不会对模型的泛化准确度造成显著影响。卷积网络组成(3)池化层:通常指在卷积层之后会得到维度很大的特征,将特征切成几个区域,取其最大值或平均值,得到新的、维度较小的特征。有多种不同形式的非线性池化函数,而其中“最大池化”是最为常见的。它是将输入的图像划分为若干个矩形区域,对每个子区域输出最大值。直觉上,这种机
11、制能够有效地原因在于,在发现一个特征之后,它的精确位置远不及它和其他特征的相对位置的关系重要。池化层会不断地减小数据的空间大小,因此参数的数量和计算量也会下降,这在一定程度上也控制了过拟合。除了最大池化之外,池化层也可以使用其他池化函数,例如“平均池化”甚至“L2-范数池化”等。(4)连接层:它可以增强判定函数和整个神经网络的非线性特性,而本身并不会改变卷积层。把所有局部特征结合变成全局特征,用来计算最后每一类的得分。(5)损失函数层:用于决定训练过程如何来“惩罚”网络的预测结果和真实结果之间的差异,它通常是网络的最后一层。各种不同的损失函数适用于不同类型的任务。例如,Softmax交叉熵损失
12、函数常常被用于在K个类别中选出一个,而Sigmoid交叉熵损失函数常常用于多个独立的二分类问题。欧几里德损失函数常常用于结果取值范围为任意实数的问题。卷积网络组成对隐含单元和输入单元间的连接加以限制:每个隐含单元仅仅只能连接输入单元的一部分。每个隐含单元连接的输入区域大小叫神经元的感受野。由于卷积层的神经元也是三维的,所以也具有深度。卷积层的参数包含一系列过滤器,每个过滤器训练一个深度,有几个过滤器输出单元就具有多少深度。如图所示,样例输入单元大小是32323,输出单元的深度是5,对于输出单元不同深度的同一位置,与输入图片连接的区域是相同的,但是参数(过滤器)不同。局部感知应用参数共享可以大量
13、减少参数数量,参数共享基于一个假设:如果图像中的一点(x_1,y_1)包含的特征很重要,那么它应该和图像中的另一点(x_2,y_2)一样重要。换种说法,把同一深度的平面叫做深度切片,那么同一个切片应该共享同一组权重和偏置。仍然可以使用梯度下降的方法来学习这些权值,只需要对原始算法做一些小的改动,这里共享权值的梯度是所有共享参数的梯度的总和。为什么要权重共享呢?一方面,重复单元能够对特征进行识别,而不考虑它在可视域中的位置。另一方面,权值共享使得能更有效的进行特征抽取,因为它极大的减少了需要学习的自由变量的个数。通过控制模型的规模,卷积网络对视觉问题可以具有很好的泛化能力。参数共享二维卷积卷积过
14、程二维卷积过程:首先考虑一个大小为55的图像,和一个33的卷积核。这里的卷积核共有9个参数,记为=_ij_(33)。这种情况下,卷积核实际上有9个神经元,他们的输出又组成一个33的矩阵,称为特征图。第一个神经元连接到图像的第一个33的局部,第二个神经元则连接到第二个局部(注意它们之间有重叠的部分,就和人的目光扫视时也是连续扫视的原理一样)。假设有二维离散函数f(x,y),g(x,y),那么它们的卷积定义为:一维卷积二维卷积二维卷积池化即下采样,目的是为了减少特征图。池化操作对每个深度切片独立,规模一般为22,相对于卷积层进行卷积运算,池化层进行的运算一般有以下几种:最大池化:取4个点的最大值。
15、这是最常用的池化方法。均值池化:取4个点的均值。高斯池化:借鉴高斯模糊的方法。不常用。可训练池化:训练函数,接受4个点为输入,1个点为输出。不常用。最常见的池化层是规模为22,步幅为2,对输入的每个深度切片进行下采样。每个MAX操作对四个数进行,如图所示。池化操作将保存深度大小不变。另外,如果池化层的输入单元大小不是2的整数倍,一般采取边缘补零的方式补成2的倍数,然后再池化。最大池化池化全连接层和卷积层可以相互转换:对于任意一个卷积层,要把它变成全连接层只需要把权重变成一个巨大的矩阵,其中大部分都是0,除了一些特定区块(因为局部感知),而且有大量区块的权值相同(由于权重共享)。相反地,对于任何
16、一个全连接层,也可以转变为卷积层。比如,一个K4096的全连接层,输入层大小为 7*7*512,它可以等效为一个F=7,P=0,S=1,K=4096的卷积层。换言之,把过滤器的规模刚好设置为整个输入层大小。全连接层与卷积层输入层-卷积层-线性整流层*N-池化层?*M-全连接层-线性整流层*K-全连接层堆叠几个卷积和整流层,再加一个池化层,然后再用全连接层控制输出。上述表达式中,问号符号代表0次或1次,符号N和M则代表具体的数值。通常情况下,取N=0&N=0,K=0&K 隐藏单元 隐藏单元-输出单元在隐藏层增加了上下文单元,上下文单元节点与隐藏层中的节点的连接是固定的,并且权值也是固定的,其实是
17、一个上下文节点与隐藏层节点一一对应,并且值是确定的。Simple-RNN循环神经网络拓展与改进双向神经网络的隐藏层要保存两个值,一个参与正向计算,另一个值则参与反向计算。双向循环神经网络的改进之处便是,假设当前的输出不仅仅与前面的序列有关,并且还与后面的序列有关。它是由两个循环神经网络上下叠加在一起组成的,而其输出则由这两个循环神经网络的隐藏层状态共同决定。双向循环神经网络循环神经网络拓展与改进叠两个以上的隐藏层,对于每一步的输入有多层网络。这样,该网络便有更强大的表达与学习能力,但是复杂性也提高了,同时需要更多的训练数据。深度循环神经网络循环神经网络拓展与改进在长短期记忆网络中,最基本的结构
18、单位被称为cells,可以把cells看作是黑盒用以保存当前输入x_t之前的保存的状态h_(t-1),这些cells更加一定的条件决定哪些cell抑制,哪些cell兴奋。它们结合前面的状态、当前的记忆与当前的输入。已经证明,该网络结构在长序列依赖问题中非常有效。长短期记忆网络与门控循环单元网络循环神经网络拓展与改进可以看到它们之间非常相像,不同点在于:(1)新生成的记忆的计算方法都是根据之前的状态及输入进行计算,但是门控循环单元中有一个重置门控制之前状态的进入量,而在长短期记忆里没有这个门;(2)产生新的状态的方式不同,长短期记忆有两个不同的门,分别是遗忘门和输入门,而门控循环单元的结构相对简
19、单,只有一个更新门;(3)长短期记忆对新产生的状态有一个输出门可以调节大小,而门控循环单元直接输出无任何调节。长短期记忆网络与门控循环单元网络循环神经网络拓展与改进本章总结C H A P T E R S U M M A R YFOUR本章总结本章首先介绍了神经网络的基础感知器模型的原理及激活函数相关内容,之后从原理及公式推导方面讲解了神经网络的结构与前向传播及反向传播算法,最后在普通神经网络的基础之上,详细介绍了卷积神经网络及循环神经网络的原理、结构、应用及演变模型。作为深度学习及计算机视觉的基础及重要组成部分,神经网络及卷积神经网络等是利用深度学习解决计算机视觉相关问题及应用的有力工具,在对本章进行了充分的学习后,将会为之后章节有关计算机视觉具体任务及应用的学习做好准备。