神经网络基本知识(共7页).doc

上传人:飞****2 文档编号:14330797 上传时间:2022-05-04 格式:DOC 页数:7 大小:179KB
返回 下载 相关 举报
神经网络基本知识(共7页).doc_第1页
第1页 / 共7页
神经网络基本知识(共7页).doc_第2页
第2页 / 共7页
点击查看更多>>
资源描述

《神经网络基本知识(共7页).doc》由会员分享,可在线阅读,更多相关《神经网络基本知识(共7页).doc(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上(一)三层神经网络1) 该模型的参数通过两个步骤训练获得:在该网络的第一层,将输入映射至隐藏单元激活量的权值可以通过稀疏自编码器训练过程获得。在第二层,将隐藏单元映射至输出的权值可以通过 logistic 回归或 softmax 回归训练获得。2) 在描述上述过程时,假设采用了“替代 (Replacement)”表示而不是“级联 (Concatenation)”表示。在替代表示中,logistic 分类器所看到的训练样本格式为;而在级联表示中,分类器所看到的训练样本格式为。在级联表示神经网络中,输入值也直接被输入至 logistic 分类器。3) 在训练获得模型最初参

2、数(利用自动编码器训练第一层,利用 logistic/softmax 回归训练第二层)之后,可以进一步修正模型参数,进而降低训练误差。具体来说,可以对参数进行微调,在现有参数的基础上采用梯度下降或者 L-BFGS 来降低已标注样本集上的训练误差。 微调的作用在于,已标注数据集也可以用来修正权值,这样可以对隐藏单元所提取的特征做进一步调整。 对于微调来说,级联表示相对于替代表示几乎没有优势。因此,如果需要开展微调,通常使用替代表示的网络。但是如果不开展微调,级联表示的效果有时候会好得多。 通常仅在有大量已标注训练数据的情况下使用微调。在这样的情况下,微调能显著提升分类器性能。如果有大量未标注数据

3、集(用于非监督特征学习/预训练),却只有相对较少的已标注训练集,微调的作用非常有限。(二)深度网络深度神经网络,即含有多个隐藏层的神经网络。通过引入深度网络,可以计算更多复杂的输入特征。因为每一个隐藏层可以对上一层的输出进行非线性变换,因此深度神经网络拥有比“浅层”网络更加优异的表达能力。1. 深度神经网络的优势1) 当训练深度网络的时候,每一层隐层应该使用非线性的激活函数。这是因为多层的线性函数组合在一起本质上也只有线性函数的表达能力(例如,将多个线性方程组合在一起仅仅产生另一个线性方程)。因此,在激活函数是线性的情况下,相比于单隐藏层神经网络,包含多隐藏层的深度网络并没有增加表达能力。2)

4、 深度网络最主要的优势在于,它能以更加紧凑简洁的方式来表达比浅层网络大得多的函数集合。即可以找到一些函数,这些函数可以用层网络简洁地表达出来(这里的简洁是指隐层单元的数目只需与输入单元数目呈多项式关系)。但是对于一个只有层的网络而言,除非它使用与输入单元数目呈指数关系的隐层单元数目,否则不能简洁表达这些函数。3) 当处理对象是图像时,使用深度网络,能够学习到“部分-整体”的分解关系。例如,第一层可以学习如何将图像中的像素组合在一起来检测边缘,第二层可以将边缘组合起来检测更长的轮廓或者简单的“目标的部件”,在更深的层次上,可以将这些轮廓进一步组合起来以检测更为复杂的特征。这种分层计算很好地模仿了

5、大脑皮层对输入信息的处理方式。视觉图像在人脑中是分多个阶段进行处理的,首先是进入大脑皮层的“V1”区,然后紧跟着进入大脑皮层“V2”区,以此类推。2. 训练深度网络的困难目前主要使用的学习算法是:首先随机初始化深度网络的权重,然后使用有监督的目标函数在有标签的训练集上进行训练。其中通过使用梯度下降法来降低训练误差,这种方法通常不是十分凑效。1) 数据获取问题使用上面提到的方法,需要依赖于有标签的数据才能进行训练。然而有标签的数据通常是稀缺的,因此对于许多问题,我们很难获得足够多的样本来拟合一个复杂模型的参数。例如,考虑到深度网络具有强大的表达能力,在不充足的数据上进行训练将会导致过拟合。2)

6、局部极值问题使用监督学习方法来对浅层网络(只有一个隐藏层)进行训练通常能够使参数收敛到合理的范围内。但是当用这种方法来训练深度网络的时候,并不能取得很好的效果。特别的,使用监督学习方法训练神经网络时,通常会涉及到求解一个高度非凸的优化问题。对深度网络而言,这种非凸优化问题的搜索区域中充斥着大量“坏”的局部极值,因而使用梯度下降法(或者像共轭梯度下降法,L-BFGS等方法)效果并不好。3) 梯度弥散问题梯度下降法(以及相关的L-BFGS算法等)在使用随机初始化权重的深度网络上效果不好的技术原因是:梯度会变得非常小。具体而言,当使用反向传播方法计算导数的时候,随着网络的深度的增加,反向传播的梯度(

7、从输出层到网络的最初几层)的幅度值会急剧地减小。结果就造成了整体的损失函数相对于最初几层的权重的导数非常小。这样,当使用梯度下降法的时候,最初几层的权重变化非常缓慢,以至于它们不能够从样本中进行有效的学习。这种问题通常被称为“梯度的弥散”.与梯度弥散问题紧密相关的问题是:当神经网络中的最后几层含有足够数量神经元的时候,可能单独这几层就足以对有标签数据进行建模,而不用最初几层的帮助。因此,对所有层都使用随机初始化的方法训练得到的整个网络的性能将会与训练得到的浅层网络(仅由深度网络的最后几层组成的浅层网络)的性能相似。3.逐层贪婪训练方法逐层贪婪训练方法是训练深度网络取得一定成功的一种方法。简单来

8、说,逐层贪婪算法的主要思路是: 每次只训练网络中的一层,即首先训练一个只含一个隐藏层的网络,仅当这层网络训练结束之后才开始训练一个有两个隐藏层的网络,以此类推。 在每一步中,把已经训练好的前层固定,然后增加第层(也就是将已经训练好的前的输出作为输入)。 每一层的训练可以是有监督的(例如,将每一步的分类误差作为目标函数),但更通常使用无监督方法(例如自动编码器)。 这些各层单独训练所得到的权重被用来初始化最终(或者说全部)的深度网络的权重,然后对整个网络进行“微调”(即把所有层放在一起来优化有标签训练集上的训练误差)。逐层贪婪的训练方法取得成功要归功于以下两方面: 数据获取虽然获取有标签数据的代

9、价是昂贵的,但获取大量的无标签数据是容易的。自学习方法的潜力在于它能通过使用大量的无标签数据来学习到更好的模型。具体而言,该方法使用无标签数据来学习得到所有层(不包括用于预测标签的最终分类层)的最佳初始权重。相比纯监督学习方法,这种自学习方法能够利用多得多的数据,并且能够学习和发现数据中存在的模式。因此该方法通常能够提高分类器的性能。 更好的局部极值当用无标签数据训练完网络后,相比于随机初始化而言,各层初始权重会位于参数空间中较好的位置上。然后我们可以从这些位置出发进一步微调权重。从经验上来说,以这些位置为起点开始梯度下降更有可能收敛到比较好的局部极值点,这是因为无标签数据已经提供了大量输入数

10、据中包含的模式的先验信息。(三)卷积特征提取和池化1)全联通网络把输入层和隐含层进行“全连接”的设计,从整幅图像中计算特征,从计算的角度来讲,对相对较小的图像是可行的。但是,如果是更大的图像,要通过全联通网络的这种方法来学习整幅图像上的特征,将是非常耗时。2)部分联通网络解决以上问题的一种简单方法是对隐含单元和输入单元间的连接加以限制:每个隐含单元仅仅只能连接输入单元的一部分。例如,每个隐含单元仅仅连接输入图像的一小片相邻区域。网络部分连通的思想,也是受启发于生物学里面的视觉系统结构。视觉皮层的神经元就是局部接受信息的(即这些神经元只响应某些特定区域的刺激)。3)卷积自然图像有其固有特性,也就

11、是说,图像的一部分的统计特性与其他部分是一样的。这也意味着我们在这一部分学习的特征也能用在另一部分上,所以对于这个图像上的所有位置,都能使用同样的学习特征。当从一个大尺寸图像中随机选取一小块,比如说 8x8 作为样本,并且从这个小块样本中学习到了一些特征,这时可以把从这个 8x8 样本中学习到的特征作为探测器,应用到这个图像的任意地方中去。特别是,可以用从 8x8 样本中所学习到的特征跟原本的大尺寸图像作卷积,从而对这个大尺寸图像上的任一位置获得一个不同特征的激活值。实例:假设已经从一个 96x96 的图像中学习到了它的一个 8x8 的样本所具有的特征,假设这是由有 100 个隐含单元的自编码

12、完成的。为了得到卷积特征,需要对 96x96 的图像的每个 8x8 的小块图像区域都进行卷积运算。也就是说,抽取 8x8 的小块区域,并且从起始坐标开始依次标记为(1,1),(1,2),.,一直到(89,89),然后对抽取的区域逐个运行训练过的稀疏自编码来得到特征的激活值。在这个例子里,显然可以得到 100 个集合,每个集合含有 89x89 个卷积特征。假设给定了的大尺寸图像,将其定义为xlarge。首先通过从大尺寸图像中抽取的的小尺寸图像样本xsmall训练稀疏自编码,计算f= (W(1)xsmall+b(1)(是一个 sigmoid 型函数)得到了k个特征, 其中W(1)和b(1)是可视层

13、单元和隐含单元之间的权重和偏差值。对于每一个大小的小图像xs,计算出对应的值fs= (W(1)xs+b(1),对这些fconvolved值做卷积,就可以得到个卷积后的特征的矩阵。4)池化在通过卷积获得了特征 之后,下一步是要利用这些特征去做分类。理论上讲,可以用所有提取得到的特征去训练分类器,例如 softmax 分类器,但这样做面临计算量的挑战。例如:对于一个 96X96 像素的图像,假设已经学习得到了400个定义在8X8输入上的特征,每一个特征和图像卷积都会得到一个(96 8 + 1) * (96 8 + 1) = 7921维的卷积特征,由于有 400 个特征,所以每个样例都会得到一个79

14、21* 400 = 3,168,400维的卷积特征向量。学习一个拥有超过 3 百万特征输入的分类器十分不便,并且容易出现过拟合。为了解决这个问题,即为了描述大的图像,一个很自然的想法就是对不同位置的特征进行聚合统计,例如,人们可以计算图像一个区域上的某个特定特征的平均值 (或最大值)。这些概要统计特征不仅具有低得多的维度 (相比使用所有提取得到的特征),同时还会改善结果(不容易过拟合)。这种聚合的操作就叫做池化 (pooling),有时也称为平均池化或者最大池化 (取决于计算池化的方法)。池化的不变性如果选择图像中的连续范围作为池化区域,并且只是池化相同(重复)的隐藏单元产生的特征,那么,这些

15、池化单元就具有平移不变性 。这就意味着即使图像经历了一个小的平移之后,依然会产生相同的 (池化的) 特征。形式化描述形式上,在获取到卷积特征后,就要确定池化区域的大小(假定为),来池化卷积特征。那么,把卷积特征划分到数个大小为的不相交区域上,然后用这些区域的平均(或最大)特征来获取池化后的卷积特征。这些池化后的特征便可以用来做分类。(四)白化为了使每个输入特征具有单位方差,可以直接使用作为缩放因子来缩放每个特征。具体地,定义白化后的数据如下:是数据经过PCA白化后的版本:中不同的特征之间不相关并且具有单位方差。白化与降维相结合: 如果想要得到经过白化后的数据,并且比初始输入维数更低,可以仅保留

16、中前个成分。当我们把PCA白化和正则化结合起来时,中最后的少量成分将总是接近于0,因而舍弃这些成分不会带来很大的问题。1) ZCA白化数据的协方差矩阵变为单位矩阵的方式并不唯一。具体地,如果是任意正交矩阵,即满足(说它正交不太严格,可以是旋转或反射矩阵), 那么仍然具有单位协方差。在ZCA白化中,令。我们定义ZCA白化的结果为:可以证明,对所有可能的,这种旋转使得尽可能地接近原始输入数据。当使用 ZCA白化时(不同于 PCA白化),我们通常保留数据的全部个维度,不尝试去降低它的维数。2) 正则化实践中需要实现PCA白化或ZCA白化时,有时一些特征值在数值上接近于0,这样在缩放步骤时我们除以将导

17、致除以一个接近0的值;这可能使数据上溢 (赋为大数值)或造成数值不稳定。因而在实践中,使用少量的正则化实现这个缩放过程,即在取平方根和倒数之前给特征值加上一个很小的常数:当在区间上时, 一般取值为。对图像来说, 这里加上,对输入图像也有一些平滑(或低通滤波)的作用。这样处理还能消除在图像的像素信息获取过程中产生的噪声,改善学习到的特征。ZCA 白化是一种数据预处理方法,它将数据从映射到。 事实证明这也是一种生物眼睛(视网膜)处理图像的粗糙模型。具体而言,当你的眼睛感知图像时,由于一幅图像中相邻的部分在亮度上十分相关,大多数临近的“像素”在眼中被感知为相近的值。因此,如果人眼需要分别传输每个像素

18、值(通过视觉神经)到大脑中,会非常不划算。取而代之的是,视网膜进行一个与ZCA中相似的去相关操作 (这是由视网膜上的ON-型和OFF-型光感受器细胞将光信号转变为神经信号完成的)。由此得到对输入图像的更低冗余的表示,并将它传输到大脑。l 提示:可以在PCA白化过程中同时降低数据的维度。这是一个很好的主意,因为这样可以大大提升算法的速度(减少了运算量和参数数目)。确定要保留的主成分数目有一个经验法则:即所保留的成分的总方差达到总样本方差的 99% 以上。l 注意: 在使用分类框架时,应该只基于练集上的数据计算PCA/ZCA白化矩阵。需要保存以下两个参数留待测试集合使用:(a)用于零均值化数据的平均值向量;(b)白化矩阵。测试集需要采用这两组保存的参数来进行相同的预处理。专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁