利用训练样本对神经网络进行训练

来源:电脑网络 时间:2016-07-25 13:45:02 阅读:

【www.zhuodaoren.com--电脑网络】

利用训练样本对神经网络进行训练(一)
神经网络基本知识

(一)三层神经网络

1) 该模型的参数通过两个步骤训练获得:在该网络的第一层,将输入 映射

至隐藏单元激活量 的权值

可以通过稀疏自编码器训练过程获得。

可以通过 logistic 在第二层,将隐藏单元 映射至输出

的权值

回归或 softmax 回归训练获得。

2) 在描述上述过程时,假设采用了“替代 (Replacement)”表示而不是“级联

(Concatenation)”表示。在替代表示中,logistic 分类器所看到的训练样本格式为

;而在级联表示中,分类器所看到的训练样本格式。在级联表示神经网络中,输入值

也直接被输入至 logistic 分类器。

3) 在训练获得模型最初参数(利用自动编码器训练第一层,利用

logistic/softmax 回归训练第二层)之后,可以进一步修正模型参数,进而降低训练误差。具体来说,可以对参数进行微调,在现有参数的基础上采用梯度下降或者 L-BFGS 来降低已标注样本集

上的训练误差。

 微调的作用在于,已标注数据集也可以用来修正权值

隐藏单元所提取的特征 做进一步调整。 ,这样可以对

 对于微调来说,级联表示相对于替代表示几乎没有优势。因此,如果需

要开展微调,通常使用替代表示的网络。但是如果不开展微调,级联表示的效果有时候会好得多。

 通常仅在有大量已标注训练数据的情况下使用微调。在这样的情况下,

微调能显著提升分类器性能。如果有大量未标注数据集(用于非监督特征学习/预训练),却只有相对较少的已标注训练集,微调的作用非常有限。

(二)深度网络

深度神经网络,即含有多个隐藏层的神经网络。通过引入深度网络,可以计算更多复杂的输入特征。因为每一个隐藏层可以对上一层的输出进行非线性变换,因此深度神经网络拥有比“浅层”网络更加优异的表达能力。

1. 深度神经网络的优势

1) 当训练深度网络的时候,每一层隐层应该使用非线性的激活函数

。这

是因为多层的线性函数组合在一起本质上也只有线性函数的表达能力(例如,将多个线性方程组合在一起仅仅产生另一个线性方程)。因此,在激活函数是线性的情况下,相比于单隐藏层神经网络,包含多隐藏层的深度网络并没有增加表达能力。

2) 深度网络最主要的优势在于,它能以更加紧凑简洁的方式来表达比浅层网络

大得多的函数集合。即可以找到一些函数,这些函数可以用

层网络简洁地表达出来(这里的简洁是指隐层单元的数目只需与输入单元数目呈多项式关系)。但是对于一个只有

【利用训练样本对神经网络进行训练】

层的网络而言,除非它使用与输入单元数目呈指数关系的隐层单元数目,否则不能简洁表达这些函数。

3) 当处理对象是图像时,使用深度网络,能够学习到“部分-整体”的分解关系。例如,第一层可以学习如何将图像中的像素组合在一起来检测边缘,第二层可以将边缘组合起来检测更长的轮廓或者简单的“目标的部件”,在更深的层次上,可以将这些轮廓进一步组合起来以检测更为复杂的特征。

这种分层计算很好地模仿了大脑皮层对输入信息的处理方式。视觉图像在人脑中是分多个阶段进行处理的,首先是进入大脑皮层的“V1”区,然后紧跟着进入大脑皮层“V2”区,以此类推。【利用训练样本对神经网络进行训练】

2. 训练深度网络的困难

目前主要使用的学习算法是:首先随机初始化深度网络的权重,然后使用有监督的目标函数在有标签的训练集

上进行训练。其中通过使用梯度下降法来降低训练误差,这种方法通常不是十分凑效。

1) 数据获取问题

使用上面提到的方法,需要依赖于有标签的数据才能进行训练。然而有标签的数据通常是稀缺的,因此对于许多问题,我们很难获得足够多的样本来拟合一个复杂模型的参数。例如,考虑到深度网络具有强大的表达能力,在不充足的数据上进行训练将会导致过拟合。

2) 局部极值问题

使用监督学习方法来对浅层网络(只有一个隐藏层)进行训练通常能够使参数收敛到合理的范围内。但是当用这种方法来训练深度网络的时候,并不能取得很好的效果。特别的,使用监督学习方法训练神经网络时,通常会涉及到求解一个高度非凸的优化问题。对深度网络而言,这种非凸优化问题的搜索区域中充斥着大量“坏”的局部极值,因而使用梯度下降法(或者像共轭梯度下降法,L-BFGS等方法)效果并不好。

3) 梯度弥散问题

梯度下降法(以及相关的L-BFGS算法等)在使用随机初始化权重的深度网络上效果不好的技术原因是:梯度会变得非常小。具体而言,当使用反向传播方法计算导数的时候,随着网络的深度的增加,反向传播的梯度(从输出层到网络的最初几层)的幅度值会急剧地减小。结果就造成了整体的损失函数相对于最初几层的权重的导数非常小。这样,当使用梯度下降法的时候,最初几层的权重变化非常缓慢,以至于它们不能够从样本中进行有效的学习。这种问题通常被称为“梯度的弥散”.

与梯度弥散问题紧密相关的问题是:当神经网络中的最后几层含有足够数量神经元的时候,可能单独这几层就足以对有标签数据进行建模,而不用最初几层的帮助。因此,对所有层都使用随机初始化的方法训练得到的整个网络的性能将会与训练得到的浅层网络(仅由深度网络的最后几层组成的浅层网络)的性能相似。

3.逐层贪婪训练方法

逐层贪婪训练方法是训练深度网络取得一定成功的一种方法。简单来说,逐层贪婪算法的主要思路是:

 每次只训练网络中的一层,即首先训练一个只含一个隐藏层的网络,仅当这

层网络训练结束之后才开始训练一个有两个隐藏层的网络,以此类推。  在每一步中,把已经训练好的前

层固定,然后增加第

层(也就是

将已经训练好的前

的输出作为输入)。

 每一层的训练可以是有监督的(例如,将每一步的分类误差作为目标函数),

但更通常使用无监督方法(例如自动编码器)。

 这些各层单独训练所得到的权重被用来初始化最终(或者说全部)的深度网

络的权重,然后对整个网络进行“微调”(即把所有层放在一起来优化有标签训练集上的训练误差)。

逐层贪婪的训练方法取得成功要归功于以下两方面:

 数据获取

虽然获取有标签数据的代价是昂贵的,但获取大量的无标签数据是容易的。自学

习方法的潜力在于它能通过使用大量的无标签数据来学习到更好的模型。具体而言,该方法使用无标签数据来学习得到所有层(不包括用于预测标签的最终分类层) 的最佳初始权重。相比纯监督学习方法,这种自学习方法能够利用多得多的数据,并且能够学习和发现数据中存在的模式。因此该方法通常能够提高分类器的性能。

 更好的局部极值

当用无标签数据训练完网络后,相比于随机初始化而言,各层初始权重会位于参数空间中较好的位置上。然后我们可以从这些位置出发进一步微调权重。从经验上来说,以这些位置为起点开始梯度下降更有可能收敛到比较好的局部极值点,这是因为无标签数据已经提供了大量输入数据中包含的模式的先验信息。

(三)卷积特征提取和池化

1)全联通网络

把输入层和隐含层进行“全连接”的设计,从整幅图像中计算特征,从计算的角度来讲,对相对较小的图像是可行的。但是,如果是更大的图像,要通过全联通网络的这种方法来学习整幅图像上的特征,将是非常耗时。

2)部分联通网络

解决以上问题的一种简单方法是对隐含单元和输入单元间的连接加以限制:每个隐含单元仅仅只能连接输入单元的一部分。例如,每个隐含单元仅仅连接输入图像的一小片相邻区域。

网络部分连通的思想,也是受启发于生物学里面的视觉系统结构。视觉皮层的神经元就是局部接受信息的(即这些神经元只响应某些特定区域的刺激)。

3)卷积

自然图像有其固有特性,也就是说,图像的一部分的统计特性与其他部分是一样的。这也意味着我们在这一部分学习的特征也能用在另一部分上,所以对于这个图像上的所有位置,都能使用同样的学习特征。

当从一个大尺寸图像中随机选取一小块,比如说 8x8 作为样本,并且从这个小块样本中学习到了一些特征,这时可以把从这个 8x8 样本中学习到的特征作为探测器,应用到这个图像的任意地方中去。特别是,可以用从 8x8 样本中所学习到的特征跟原本的大尺寸图像作卷积,从而对这个大尺寸图像上的任一位置获得一个不同特征的激活值。

实例:假设已经从一个 96x96 的图像中学习到了它的一个 8x8 的样本所具有的特征,假设这是由有 100 个隐含单元的自编码完成的。为了得到卷积特征,需要对 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) 是可视层单元和隐含单元之间的权重和偏差值。对于每一个

大小的小图像 xs,计算出对应的值 fs = σ(W(1)xs + b(1)),对这些 fconvolved 值做卷积,就可以得到【利用训练样本对神经网络进行训练】

积后的特征的矩阵。

【利用训练样本对神经网络进行训练】

4)池化

在通过卷积获得了特征 之后,下一步是要利用这些特征去做分类。理论上讲,可以用所有提取得到的特征去训练分类器,例如 softmax 分类器,但这样做面临计算量的挑战。例如:对于一个 96X96 像素的图像,假设已经学习得到了400个定义在8X8输入上的特征,每一个特征和图像卷积都会得到一个 (96 − 8 + 1) * (96 − 8 + 1) = 7921 维的卷积特征,由于有 400 个特征,所以每个样例都会得到一个7921 * 400 = 3,168,400 维的卷积特征向量。学习一个拥有超过 3 百万特征输入的分类器十分不便,并且容易出现过拟合。【利用训练样本对神经网络进行训练】

为了解决这个问题,即为了描述大的图像,一个很自然的想法就是对不同位置的特征进行聚合统计,例如,人们可以计算图像一个区域上的某个特定特征的平均值 (或最大值)。这些概要统计特征不仅具有低得多的维度 (相比使用所有提取得到的特征),同时还会改善结果(不容易过拟合)。这种聚合的操作就叫做池化 (pooling),有时也称为平均池化或者最大池化 (取决于计算池化的方法)。

池化的不变性

如果选择图像中的连续范围作为池化区域,并且只是池化相同(重复)的隐藏单元产生的特征,那么,这些池化单元就具有平移不变性 。这就意味着即使图像经历了一个小的平移之后,依然会产生相同的 (池化的) 特征。

形式化描述

形式上,在获取到卷积特征后,就要确定池化区域的大小(

假定为),来池化卷积特征。那么,把卷积特征划分到数个大小为

的不相交区域上,然后用这些区域的平均(或最大)特征来获取池化后的卷积特征。这些池化后的特征便可以用来做分类。

(四)白化

为了使每个输入特征具有单位方差,可以直接使用

放每个特征

。具体地,定义白化后的数据

作为缩放因子来缩如下: 个卷

利用训练样本对神经网络进行训练(二)
神经网络预测方法

(4)神经网络的预测方法

神经网络(Neural Network)是由许多并行的、高度相关的计算处理单元组成, 这些单元类似生物神经系统的神经元。虽然单个的神经元的结构十分简单,但是, 由大量神经元相互连接所构成的神经元系统所实现的行为是十分丰富的。与其它 方法相比,神经网络具有并行计算和白适应的学习能力㈤。神经网络系统是一 个非线性动力学系统计算系统。神经网络模型有许多种类,经常使用的有BP网 络、RBF网络、Hopfield网络、Kohonen网络、BAM网络等等,近年又出现了

神经网络与模糊方法、遗传算法相结合的趋势。浚方法已在交通流预测中得到了 应用。在交通流预测中应用最早使用最多的是反传BP网络。

应用神经网络进行交通流预测的步骤如下:

第一步,根据实际情况,选择适当的网络结构作为预测工具,根据已确定的预测 因子和被预测量,决定网络的输入和输出,进而决定网络的结构(网络 各层次的节点数)

第二步,准备样本数据和样本的规范化处理,样本分为训练样本和检验样本; 第三步,利用训练样本是对网络进行训练和学习;

第四步,利用检验样本对网络训练结构进行检验,验证网络的泛化能力; 第五步,用训练好的网络,根据已知的数据进行实际预测。

与传统的预测方法相比,神经网络的预测方法的预测精度要好一些。这主要 是得益于神经网络自身的特点。神经网络擅长描述具有较强非线性、难于用精确 数学模型表达的复杂系统的特性,并且具有自适应能力。由于神经网络算法是离 线学习,在线预测,所以几乎没有延时,实时性很好。此外,神经网络对预测因 子的选择也较为灵活,任何认为与待预测交通流量有关的数据均可纳入输入向量 中。但是,神经网络也有一些弱点,主要表现在以下几个方面:

三、由于使用大量的样本进行训练,所以神经网络的学习训练过程收敛

较慢,容易产生“过度学习”的情况,陷入对样本值的机械记忆而降低了泛化能 力。因此,应用神经网络目前很难做到在线学习,只能将学习与预测分离成两个 阶段(一个离线、一个在线)来完成。

四、神经网络的训练与学习是基于训练样本所隐含的预测因子与被预测

量的因果关系,这种学习不能反映外部环境的变化及其对预测的影响。因此,当 预测对象所处的外部环境发生改变,或以某一路段数据训练好的神经网络去预测 其它路段(口)的交通流量时,预测的准确率就会大大降低,错误率明显上升。 这是由单一的神经网络的有限学习能力所决定的,表明经过训练的神经网络并不 具有良好的“便携性”。

五、截止到目前,各类文献所见的基于神经网络的短期交通流的预测,最小 的预测时间跨度ht.15rain的水平上,对更小的预测周期,神经网络预测的适应 性、精度如何,还有待检验。

利用训练样本对神经网络进行训练(三)
神经网络训练样本优化方法研究

  【摘要】神经网络训练样本的选择具有随机性,大量的相似样本不但增加了训练时间,而且削弱了网络的泛化能力、降低了预测的精度。神经网络训练样本的质量对网络预测精度存在较大影响。合理的选择训练样本集对于提高网络的预测精度和泛化能力有重要意义。本文分别分析了训练样本质量与网络预测误差及网络泛化能力的关系,提出了以聚类法优化神经网训练样本,并以某风场数据实例验证了本方法的有效性。

  【关键词】神经网络;训练样本;优化;预测
  伴随着集成技术的发展,神经网络正日益受到科研人员的关注。并作为一个有力工具广泛应用于预测领域。ANN在预测应用中普适的流程一般是:①选择适应实际情况的网络结构;②建立神经网络模型;③将采集的数据样本分成两部分,一部分作为训练样本,另一部分作为检验样本;④选择学习算法并训练权值;⑤检验网络模型的可行性和有效性。
  网络结构、训练样本质量对网络的预测精度及泛化能力均存在一定的影响。但训练样本数据是我们在建立网络之前唯一所知的, Partridg对于BP网的研究表明,网络泛化能力受样本质量的影响超过了网络结构的影响。
  1.训练样本质量与神经网泛化能力及预测误差的关系
  1.1 样本质量与泛化能力的关系
  神经网络的泛化能力受样本质量的影响较大,因为样品的质量反映了训练样本的总体水平和提供的信息。样本的选取将决定样本质量的优劣。网络只有经过可以充分表征所研究问题的样本的训练后,通过合理的学习机制才可使其具有泛化能力。同时通过有目的的采样可提高训练样本的质量,改善网络的泛化能力。当前主要采取了主动学习的方法。“询问”为现在主动学习的一般实现方式,即在输入定义域内按某种概率取一点x,判断该点是否位于不确定区,如果是,则抛弃该点;否则“询问”该点输出y,并把(x,y)加入样本集进行训练,直至采样到足够的样本。
  1.2 样本质量与预测误差间的关系
  实际系统可描述为理想函数:
  (1)
  式中,X为待预报变量。
  式(1)也可以写作自回归的形式:
   (2)
  式中,m为自回归阶数,也就是实际系统空间维数。
  人工神经网络是一种非线性自回归模型:
   (3)
  式中,n为嵌入维数,也就是人工神经网络输入神经元数。式(3)是一个单步预报模型,多步预报的情况也是类似的,人工神经网络预报的误差可以估计为:
  (4)
  式中,e为预报误差;em为模型误差,它由预报中所建回归模型与实际系统的差异引起的;et为最终的训练误差;er为人工神经网络训练和预报过程中引入的随机误差。et和er存在是不可避免的,而em可由式(2)和式(3)作出如下估计:
  (5)
  式中,ef为函数误差,也就是式(2)和式(间的差异引起的误差;ed为维数误差,明显地:
  (6)
  为定义在泛函空间的范数:
  ANN中通过对训练样本学习而得到的网络权系数决定着。若是样本集包括了实际系统的所有信息,则为零。因此:
   (7)
  反映了样本质量,它是整个样本空间和训练样本所张成空间之间的范数,因此,式(7)正好得出了预报误差和训练样本质量之间的关系。
  2.样本优化方法
  神经网络具有很强的自适应性,但并不是对于任何的处理数据都没有问题。网络训练样本的质量影响着网络的性能。这一点在风速预测研究中尤为明显,由于风速受诸多因子影响,而这些因子与风速呈复杂的非线性关系,这无疑降低了聚类的准确度。故而在进行训练样本聚类分析前进行因子分析,以降低数据维数,为聚类分析做铺垫。
  2.1 因子分析
  因子分析(Factor Analysis)是处理多指标样本数据,将有一个复杂的关系的样本分成几个较小的综合因素。是一种常用作降维处理的多变量统计分析方法。这里我们仅给出用于BP神经网训练因子分析的步骤。主要处理过程如图1所示:
  图1 因子分析流程图
  其中,旋转因子载荷阵
   (8)
  因子得分计算公式为
  (9)
  2.2 聚类分析
  聚类分析(Clustering Analysis)是一种典型的数据挖掘方法,它根据研究对象的特点把性质相近的个体归为一类,使样本具有同类同质,异类异质的特点。由于聚类分析对于低维数据的分类较为有效,所以在实际应用中我们通常在进行聚类分析之前,先将训练样本进行因子分析,以降低数据维数,产生新的不相关变量。
  把n个样本看成是m维空间中的n个点,那么两个样本间的相似度用di,j度量di,j为样品Xi,Xj的距离,一般要求是:
  (l),对任意i,j;当di,j=0;
  (2)di,j=dj,i,对任意i,j;
  (3),对任意i,j,k(三角不等式)。
  由因子分析所得的因子得分计算各样本间的欧式距离,来进行聚类分析,欧氏距离公式为:
  (10)
  个样本通过聚类,被分成共k个小类,视n的大小,以一定比例选取(m保证训练样本的代表性。一般聚类算法只擅长处理低维的数据,而因子分析之后得到的公因子数少于原指标数,对指标进行了降维处理,可使聚类结果更精确可靠。通过以上分析处理,可使原始大样本数据Xnp优化为训练数据Fmq。
  3.实例分析
  在MATLAB仿真平台上利用BP神经网络建立风速预测模型的应用实例。依据实际采集的风速数据设计BP神经网络结构为4-15-1,即4个输入节点,15个隐层节点,1个输出节点。BP神经网模型如图2所示。   表1 某风场历史风速及气象数据
  风速(m/s) 温度(℃) 湿度(%) 风向
  5.97 11 45 北
  7.74 11 60 东
  5.42 9 70 东
  5.25 4 65 东北
  4.63 4 45 西
  6.42 3 35 西北
  图2 BP神经元模型
  图3 网络映射对比
  隐层激发函数选用Sigmoid函数,输出层选用Purelin函数。训练样本分别用随机选择法和本文算法选择并训练得到两个神经网络模型用于风速预测建模,网络输出经过反归一化处理后与实际曲线进行比较,网络1为用随机选择法得到的模型,网络2为用本文算法得到的模型。
  神经网络训练样本是选择某风场实测历史风速数据及天气信息,如表1所示。不同数据选择方式下网络预测曲线如图3所示。
  图3比较可以看出,运用本文提出的算法从大样本集中选择一定量的神经网络训练样本,预测的精度得到提高。说明训练样本的选择满足样本的优选原则;而运用随机选择法随机的从样本集中选择数据,经网络学习后,网络的输出与实际曲线拟合程度较差;相比之下说明了本文算法的优越性。
  4.结论
  本文在分析训练样本质量和网络泛化能力以及预测误差之间的关系基础上,提出了采用聚类方法对训练样本进行优化,并结合实际预测实例证明了本文讨论方法的有效性。实验证明,训练样本的质量与预测精度有着必然的关系,对神经网络训练样本进行优化,不但提高了建模效率,还增强了网络的泛化能力,提高了预测精度。
  参考文献
  [1]魏海坤.神经网络结构设计的理论与方法[M].国防工业出版社,2005.
  [2]PeiShu.ForeeastingTheoryBasedonArtifieialNeuralNetworkandApplieation:Ph.D.thesis.Xi’an:Xi’anJiaotongUniversity,1994・
  [3]PARTRIDGED.NetworkGeneralizationDifferencesQuantified. NeuralNetworks,1996,9(2):263-271.
  [4]ChakerbortyK,MehrotraK,MohanCK.ForeeastingtheBehaviorofMultivariateTimSeriesUsingNeuralNetworks.NuralNetworks,1992,5:961-970.
  [5]何勇,项利国.基于模糊聚类的BP神经网络模型研究及应用[J].系统工程理论与实践,2004,24(2):79-82.
  [6]阎平凡.智能信息处理与神经网络研究[J].数据采集与处理,2001.3(1):10-13.
  [7]袁志发,周静芋.多元统计分析[M].北京:科学出版社, 2002.
  [8]吕佳.可能性C-Means聚类算法的仿真实验[J].重庆师范大学学报(自然科学版),2005,22(3):129-132.
  [9]陈金山,韦岗.遗传+模糊C-均值混合聚类算法[J].电子与信息学报,2002,24(2):210-215.
  基金项目:本文为新疆电网“友好型”大规模风光互补发电并网的有功调控关键技术开发与应用项目(项目编号:201404091225)。
  作者简介:
  吕光建(1989―),男,山东临沂人,新疆大学电气工程学院硕士研究生在读,研究方向:电力系统及其自动化。
  张新燕(1964―),女,新疆乌鲁木齐人,工学博士,教授,从事电力系统及其自动化方面的研究和教学工作。

本文来源:http://www.zhuodaoren.com/shenghuo293976/

推荐访问:bp神经网络 神经网络算法
扩展阅读文章
热门阅读文章