ANN中文2012

上传人:206****923 文档编号:57512982 上传时间:2018-10-22 格式:PPT 页数:45 大小:979.50KB
返回 下载 相关 举报
ANN中文2012_第1页
第1页 / 共45页
ANN中文2012_第2页
第2页 / 共45页
ANN中文2012_第3页
第3页 / 共45页
ANN中文2012_第4页
第4页 / 共45页
ANN中文2012_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《ANN中文2012》由会员分享,可在线阅读,更多相关《ANN中文2012(45页珍藏版)》请在金锄头文库上搜索。

1、人工神经网络简介,四川大学数学学院 黄丽 ,发展史,与人工神经网络有关的研究可以追溯到19世纪末或更早,但通常认为McCullch和Walter Pitts在20世纪40年代的工作是人工神经网络领域的开始。,初始发展时期 (1940-1960),研究主流是仿生学结构主义, 其动机是要用硬件来模仿人脑的结构和功能.,典型工作: Warren McCulloch and Walter Pitts: M-P模型 Donald Hebb: Hebb learning rule (Hebb学习律) Frank Ronsenblatt: Perceptron(感知器) Bernald Widrow and

2、 Ted Hoff: adaptive linear neural networks(自适应线性神经网络), Widrow-Hoff learning rule(Widrow-Hoff学习律).,低谷时期 (1960-1980),然而Rosenblatt和Widrow的网络都有同样的局限性. 这个问题随着下面这本书的出版而广为人知: M. Minsky and S. Papert, Perceptrons, Cambridge, MA: MIT Press, 1969,Rosenblatt和Widow也清楚这些局限, 他们提出了新的网络. 但新网络更复杂, 针对旧网络提出的学习算法不再适应新网

3、络的训练. 遗憾的是他们没能成功地改进学习算法.,许多研究者受到Minsky和Papert的影响, 相信继续研究神经网络是一条死路. 当时没有功能强大的数字计算机来做实验也是制约神经网络领域研究的一个原因.,这一阶段仍然有一些重要的工作:,1972年, Teuvo Kohonen和James Anderson分别独立地提出了一种可以作为记忆器的新网络. Stephen Grossberg在自组织网络方面的研究也很活跃.,复兴时期 (1980以来),个人计算机和工作站越来越普及, 其功能越来越强大,. 而且提出了一些重要的新概念.,John Hopfield: Hopfield network

4、(1982) David Rumelhart和James McClelland (1986): Backpropagation algorithm(反传算法, BP算法). (还有其他几位研究者相互独立地发现了该算法),发表了成千上万的相关论文.,Soft Computing(软计算),Artificial neural network(人工神经网络) Fuzzy systems(模糊系统) Evolution computing(进化算法) ,应用,1988年, DARPF Neural Network study 列出了神经网络的许多应用 其中一个成功的商业应用是: 1984年, 自适应信

5、道均衡器,文献中提到的应用领域包括:,航空, 汽车, 银行, 国防, 电子, 娱乐, 金融, 保险, 制造, 医药, 石油, 机器人技术, 通讯, 运输等等,神经元(Neuron),神经元组成神经网络的基本信息处理单元.,n = w1,1p1 + w1,2p2 + + w1,RpR + b,n = Wp + b,a = f(n) = f(Wp + b),输入: p1, p2, , pR,p = (p1, p2, , pR)T,权重: w1,1, w1,2, , w1,R,W = (w1,1, w1,2, , w1,R),偏置: b,激励函数: f,p* = (1, p1, p2, , pR)T

6、, W* = (b, w1,1, w1,2, , w1,R),n = W*p*, a = f(n) = f(W*p*),激励函数,a =,a =,C,网络结构,单层神经元,W =,a = f(Wp + b),b = (b1, b2, , bs)T,a = (a1, a2, , as)T,f (.)= (f1(.), f2(.),fS(.)T,单层神经元,多层神经元,输入层,输出层,递归网络,延时单元,积分单元,一种离散时间循环网络:,初始条件: a(0) = p,网络将来的输出由它之前的输出计算:a(1) = satlins(Wa(0) + b), a(2) = satlin(Wa(1) +

7、b), ,学习律,有监督(教师)的学习(Supervised Learning)训练集: p1,t1,p2,t2,pQ.tQ Reinforcement Learning对网络的每个输入,这种学习算法不提供当前的正确输出, 只是给出一个等级. 无监督(教师)的学习(Unsupervised Learning)权重和偏置的修改仅与网络的输入有关,多层感知器,模式划分 函数逼近,Universal Approximation Theorem:,设 () 是有界单调增的连续函数, 而且()不是常数, 则对任意给定的n-维单位超立方体0,1n 上的连续函数f, 有: 对任意给定的 0, 存在整数m 和

8、实常 数i, bi, wij, 其中i = 1, , m, j = 1, , n, 使得,是函数f()的近似, 满足,|F(x1,xn) f(x1,xn)| ,只要隐层神经元足够过, 隐层激励函数sigmoid函数, 输出层激励函数是线性函数的两层网络实质上可以逼近任意函数到任意精度.,反传算法(BP算法),训练数据: p1,t1, p2,t2, , pQ,tQ,均方误差: E(eTe) = E(t a)T(t a),均方误差可由下式近似,(k) = (t(k) a(k)T(t(k) a(k) = eT(k)e(k),学习律:,w(k+1) = w(k) ,于是,令, 对第m层第i个神经元的输

9、入nim 变化的敏感度,敏感度的反传,1. 若第m层是输出层 : (m = M),2. 隐层:,敏感度是由最后一层反传至第一层的:,sM sM-1 s2 s1,Log-sigmoid 激励函数:,= f(n)(1 f(n),Hyperbolic tangent sigmoid 激励函数:,= (1 f(n) (1 + f(n),反传(BP)算法总结:,初始化,给出训练数据,前向计算,反向计算,迭代,通常初始权重和偏置选为小随机数,应用反传算法,选择网络结构,要达到足够的性能,需要多少层,每层要多少个神经元?,例 1:, 2 p 2,其中 i = 1, 2, 4, 8.,只有一个隐层, 隐层激励

10、函数为log-sigmoid函数, 输出层激励函数为线性函数.,用1-3-1网络作函数逼近,例2:,for 2 p 2,隐层神经元个数增加的效果:,收敛性,g(p) = 1 + sin(p), 2 p 2,收敛的全局最小,收敛到局部极小,网络确实可以逼近给定的函数, 但学习算法没有收敛到使网络有良好逼近性能的网络参数.,即使反传算法收敛了, 我们也不能确保得到了一个最优解. 可以采用不同的初始条件多试几次, 以保证得到最优解.,Generalization,例:, 2 p 2,对上面的函数在点 p = 2, 1.6, 1.2, , 1.6, 2 处采样得到训练集.,1-2-1 Network,

11、1-9-1 Network, overfit,如果要一个网络的推广性能好, 那么它所含参数的个数应小于训练集中数据点的个数.,小网络就可以完成的工作, 就不要用大网络,训练集与测试集,反传算法的一些改进,Momentum,(0 1),可变学习率,共轭梯度,Levenberg-Marquardt 算法,牛顿方法,MATLAB 函数,Net = newff(PR,S1 S2 SN, TF1 TF2 TF3, BTF, PF),PR: R2 矩阵, 由R个输入元素的最小和最大允许值构成. Si: 总共N层, 其中第 i 层的神经元个数. TFi:第 i 层的激励函数, 默认值为tansig. BTF

12、: 反传网络训练函数,默认值为trainlm. PF: 性能函数,默认值为mse. 该函数返回一个N层的前馈BP网络.,例,P = 0 1 2 3 4 5 6 7 8 9 10;T = 0 1 2 3 4 3 2 1 2 3 4; net = newff(0 10,5 1,tansig purelin); Y = sim(net,P); plot(P,T,P,Y,o)net.trainParam.epochs = 50; net = train(net,P,T); Y = sim(net,P); plot(P,T,P,Y,o),径向基函数网络,用MATLAB进行精确设计:,Net = newr

13、be(P, T, SPREAD),P: 训练集中的输入向量,T: 对应的目标向量(期望输出),SPREAD: spread constant. G(SPREAD) = 0.5. 默认值 = 1.,Net: 一个当输入是P时, 输出就是T的径向基网络.,函数 newrbe 生成的网络其隐层神经元个数与训练集中输入向量的个数一样多.,我们在实际工作中遇到的典型情况是: 训练集中有大量的输入-目标输出向量对, 需要用这些数据来得到合适的径向基网络. 用函数newrbe所得到的网络隐层神经元就会太多, 一般是不可接受的解.,Generalization,更有效的设计,Net = newrb(P, T,

14、 GOAL, SPREAD),在每次迭代时, 使网络误差下降最多的那个输入向量用来产生一个径向基神经元.检查新网络的误差. 如果误差已经足够小, newrb就结束运算, 否则就加入下一个神经元. 重复这个过程, 直到达到事先确定的误差标准, 或者达到可允许的最大神经元个数.,newrb 一次只产生一个神经元.,径向基网络 vs. 多层感知器,径向基网络一般比同性能的多层感知器需要更多的神经元.,另一方面, 设计径向基网络通常比训练多层感知器所需要的时间少, 而且有时候也可能会只需要用更少的神经元.,例,P = -1:.1:1; T = -.9602 -.5770 -.0729 .3771 .6

15、405 .6600 .4609 .1336 -.2013 -.4344 -.5000 -.3930 -.1647 .0988 .3072 .3960 .3449 .1816 -. 0312 -.2189 -.3201; subplot(2,2,1); plot(P,T,+); title(Training Vectors); xlabel(Input Vector P); ylabel(Target Vector T);,p = -3:.1:3; a = radbas(p); subplot(2,2,2); plot(p,a) title(Radial Basis Transfer Funct

16、ion); xlabel(Input p); ylabel(Output a);,a2 = radbas(p-1.5); a3 = radbas(p+2); a4 = a + a2*1 + a3*0.5; subplot(2,2,3); plot(p,a,b-,p,a2,b-,p,a3,b-,p,a4,m-) title(Weighted Sum of Radial Basis Transfer Functions); xlabel(Input p); ylabel(Output a);eg = 0.02; % sum-squared error goal sc = 1; % spread constant net = newrb(P,T,eg,sc); subplot(2,2,4);plot(P,T,+);xlabel(Input); X = -1:.01:1;Y = sim(net,X);hold on;plot(X,Y); hold off;legend(Target,Output),

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

当前位置:首页 > 幼儿/小学教育 > 其它小学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号