神经网络预测法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
神经网络的结构
前馈神经网络
输入--输出关系?
递归神经网络
特点:神经元之间 有反馈连接
单个神经元
x1
x2
多输入
w1 权值 w2
n
wn
a
f
单输出
xn
输入-输出关系
n
净输入 n wi xi wT x i 1
a f (n) f (wT x)
w1
w2
其中,w
BP神经网络用于预测,分类
创建/训练
产生训练集 /测试集
BP网络 创建/训练 RBF网络
仿真测试 性能评价
创建/训练
训练集和
PNN网络 { p1, t1} { p2, t2} {pQ,tQ }
测试集随 机产生
1、产生训练集/测试集:(P_tain,T_train),(P_test, T_test)
突触
突触
神经元与神经元之间如何 相互作用(传递信息)?
依赖于突触的联接!突触的联接 会受外界信息的影响或自身生长 过程的影响而变化。正是通过神 经元及其突触联接的可变性,使 得大脑具有学习、记忆和认知等 各种智能。
连接权值w对应于突触
完成输入-输出的非线性映射,有三个关键
连接权值 求和单元 激活函数
Fx= Ee2 = Et – a2 Fx= EeTe = Et – aTt – a
w(k 1) w(k) F
w
梯度下降法:权值阈值的调整沿着误差函数下降 最快的方向——负梯度方向
BP网络的学习算法(梯度下降法)
w(k 1) w(k) F
数学建模系列讲座
基于神经网络的预测与分类
万敏 理学院
一、有导师学习神经网络的原理; matlab实现; BP、RBF在预测、分类中的应用; PNN在分类中的应用
二、无导师学习神经网络的原理; matlab实现; 竞争神经网络、SOFM在分类、聚类中的应用
人工神经网络产生背景
机器智能
研究怎样用机器(计算机)模仿人脑 从事推理、设计、思考、学习等思维活动, 以解决和处理较复杂的问题。
学习好以后的网络进行预测、分类等等
下面将给出三种典型的有导师学习的神经网 络:BP,RBF,PNN
BP(反向传播)神经网络原理
一、结构
1、多层前馈网络: x1
j
前、后层之间各神经元 x2
实现全联接;同一层的
误差反向传播(学习算法)
i
k
-+
神经元之间无联接。
xn
M wij
q wki
L
输入层 隐含层 输出层
将样本分为训练集和测试集,训练样本用于网络训练(学习),
测试样本用于测试网络的泛化能力。一般,训练集样本数量占总
样本数量的2/3-3/4为宜,剩余的1/4-1/3作为测试集。
要分析网络模型的泛化能力,应该也必须用非训练 样本(称为测试样本)误差的大小来表示和评价,这也 是将总样本分成训练样本和非训练样本主要原因之一。 最直接和客观的指标是从总样本中随机抽取的非训练样 本(测试样本)误差是否和训练样本的误差一样小或稍 大。非训练样本误差很接近训练样本误差或比其小,一 般可认为建立的网络模型已有效逼近训练样本所蕴含的 规律,否则,若相差很多(如几倍、几十倍甚至上千倍) 就说明建立的网络模型并没有有效逼近训练样本所蕴含 的规律,而只是在这些训练样本点上逼近而已。
tr:训练记录,包括迭代次数和性能
Y: 网络输出矩阵
E: 网络误差向量
训练好的BP神经网络,
权值不再改变
BP神经网络的Matlab工具箱函数
3、BP神经网络的仿真函数: 函数sim用于利用训练好的BP网络进行仿真预测,其
调用格式为:
[Y, E, Perf] = sim (net, P)
Net: 训练好的BP神经网络,train得到的网络 P:输入向量/矩阵,每行对应于一个样本的输入向量 Y: 网络输出向量/矩阵,每行对应于该样本的预测输出 E: 网络误差向量 Perf: 网络的性能
x1
多输入 x2
w1 权值 w2
wn
n 阈值
激活函数
a
f
单输出
xn
输入-输出关系
n
净输入 n wi xi wT x i 1
a f (n) f (wT x)
w1
w2
w 其中,
wn
1
x1
x2
x
训练函数确定算法 的框架(全局), 学习函数确定权值
PF:性能函数(默认值为mse均方误差函数)
的调整(局部)
例
样本:{p1, t1}, {p2, t2}, …, {p50, t50}
p1=[0.1,0.2], t1=0.7; p2=[0.98, 0.75], t2=0.8;
……
p50=[0.87, 0.6], t50=0.2
a1
1 s1 s1
xR
输入层
隐含层
输入-输出关系:
n f 2
2
a2 s2
s2 s2
隐含层
a f W , p
n3 1
f13
a12
n f3
3
a
2 2
22
n f 3 s3
3 s3
a2 s2
输出层
人工神经网络
一、网络结构
1、输入神经元数,输出神经元个数 2、隐层数,每个隐层中神经元个数 3、每个神经元的激活函数f
xn
常见的几类激活函数
这些非线性函数具有两个显著的特征,一是 突变性,二是饱和性,这正是为了模拟神经 细胞兴奋过程中所产生的神经冲动以及疲劳 等特性
人工神经网络
人工神经网络=神经元+连接
神经元
连接
神经元
神经网络分类 •无反馈网络:前馈神经网络 •有反馈网络:递归神经网络
j1
R
ni wij p j j 1
a f W T p
Байду номын сангаас 权值, 求和,激活函数
多层前馈神经网络
x1 w11
w12 w13
n f 1 1 a11 11
n f2 2 a12 11
w21
x2
w22
w23
n f1
1
a
1 2
22
n f2
2
a
2 2
22
wR1 wR 2
wR3
n f 1 s1
BP神经网络的Matlab工具箱函数
2、BP神经网络训练函数:
函数train用于训练已经创建好的BP神经网络,其调 用格式为:
[net, tr, Y, E] = train(net, P, T)
训练前的网络,
newff产生的BP
网络
P:输入矩阵,每行对应于一个样本的输入向量
T:输出矩阵,每行对应于该样本的期望输出
信息流
2、输入输出关系: a f W , x
激活函数通常采用S形函数,如logsig,tansig函数;输出
层激活函数多采用purelin函数。
3、理论上,具有一个隐含层的BP网络可以以任意精度
逼近任意非线性函数。
二、BP网络的学习算法
训练样本 { p1, t 1} { p2, t 2} {pQ,tQ } BP网络的学习算法是典型的有导师学习算法:
输入-输出关系
p
a
神经网络
a f (W , p)
二、前馈神经网络的学习
这类网络模型 怎样实现分类、识别、
预测等智能行为?
通过学习!改变连接权值W! 通过样本更新权值和阈值
以识别苹果和香蕉为例
期望输出
训练样本:{ p1, t 1} { p2, t 2} {pQ,tQ }
输入
关键:调整权值
w
第m 层的灵 敏度
Weight Update
Wmk + 1 = Wmk – smam –1T bmk + 1 = bmk – sm
误差反向传播
s M 2 F M (n M )(t a)
s m F M (n m ) W m1 s T m1 m = M – 1 2 1
和阈值b,逐渐减小误差,直至满足精度要求。
学习过程:通过样本更新权值和阈值
输出目标
训练样本 { p1, t 1} { p2, t 2} {pQ,tQ }
输入
p
神经网络
a
a f (W , p)
W(old)
W(new)
学习
网络的学习:通过样本不断调整权值
学习好以后的网络:权值不再改变,所学的知 识存储在权值中
如何创建一个三层BP神经网络学习样本?设隐含层
神经元个数为6.
net=newff(P,T,6)
网络结构:2-6-1
P=[0.1,0.2; 0.98, 0.75;…0.87, 0.6;]%每行为一样本的输入
T=[0.7; 0.8;…0.2;]%每行为对应样本的期望输出
Net=newff(P,T,6,{tansig, purelin}, trainlm, lerangdm, mse)
Forward Propagation
a0 = p
am + 1 = f m+ 1 Wm + 1am + bm+ 1
m = 0 2 M – 1
a = aM
2、误差反向传播
训练样本: {p1, t1} {p2, t2} {pQ,tQ }
均方误差(单输出)
均方误差(多输出)
将样本输入神经网络,得到网络的实际输出,若 输出值与期望输出之间的误差不满足精度要求, 则从输出层反向传播该误差,从而调整权值及阈 值,使得网络的输出和期望输出间的误差逐渐减 小,直至满足精度要求。 学习过程:
信号前向传播+误差反向传播
二、BP网络的学习
1、信号前向传播
p
BP神经网络
a
a f (W , p)
人工神经网络 是机器智能的一部分,它模拟大脑的神经
系统,更简单的说,就是人脑神经系统的一 个数学模型
大脑神经系统
大脑内约含1000亿个神经元 神经系统是由这些神经元经过高 度的组织与相互作用而构成的复 杂的网络
特征:神经元+相互作用
神经元模型
突触 突触
突触
x1
突触是可变的
w1
x2 w2
a
xn
wn 神经元模型
针对上述问题,国内外已提出不少有效的改 进算法,其中基于LM的改进算法是较常用的一 种方法。
基于Levenberg-Marquardt法的BP改进算法
Levenberg-Marquardt法实际上是梯度下降法和牛顿 法的结合,它的优点在于网络权值数目较少时收敛非 常迅速。应用Levenberg-Marquardt优化算法比传统的 BP及其它改进算法(如共轭梯度法,附加动量法、自 适应调整法及拟牛顿法等)迭代次数少,收敛速度快, 精确度高。但对于复杂问题,需要更大的存储空间
MATLAB中的工具函数trainlm()即对应LevenbergMarquardt法的改进算法。
BP网络的Matlab工具箱函数
1、BP神经网络创建函数:
函数newff用于创建一个BP神经网络,其调用格式为:
net = newff(P,T,[S1 S2...SN],{TF1 TF2...TFN},BTF,BLF,PF)
BP学习过程
Step1
• 选定样本,p=1,…,P, 随机确定初始权矩阵 W(0)
Step2 • 利用样本计算网络输出,得到误差
Step3
• 利用误差反向计算每一层的sensitivty,
更新权值和阈值。直到误差满足精度 要求。
BP网络学习算法的改进
BP算法缺点小结
易形成局部极小而得不到全局最优; 训练次数多使得学习效率低,收敛速度慢; 隐节点的选取缺乏理论指导; 训练时学习新样本有遗忘旧样本的趋势。
{ p1, t1} { p2, t2} {pQ,tQ }
P:输入矩阵,每行对应于一个样本的输入向量
T:输出矩阵,每行对应于该样本的期望输出
Si:第i个隐含层的神经元个数,最后一个为输出层神经元个数
TFi: 第i个隐含层的激活函数(隐含层默认值为tansig,输出层
默认值为purelin) BTF:网络训练函数(默认值为trainlm) BLF:权值/阈值学习函数(默认值为learngdm)
wn
1
x1
x2
x
xn
单层前馈神经网络
p1
w11
w12 w13
n1 f1
a1
w21
p2
w22
n2 f2
a2
w23
wR1
wR 2
ns fs
as
wR3
pR
输入-输出关系:
R
ai fi wij p j
p
a
神经网络
输入:苹果或香蕉
shape
p = texture
w eight
a f (W , p)
期望输出 t=1---苹果 t=0---香蕉
有导师的学习
期望输出(向量)
训练样本:{ p1, t 1} { p2, t 2} {pQ,tQ }
输入(向量)
基本思想:
对样本对(输入和期望输出)进行学习;将样本的输 入送至神经网络,计算得到实际输出;若实际输出与 期望输出之间的误差不满足精度要求,则调整权值W