人工神经网络(II)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在确定隐层节点数时必须满足下列条件:
– 隐层节点数必须小于N-1(其中N为训练样本数), 否则,网络模型的系统误差与训练样本的特性无 关而趋于零,即建立的网络模型没有泛化能力, 也没有任何实用价值。同理可推得:输入层的节 点数(变量数)必须小于N-1。
– 训练样本数必须多于网络模型的连接权数,一般 为2~10倍,否则,样本必须分成几部分并采用 “轮流训练”的方法才可能得到可靠的神经网络 模型。
by 谢广明 , 2005~2006学年度第一学期
25
算法设计
网络模型的性能和泛化能力
– 训练神经网络的首要和根本任务是确保训练好的 网络模型对非训练样本具有好的泛化能力(推广 性),即有效逼近样本蕴含的内在规律,而不是 看网络模型对训练样本的拟合能力。
– 从存在性结论可知,即使每个训练样本的误差都 很小(可以为零),并不意味着建立的模型已逼 近训练样本所蕴含的规律。
其中序列初值任取
by 谢广明 , 2005~2006学年度第一学期
13
BP算法
梯度下降法
il j1,l(k1) il j1,l(k) E/ il j1,l(k)
P
il j1,l(k)
lj,p(k)yil,p1(k)
p1
lj,p(k) f'[x[ljy ,plj(,p k()kN )]l 1tm jl, ,p 1 p](fk')[xlljj ,p 1 m ((k k)),],ll M M 2 1 , ,1
第六章 人工神经网络(II)
Artificial Neural Networks ANN
by 谢广明 , 2005~2006学年度第一学期
1
内容
前向神经网络模型 前向神经网络用途 前向神经网络训练 BP算法
by 谢广明 , 2005~2006学年度第一学期
2
前向神经网络
多层前向网络 一个M层的多层前向网络可描述为: ①网络包含一个输入层(定义为第0层)和M-
果要比增加隐层数更容易实现。
– 对于没有隐层的神经网络模型,实际上就是一个线性或非 线性(取决于输出层采用线性或非线性转换函数型式)回 归模型。因此,一般认为,应将不含隐层的网络模型归入 回归分析中,技术已很成熟,没有必要在神经网络理论中 再讨论之。
by 谢广明 , 2005~2006学年度第一学期
by 谢广明 , 2005~2006学年度第一学期
7
前向神经网络用途
Bool 函数
– 任何bool函数都可以用一个单隐层的网络来表示 – 但是可能要求指数级的隐层单元个数
连续函数
– 每一个有界的连续函数都可以有一个两级的网络 以任意小的误差(在有限的范数下)逼近
任意函数
– 任意函数都可以被一个由三级的网络以任意精度 逼近
– 1974年,Werbos已提出了该方法 – 1982年,Paker完成了相似的工作 – UCSD PDP小组的Rumelhart、Hinton和
Williams1986年独立地给出了BP算法清楚而简单 的描述
by 谢广明 , 2005~2006学年度第一学期
11
ห้องสมุดไป่ตู้P算法
算法实施过程
– 根据输入输出状态维数决定网络的输入层和输出 层神经元的个数
非训练样本误差很接近训练样本误差或比其 小,一般可认为建立的网络模型已有效逼近 训练样本所蕴含的规律。
by 谢广明 , 2005~2006学年度第一学期
27
算法设计
因为训练样本的误差可以达到很小,因此, 用从总样本中随机抽取的一部分测试样本的 误差表示网络模型计算和预测所具有的精度 (网络性能)是合理的和可靠的。
通过训练样本的学习(训练)建立合理的BP神经网 络模型的过程,在国外被称为“艺术创造的过程”, 是一个复杂而又十分烦琐和困难的过程。
by 谢广明 , 2005~2006学年度第一学期
23
算法设计
学习率
– 学习率影响系统学习过程的稳定性。大的学习率 可能使网络权值每一次的修正量过大,甚至会导 致权值在修正过程中超出某个误差的极小值呈不 规则跳跃而不收敛;但过小的学习率导致学习时 间过长,不过能保证收敛于某个极小值。所以, 一般倾向选取较小的学习率以保证学习过程的收 敛性(稳定性),通常在0.01~0.8之间。
如果输出层节点也采用Sigmoid转换函数,输出变量 也必须作相应的预处理,否则,输出变量也可以不 做预处理。
预处理的方法有多种多样,各文献采用的公式也不 尽相同。预处理的数据训练完成后,网络输出的结 果要进行反变换才能得到实际值。
为保证建立的模型具有一定的外推能力,最好使数 据预处理后的值在0.2~0.8之间。
by 谢广明 , 2005~2006学年度第一学期
24
算法设计
初始连接权值
– 误差函数一般存在(很)多个局部极小点,不同 的网络初始权值直接决定了BP算法收敛于哪个局 部极小点或是全局极小点。
– 要求计算程序必须能够自由改变网络初始连接权 值。
– 由于Sigmoid转换函数的特性,一般要求初始权 值分布在-0.5~0.5之间比较有效。
– 合理隐层节点数应在综合考虑网络结构复杂程度和误差大 小的情况下用节点删除法和扩张法确定。
by 谢广明 , 2005~2006学年度第一学期
22
算法设计
迄今为止还没有构造性结论,即在给定有限个(训 练)样本的情况下,如何设计一个合理的BP网络模 型并通过向所给的有限个样本的学习(训练)来满 意地逼近样本所蕴含的规律(函数关系,不仅仅是 使训练样本的误差达到很小)的问题。
1个隐层,最后一个隐层称为输出层; ②第 l 层包含 N l 个神经元和一个阈值单元
(定义为每层的第0单元),输出层不含阈值 单元;
by 谢广明 , 2005~2006学年度第一学期
3
前向神经网络
③第l 1层第 i个单元到第个单元的权值表为
; l 1,l ij
④第 l 层( l>0)第 j 个(j >0)神经元的输
入定义为 ,输出定义 Nl1
xlj
y l1,l l1
ij
i
为 ylj f (xlj ) ,i 其0 中f (•)为隐单元激励函数,
常采用Sigmoid函数,即 f(x)[1expx)( ]1。输入
单元一般采用线性激励函数 f (x)x,阈值
单元的输出始终为1;
by 谢广明 , 2005~2006学年度第一学期
– 仅给出训练样本误差(通常是指均方根误差 RSME或均方误差、AAE或MAPE等)的大小而 不给出非训练样本误差的大小是没有任何意义的。
by 谢广明 , 2005~2006学年度第一学期
26
算法设计
分析模型泛化能力,应该也必须用非训练样 本误差的大小来表示和评价。
判断建立的模型是否已有效逼近样本所蕴含 的规律,最直接和客观的指标是从总样本中随 机抽取的非训练样本(检验样本和测试样本) 误差是否和训练样本的误差一样小或稍大。
m 1
by 谢广明 , 2005~2006学年度第一学期
14
BP算法
特点:
– 网络权重的调节上用的是梯度下降算法 – 容易推广到任意有向网络 – 训练的时候迭代的次数可能很多,慢 – 训练后使用网络会非常快
问题
– 收敛性和局部极小值 – 过拟和的问题:指网络训练精度很高,但推广检验样
本精度较差,也称为网络的泛化能力差
– 输出变量即为系统待分析的外生变量(系统性能 指标或因变量),可以是一个,也可以是多个。
– 一般将一个具有多个输出的网络模型转化为多个 具有一个输出的网络模型效果会更好,训练也更 方便。
by 谢广明 , 2005~2006学年度第一学期
16
算法设计
样本数据收集和整理分组
– 采用BP神经网络方法建模的首要和前提条件是有 足够多典型性好和精度高的样本。
4
前向神经网络
x1
o1
x2
o2
…… xn
输入层



……
om
隐藏层
输出层
by 谢广明 , 2005~2006学年度第一学期
5
前向神经网络用途
弄这么个东西有用么? 怎么用呢?
by 谢广明 , 2005~2006学年度第一学期
6
前向神经网络用途
用途非常广泛
– 非线性映照能力:神经网络能以任意精度逼近任何非线性 连续函数。在建模过程中的许多问题正是具有高度的非线 性。
– 为训练过程使之不发生“过拟合”和评价建立的 网络模型的性能和泛化能力,必须将收集到的数 据随机分成训练样本、检验样本(10%以上)和 测试样本(10%以上)3部分。
– 此外,数据分组时还应尽可能考虑样本模式间的 平衡。
by 谢广明 , 2005~2006学年度第一学期
17
算法设计
由于采用Sigmoid转换函数,为提高训练速度和灵 敏性以及有效避开Sigmoid函数的饱和区,一般要求 输入数据的值在0~1之间。因此,要对输入数据进行 预处理。
– 并行分布处理方式:在神经网络中信息是分布储存和并行 处理的,这使它具有很强的容错性和很快的处理速度。
– 自学习和自适应能力:神经网络在训练时,能从输入、输 出的数据中提取出规律性的知识,记忆于网络的权值中, 并具有泛化能力,即将这组权值应用于一般情形的能力。 神经网络的学习也可以在线进行。
– 多变量系统:神经网络的输入和输出变量的数目是任意的, 对单变量系统与多变量系统提供了一种通用的描述方式, 不必考虑各子系统间的解耦问题。
9
前向神经网络训练
本质:优化如下目标函数
EpP 1Ep1 2pP 1N jM 1 1(yM j,p 1tj,p)2
其中P为样本数, t j , p 为第p个样本的第j个输出
分量。是理想输出和实际输出的误差函数
by 谢广明 , 2005~2006学年度第一学期
10
BP算法
BP算法---前向网络的训练算法 BP算法的出现
19
算法设计
隐层节点数
– 隐层节点数的选择非常重要,它不仅对建立的神经网络模 型的性能影响很大,而且是训练时出现“过拟合”的直接 原因,但是目前理论上还没有一种科学的和普遍的确定方 法。
– 目前多数文献中提出的确定隐层节点数的计算公式都是针 对训练样本任意多的情况,而且多数是针对最不利的情况, 一般工程实践中很难满足,不宜采用。
by 谢广明 , 2005~2006学年度第一学期
15
算法设计
输入/输出变量的确定及其数据的预处理
– 网络的输入变量即为待分析系统的内生变量(影 响因子或自变量)数,一般根据专业知识确定。
– 若输入变量较多,一般可通过主成份分析方法压 减输入变量,也可根据剔除某一变量引起的系统 误差与原系统误差的比值的大小来压减输入变量。
by 谢广明 , 2005~2006学年度第一学期
21
算法设计
折衷选择
– 若隐层节点数太少,网络可能根本不能训练或网络性能很 差;
– 若隐层节点数太多,虽然可使网络的系统误差减小,但一 方面使网络训练时间延长,另一方面,训练容易陷入局部 极小点而得不到最优点,也是训练时出现“过拟合”的内 在原因。
– 确定隐层节点数的最基本原则是:在满足精度要求的前提 下取尽可能紧凑的结构,即取尽可能少的隐层节点数。
– 研究表明,隐层节点数不仅与输入/输出层的节点数有关, 更与需解决的问题的复杂程度和转换函数的型式以及样本 数据的特性等因素有关。
by 谢广明 , 2005~2006学年度第一学期
20
算法设计
by 谢广明 , 2005~2006学年度第一学期
8
前向神经网络训练
神经网络的训练
– 给定一组样本,即一组神经网络的输入输出,不 断调整网络中的权重使得网络最终能够很好的满 足样本所给定的输入输出关系。
– 最基本的算法: BP算法 – 其它方法
Hebb学习 概率式学习 竞争学习
by 谢广明 , 2005~2006学年度第一学期
– 根据问题特点和经验决定隐层层数和神经元个数 – 一般选择 M=2 – 设定网络的初始参数 – 按照梯度下降法极小化目标函数,逐步调整权重
矩阵直到满意为止
by 谢广明 , 2005~2006学年度第一学期
12
梯度下降算法
求解函数优化问题 minf (x) 可按照如下公式迭代
x ( k 1 ) x ( k ) f( x ( k ))k ,0 , 1 ,...
by 谢广明 , 2005~2006学年度第一学期
18
算法设计
隐层数
– 一般认为,增加隐层数可以降低网络误差(也有文献认为 不一定能有效降低),提高精度,但也使网络复杂化,从 而增加了网络的训练时间和出现“过拟合”的倾向。
– 应优先考虑3层BP网络(即有1个隐层)。 – 一般地,靠增加隐层节点数来获得较低的误差,其训练效
相关文档
最新文档