人工神经网络及其应用实例_第1页
人工神经网络及其应用实例_第2页
人工神经网络及其应用实例_第3页
人工神经网络及其应用实例_第4页
人工神经网络及其应用实例_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、人工神经网络及其应用实例人工神经网络是在现代神经科学研究成果基础上提出的一种抽象数学模型,它以某种简化、抽象和模拟的方式,反映了大脑功能的若干基本特征,但并非其逼真的描写。人工神经网络可概括定义为:由大量简单元件广泛互连而成的复杂网络系统。所谓简单元件,即人工神经元,是指它可用电子元件、光学元件等模拟,仅起简单的输入输出变换 y = s (x) 的作用。下图是 3中常用的元件类型:线性元件: y = 0.3x,可用线性代数法分析,但是功能有限,现在已不太常用。21.510.50-0.5-1-1.5-2-6-4-20246连续型非线性元件: y = tanh(x),便于解析性计算及器件模拟,是当

2、前研究的主要元件之一。Page 1 of 2521.510.50-0.5-1-1.5-2-6-4-20246ì1, x ³ 0î-1, x < 0,便于理论分析及阈值逻辑器件实现,也是当前研究的主要元件之一。21.510.50-0.5-1-1.5-2-6-4-20246Page 2 of 25离散型非线性元件: y = í每一神经元有许多输入、输出键,各神经元之间以连接键(又称突触)相连,它决定神经元之间的连接强度(突触强度)和性质(兴奋或抑制),即决定神经元间相互作用的强弱和正负,共有三种类型:兴奋型连接、抑制型连接、无连接。这样,N 个神经元(

3、一般 N 很大)构成一个相互影响的复杂网络系统,通过调整网络参数,可使人工神经网络具有所需要的特定功能,即学习、训练或自组织过程。一个简单的人工神经网络结构图如下所示:上图中,左侧为输入层(输入层的神经元个数由输入的维度决定),右侧为输出层(输出层的神经元个数由输出的维度决定),输入层与输出层之间即为隐层。输入层节点上的神经元接收外部环境的输入模式,并由它传递给相连隐层上的各个神经元。隐层是神经元网络的内部处理层,这些神经元在网络内部构成中间层,不直接与外部输入、输出打交道。人工神经网络所具有的模式变换能力主要体现在隐层的神经元上。输出层用于产生神经网络的输出模式。多层神经网络结构中有代表性的

4、有前向网络(BP 网络)模型、Page 3 of 25多层侧抑制神经网络模型和带有反馈的多层神经网络模型等。本文主要探讨前向网络模型。多层前向神经网络不具有侧抑制和反馈的连接方式,即不具有本层之间或指向前一层的连接弧,只有指向下一层的连接弧。代表是BP 神经网络:输入模式由输入层进入网络,经中间各隐层的顺序变换,最后由输出层产生一个输出模式,如下图所示:输入层隐层输出层多层前向神经网络由隐层神经元的非线性处理衍生它的能力,这个任务的关键在于将神经元的加权输入非线性转换成一个输出的非线性激励函数。下图给出了一个接收 n 个输入 x1, x2 , , xn 的神经元:b1x1w1x2w2å

5、;sywnxnPage 4 of 25神经元的输出由下式给出:nxj =1这里输入的加权和(括号内部分)由一个非线性函数传递, b 表示与偏差输入相关的权值, w j 表示与第 j 个输入相关的权值。使用最广泛的函数是 S 形函数,其曲线家族包括对数函数和双曲正切函数,这些都可用来对人口动态系统、经济学系统等建模。另外所用的其他函数有高斯函数、正弦函数、反正切函数,在此不一一展开介绍,本文主要使用的激励函数是对数函数,函数表达式为:y = L(u) =函数曲线如下图所示:10.80.60.40.2011 + e-u-0.2-10-8-6-4-20246810对于有限输入量,对数函数输出范围为

6、y Î (0,1)。在输入为 u = 0 时,输出值为中间值 y = 0.5。输出在 u = 0 附近随着输入的增加以相对快的Page 5 of 25y = s (å w j j + b)速率增加并非常慢地到达上限。对于 u < 0 ,输出起初减少得很快,然后随着下限的接近将会变慢。训练神经元的规则有很多种,这里首先介绍利用 delta 规则的学习,神经元选择为一个单输入单输出的简单情形,数学描述如下:u = wx + b, y =11 + e-u该神经元具有一个输入 x ,权重为 w ,偏差输入为 b ,目标输出为 t ,预报输出为 y 。则预报误差为:E = t

7、- y = t -1 11 + e-u 1 + e- wx-b为消除当误差在整个输入模式上求和时引起的误差符号问题,在delta 规则里使用的误差指示是平方误差,定义为:1 12 21- wx-b)2根据 delta 规则,最优权值(使平方误差最小)可以在训练过程中从初始权值出发,沿负梯度方向下降得到。将平方误差对 w, b (神经元的可调整参数)进行微分,得:¶e¶u= -E ×e-u(1 + e-u )2¶e¶w¶e¶b= × = - E × × x¶u ¶w (1 +

8、e-u )2= × = - E ׶u ¶b (1 + e-u )2根据 delta 原则,权值改变应与误差梯度的负值成比例,引入学习率 b ,每次迭代中的权值改变可表示为:¶e e-u¶w (1 + e-u )2¶e¶be-u(1 + e-u )2Page 6 of 25= t -1 + e¶e ¶u e-u¶e ¶u e-uDw = -b × = b × E × × xDb = -b × = b × E 

9、5;学习率 b 决定了沿梯度方向的移动速度,以确定新的权值。大的b 值会加快权值的改变,小的 b 值则减缓了权值的改变。第 i 次迭代后的新权值可表示为:wi +1 = wi + b × E ×e-u(1 + e-u )2× xbi +1 = bi + b × E ×e-u(1 + e-u )2如果将偏差输入 b 视为输入 x 的一部分,令 x0 = 1, w0 = b,可以得到对于多输入神经元的权值修正式:+1e-u(1 + e-u )2× x j , j = 0,1, 2, n总之,利用 delta 规则的有监督的学习可以按如下方

10、法来实现:一个输入模式( x0 , x1, x2 , , xn)通过连接被传递,它的初始权值被设置为任意值。对加权的输入求和,产生输出 y ,然后 y 与给定的目标输出 t 做比较决定此模式的平方误差 e 。输入和目标输出不断地被提出,在每一次迭代或每一个训练时间后利用 delta 规则进行权值调整直到得到可能的最小平方误差。delta 规则在每一步中通过导数寻找在误差平面中某个特定点局部区域的斜率,它总是应用这个斜率从而试图减小局部误差,因此,delta 规则不能区分误差空间中的全局最小点和局部最小点,它本身不能克服单层神经网络的局限,无法直接应用到多层神经网络(易陷入局部最小点),但它的一

11、般形式是多层神经网络中的学习算法反传算法的核心。在多层前向神经网络的训练过程中,误差导数或关于权值的误差Page 7 of 25wij ji + b × E ×= w表面的斜率对权值的调整是至关重要的,在网络训练期间,所有的输出神经元和隐含神经元权值必须同时调整,因此,有必要找出关于所有权值的误差导数。由于网络层数增多,平方误差 e 与权值的连接没有之前单个神经元时那么直接,故可以使用链式规则的概念来找到导数。下面对一个含有一层隐含神经元的 BP 网络进行讨论,网络结构如下图所示:x0 = 11a0ma01åsy1b1y0 = 1x11b0x21å1zb

12、man1ymxn1anmås各个神经元的输入输出关系为:yi =11 + e-uinj =0x, mmi =0设目标输出为 t ,则平方误差 e 定义为:Page 8 of 25, ui = å a ji j , i = 1, 2,z = v, v = å bi iy12使用链式法则,分别列出平方误差 e 对所有网络参数的导数:¶e¶v= -(t - z)¶e¶bi¶e¶v, m¶e¶yi¶e¶v, m= × = ׶ui ¶

13、yi ¶ui ¶yi (1+ e-ui )2, i = 1, 2, m¶e¶a ji= × = × x j , i = 1, 2, m, j = 0,1, 2, n在实际的编程过程中,我们需要的是¶e¶bi和¶e¶a ji,所以如果有需要,也可以直接采用以下整理之后的形式:¶e¶bi= -(t - z) × yi , i = 0,1, 2, m¶e¶a jie-ui(1 + e-ui )2, m, j = 0,1, 2, n研究表明,两层网络在其

14、隐层中使用 S 形激励函数,在输出层中使用线性传输函数,就几乎可以以任意精度逼近任意感兴趣的函数,只要隐层中有足够的单元可用。问题 1:试使用 BP 神经网络去逼近正弦函数的正半周,如下:t = sin(x), x Î0,p 由于输入量 x 仅有一维,故 BP 神经网络结构可以设计为:Page 9 of 25= × yi , i = 0,1, 2,= × bi , i = 1, 2,¶e ¶e ¶yi ¶e e-ui¶e ¶ui ¶e¶ui ¶a ji¶ui= -(

15、t - z) × bi × × x j , i = 1, 2,x0 = 1a01åsy1y0 = 1a02b1b0a11b2å1zx1 = xa12åsy2各个神经元的输入输出关系为:yi =11 + e-ui1j =0x2i =0根据之前的推导,平方误差 e 对所有网络参数的导数为:¶e¶bi= -(t - z) × yi , i = 0,1, 2¶e¶a jie-ui(1 + e-ui )2网络参数修正方程为:k +1¶e¶bikak +1jijik ¶

16、;e k e-ui为加快寻找最优权值的速度,可以使用动量法。之前的方法中,收敛到最优权值的速度取决于学习率的大小,但是过大的学习率会导致来回震荡,不能稳定到最优权值点。动量法的引入,使得较大的学习率也可以具有较好的稳定性,即提供了在学习期间到达最优权值时Page 10 of 25, ui = å a ji j , i = 1, 2z = v, v = å bi iy= -(t - z) × bi × × x j , i = 1, 2, j = 0,1bi ibk - b ×= bi + b × (t - z) ×

17、yi , i = 0,1, 2= a - b × = a ji + b × (t - z) × bi × × x j , i = 1, 2, j = 0,1¶a ji (1 + e-ui )2的稳定性。这种方法基本上是将过去权值变化的平均值附加到每一次权值变化的新权值增量,从而使网络权值的变化更平滑。数学表示如下:Dwk +1 = m × Dwk + (1- m ) × b × (-¶e¶w)式中, m 是一个在 0 和 1 之间的动量参数, Dwk 是在前一个训练时间里的权值变化。使

18、用动量法的实际效果是:基本上,如果以前积累的变化与之前方向所暗示的是同一个方向时,动量部分就会加速当前权值改变;如果当前积累的变化是相反的方向,动量将阻止当前的变化。据此编写 MATLAB 程序,源代码如下:beta = 0.1;miu = 0.8;for i = 1 : 1 : 101;x1(1, i) = (i - 1) * pi / 100;t(1, i) = sin(x1(1, i);endx0 = 1;y0 = 1;a01 = rand();a02 = rand();a11 = rand();a12 = rand();b0 = rand();b1 = rand();b2 = rand

19、();delta_a01 = 0;delta_a02 = 0;delta_a11 = 0;delta_a12 = 0;delta_b0 = 0;delta_b1 = 0;delta_b2 = 0;k = 1;total_error = 0;Page 11 of 25while 1u1 = a01 * x0 + a11 * x1(1, k);u2 = a02 * x0 + a12 * x1(1, k);temp1 = exp(-u1) / (1 + exp(-u1) 2);temp2 = exp(-u2) / (1 + exp(-u2) 2);y1 = 1 / (1 + exp(-u1);y2

20、= 1 / (1 + exp(-u2);z = b0 * y0 + b1 * y1 + b2 * y2;total_error = total_error + (t(1, k) - z) 2 / 2;delta_b0 = miu * delta_b0 + (1 - miu) * beta * sum(t(1, k) - z) *y0);b0 = b0 + delta_b0;delta_b1 = miu * delta_b1 + (1 - miu) * beta * sum(t(1, k) - z) *y1);b1 = b1 + delta_b1;delta_b2 = miu * delta_b

21、2 + (1 - miu) * beta * sum(t(1, k) - z) *y2);b2 = b2 + delta_b2;delta_a01 = miu * delta_a01 + (1 - miu) * beta * sum(t(1, k) - z)* b1 * temp1 * x0);a01 = a01 + delta_a01;delta_a02 = miu * delta_a02 + (1 - miu) * beta * sum(t(1, k) - z)* b2 * temp2 * x0);a02 = a02 + delta_a02;delta_a11 = miu * delta_

22、a11 + (1 - miu) * beta * sum(t(1, k) - z)* b1 * temp1 * x1(1, k);a11 = a11 + delta_a11;delta_a12 = miu * delta_a12 + (1 - miu) * beta * sum(t(1, k) - z)* b2 * temp2 * x1(1, k);a12 = a12 + delta_a12;k = k + 1;if k = length(x1) + 1total_errork = 1;if total_error < 0.001break;elsetotal_error = 0;end

23、endendclear u1 u2 temp1 temp2 y1 y2 z x0 y0;Page 12 of 25x0 = ones(size(x1);y0 = ones(size(x1);u1 = a01 * x0 + a11 * x1;u2 = a02 * x0 + a12 * x1;y1 = 1 ./ (1 + exp(-u1);y2 = 1 ./ (1 + exp(-u2);z = b0 * y0 + b1 * y1 + b2 * y2;plot(x1, t, 'r');hold on;plot(x1, z, 'b');hold off;axis(0 p

24、i -0.2 1.2);程序运行后,输出拟合曲线与原函数曲线,如下图所示:10.80.60.40.20-0.200.511.522.53可以看出,训练后的神经网络的预报输出与目标输出已经很接近,拟合效果是较为理想的。Page 13 of 25总的来说,神经网络的学习过程,是神经网络在外界输入样本的刺激下不断改变网络的连接权值乃至拓扑结构,以使网络的输出不断地接近期望的输出。BP 算法是多层前向神经网络的一种学习规则,核心思想是将输出误差以某种形式通过隐层向输入层逐层反传,学习的过程就是信号的正向传播与误差的反向传播交替的过程。多层前向神经网络的主要功能有:(1)非线性映射能力。多层前向神经网络

25、能学习和存储大量输入输出模式映射关系,而无需事先了解描述这种映射关系的数学方程。只要能提供足够多的样本模式供对神经网络进行学习训练,它便能完成由 n 维输入空间到 m 维输出空间的非线性映射。(2)泛化能力。当向网络输入训练时未曾见过的非样本数据时,网络也能完成由输入空间到输出空间的正确映射。(3)容错能力。输入样本中带有较大的误差甚至个别错误对网络的输入输出规律影响很小。多层前向神经网络的标准 BP 学习算法有着以下明显的缺陷:(1)易形成局部极小(属于贪婪算法,局部最优)而得不到全局最优;(2)训练次数多使得学习效率低下,收敛速度慢;(3)隐节点的选取缺乏理论支持;(4)训练时学习新样本有

26、遗忘旧样本的趋势。标准 BP 算法的改进方法主要有:增加动量项;自适应调节学习率等。增加动量项已经在之前进行过讨论,可以减小振荡趋势,提高Page 14 of 25训练速度。自适应调节学习率是指根据环境变化增大或减小学习率,基本方法是:设一初始学习率,若经过一批次权值调整后使总误差增大,则本次调整无效,并令 b = a1b (a1 < 1) ;若经过一批次权值调整后使总误差减小,则本次调整有效,并令 b = a2b (a2 > 1)。下面通过一个非线性分类问题来考察前向神经网络在模式识别领域的应用。问题 2:x - y平面上有 200 个点,分别属于两个类别。试设计并训练一个多层前

27、向神经网络,以完成该分类任务,使得被错误分类的样本数量最低。 w1 类以绿色标示, w2 类以蓝色标示。10.90.80.70.60.50.40.30.20.1000.10.20.30.40.50.60.70.80.91Page 15 of 25根据题意,前向神经网络的结构设计如下:x0 = 1a01åsy1y0 = 1a02b1b0x1 = xa11a12åszb2x2 = ya21a22åsy2网络的输入输出关系及分类策略为:yi =21 + e-ui2j =0xz =21 + e-v2i=0yìw , z > 0îw2 , z &l

28、t; 0分类误差定义为:1 2 ì1, ( x, y) Îw12 î-1, ( x, y) Îw2由此可得误差量对网络参数的导数:¶e ¶e ¶z ¶v e-v¶bi ¶z ¶v ¶bi (1+ e-v )2¶e¶a ji-v2为简化表达式,定义:p = -(t - z) ×-v2, i = 1, 2Page 16 of 25-1, ui = å a ji j , i = 1, 2-1, v = å bi i( x, y) &

29、#206; í 1= × × = -(t - z) × × yi¶e ¶yi i e e-ui¶u= × × = -(t - z) × × bi × × x j¶yi ¶ui ¶a ji (1 + e-v ) (1 + e-ui )2e e-ui, qi = bi ×(1 + e-v ) (1 + e-ui )2则有:¶e ¶e¶bi ¶a ji= pqi × x j

30、据此编写 MATLAB 程序如下(标准 BP 算法加动量法优化):clear x0 x1 x2;beta = 0.1;miu = 0;n m = size(x);for i = 1 : 1 : nx0(1, i) = 1;x1(1, i) = x(i, 1);x2(1, i) = x(i, 2);y0(1, i) = 1;t(1, i) = x(i, 3);enda01 = rand();a11 = rand();a21 = rand();a02 = rand();a12 = rand();a22 = rand();b0 = rand();b1 = rand();b2 = rand();del

31、ta_a01 = 0;delta_a11 = 0;delta_a21 = 0;delta_a02 = 0;delta_a12 = 0;delta_a22 = 0;delta_b0 = 0;delta_b1 = 0;delta_b2 = 0;l = 1;while 1u1 = a01 * x0 + a11 * x1 + a21 * x2;u2 = a02 * x0 + a12 * x1 + a22 * x2;y1 = 2 ./ (1 + exp(-u1) - 1;y2 = 2 ./ (1 + exp(-u2) - 1;v = b0 * y0 + b1 * y1 + b2 * y2;z = 2 .

32、/ (1 + exp(-v) - 1;Page 17 of 25= p × yi ,error = 0;for i = 1 : 1 : nif (z(1, i) > 0 && t(1, i) = 1) | (z(1, i) < 0 && t(1, i) = -1)%elseerror = error + 1;endenderrortemp0 = -(t - z) .* exp(-v) ./ (1 + exp(-v) . 2;temp1 = b1 .* exp(-u1) ./ (1 + exp(-u1) . 2;temp2 = b2 .* e

33、xp(-u2) ./ (1 + exp(-u2) . 2;delta_b0 = miu * delta_b0 + (1 - miu) * beta * sum(-temp0 .* y0);delta_b1 = miu * delta_b1 + (1 - miu) * beta * sum(-temp0 .* y1);delta_b2 = miu * delta_b2 + (1 - miu) * beta * sum(-temp0 .* y2);delta_a01 = miu * delta_a01 + (1 - miu) * beta * sum(-temp0 .* temp1 .*x0);d

34、elta_a11 = miu * delta_a11 + (1 - miu) * beta * sum(-temp0 .* temp1 .*x1);delta_a21 = miu * delta_a21 + (1 - miu) * beta * sum(-temp0 .* temp1 .*x2);delta_a02 = miu * delta_a02 + (1 - miu) * beta * sum(-temp0 .* temp2 .*x0);delta_a12 = miu * delta_a12 + (1 - miu) * beta * sum(-temp0 .* temp2 .*x1);d

35、elta_a22 = miu * delta_a22 + (1 - miu) * beta * sum(-temp0 .* temp2 .*x2);b0 = b0 + delta_b0;b1 = b1 + delta_b1;b2 = b2 + delta_b2;a01 = a01 + delta_a01;a11 = a11 + delta_a11;a21 = a21 + delta_a21;a02 = a02 + delta_a02;a12 = a12 + delta_a12;a22 = a22 + delta_a22;l = l + 1;if l = 1000break;endPage 18

36、 of 25endj1 = 1;j2 = 1;k1 = 1;k2 = 1;for i = 1 : 1 : nif x(i, 3) = -1if z(1, i) < 0x11(j1, :) = x(i, :);j1 = j1 + 1;elsex12(j2, :) = x(i, :);j2 = j2 + 1;endelseif z(1, i) > 0x21(k1, :) = x(i, :);k1 = k1 + 1;elsex22(k2, :) = x(i, :);k2 = k2 + 1;endendendhold on;plot(x11(:, 1), x11(:, 2), 'g

37、*');plot(x12(:, 1), x12(:, 2), 'r+');plot(x21(:, 1), x21(:, 2), 'bo');plot(x22(:, 1), x22(:, 2), 'r+');hold off;axis(0 1 0 1);程序运行结果,经过训练,该神经网络对 200 个样本的分类正确率达到了 96.5%,分类效果较好,具体分类情况如下图所示,其中被错误分类的样本已用红色标示出,其它正确分类的样本仍用原类别对应的颜色进行标示。Page 19 of 2510.90.80.70.60.50.40.30.20.100

38、0.10.20.30.40.50.60.70.80.91之前的所有程序都是完整地按照多层前向神经网络的标准 BP 学习算法过程进行编写的,程序较为复杂,而且如果出现差错,也不易发现,因此应用有一定难度,下面介绍使用 MATLAB 的神经网络工具箱进行人工神经网络的设计与训练的方法。关于神经网络工具箱的帮助信息,可以在 Product Help 中搜索“Neural Network Toolbox”获得,包含有较为详细的使用方法,可以在需要时进行查阅。下面以一个函数拟合的问题为例,演示如何使用神经网络工具箱。首先介绍几个将要用到的函数:premnmx:用于将网络的输入数据或输出数据进行归一化,归

39、一化后的数据将分布在 -1,1区间内。其语法格式为:Page 20 of 25Pn, minp, maxp, Tn, mint, maxt = premnmx(P, T);tramnmx:在训练网络是如果所用的是经过归一化的样本数据,那么以后使用网络时所用的新数据也应该和样本数据接收相同的预处理,tramnmx 用于完成此项处理,语法格式为:Pn_new = tramnmx(P_new,minp,maxp);Tn_new = tramnmx(T_new,mint,maxt);postmnmx:网络输出结果需要反归一化还原为原始数据,常用的函数即是 postmnmx,其语法格式为:Y = pos

40、tmnmx(Yn,mint,maxt);newff:训练前馈网络的第一步是建立网络对象。函数 newff 建立一个可训练的前馈网络。这需要 4 个输入参数:第一个参数是一个 Rx2 的矩阵以定义 R 个输入向量的最小值和最大值;第二个参数是一个设定每层神经元个数的数组;第三个参数是包含每层用到的传递函数名称的细胞数组;最后一个参数是用到的训练函数的名称。例如可以这样建立一个网络对象:net = newff(minmax(PN1),NodeNum TypeNum,TF1 TF2, 'trainlm');或者可以在建立网络对象时并不设定训练函数,而是之后进行指定,如:net = n

41、ewff(minmax(PN1),NodeNum TypeNum,TF1 TF2);net.trainFcn = 'trainlm'两者是等效的。train:BP 神经网络的训练函数,其语法格式为:net = train(net,Pn,Tn);sim:对于给定的输入量,模拟神经网络的输出,其语法格式为:Yn = sim(net,Pn);Page 21 of 25例如使用神经网络工具箱对一个正弦函数进行拟合,源程序如下:clcclearclose all%-% 产生训练样本与测试样本P1 = 1:2:200; % 训练样本,每一列为一个样本T1 = sin(P1*0.1); %

42、训练目标P2 = 2:2:200; % 测试样本,每一列为一个样本T2 = sin(P2*0.1); % 测试目标%-% 归一化PN1,minp,maxp,TN1,mint,maxt = premnmx(P1,T1);PN2 = tramnmx(P2,minp,maxp);TN2 = tramnmx(T2,mint,maxt);%-% 设置网络参数NodeNum = 20; % 隐层节点数TypeNum = 1; % 输出维数TF1 = 'tansig'TF2 = 'purelin' % 判别函数(缺省值)%TF1 = 'tansig'TF2 =

43、 'logsig'%TF1 = 'logsig'TF2 = 'purelin'%TF1 = 'tansig'TF2 = 'tansig'%TF1 = 'logsig'TF2 = 'logsig'%TF1 = 'purelin'TF2 = 'purelin'net = newff(minmax(PN1),NodeNum TypeNum,TF1 TF2);%-% 指定训练参数% net.trainFcn = 'traingd' % 梯度下降

44、算法% net.trainFcn = 'traingdm' % 动量梯度下降算法% net.trainFcn = 'traingda' % 变学习率梯度下降算法Page 22 of 25% net.trainFcn = 'traingdx' % 变学习率动量梯度下降算法% (大型网络的首选算法)% net.trainFcn = 'trainrp' % RPROP(弹性 BP)算法,内存需求最小% 共轭梯度算法% net.trainFcn = 'traincgf' % Fletcher-Reeves 修正算法% net.trainFcn = 'traincgp' % Polak-Ribiere 修正算法,内存需求比Fletcher-Reeves 修正算法略大% net.trainFcn = 'traincgb' % Powell-Beal 复位算法,内存需求比 Polak-Ribiere修正算法略大% (大型网络的首选算法)%net.trainFcn = 'trainscg' % Scaled Conjugate Gradient 算法

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论