R语言与机器学习_第1页
R语言与机器学习_第2页
R语言与机器学习_第3页
R语言与机器学习_第4页
R语言与机器学习_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、R语言与机器学习分类算法(三)三、BP神经网络1、sigmoid函数分类回顾我们前面提到的感知器,它使用示性函数作为分类的办法。然 而示性函数作为分类器它的跳点让人觉得很难处理,幸好sigmoid函数 y=l/(l eA-x)有类似的性质,且有着光滑性这一优良性质。我们通过下图 可以看见sigmoid函数的图像:-420240-40200204060Sigmoid函数有着计算代价不高,易于理解与实现的优点但也有着欠拟合,分类精度不高的特性,我们在支持向量机一章中就可以看到 sigmoid函数差劲的分类结果。2、BP神经网络结构BP (Back Propagation)神经网络,即误差反传误差反

2、向传播算法的学 习过程,由信息的正向传播和误差的反向传播两个过程组成。由下图可 知,BP神经网络是一个三层的网络:Input LayerHidden LayerOutput Lyer输入层(input layer):输入层各神经元负责接收来自外界的输入信息, 并传递给中间层各神经元;隐藏层(Hidden Layer):中间层是内部信息处理层,负责信息变换,根 据信息变化能力的需求,中间层可以设计为单隐层或者多隐层结构;最 后一个隐层传递到输出层各神经元的信息,经进一步处理后,完成一次 学习的正向传播处理过程;输出层(Output Layer):顾名思义,输出层向外界输出信息处理结果;当实际输出

3、与期望输出不符时,进入误差的反向传播阶段。误差通 过输出层,按误差梯度下降的方式修正各层权值,向隐藏层、输入层逐 层反传。周而复始的信息正向传播和误差反向传播过程,是各层权值不 断调整的过程,也是神经网络学习训练的过程,此过程一直进行到网络 输出的误差减少到可以接受的程度,或者预先设定的学习次数为止。3、反向传播算法反向传播这一算法把我们前面提到的delta规则的分析扩展到了带有 隐藏节点的神经网络。为了理解这个问题,设想Bob给Alice讲了一个 故事,然后Alice又讲给了 Ted, Ted检查了这个事实真相,发现这个 故事是错误的。现在Ted需要找出哪些错误是Bob造成的而哪些又归 咎于

4、Alice。当输出节点从隐藏节点获得输入,网络发现出现了误差, 权系数的调整需要一个算法来找出整个误差是由多少不同的节点造成 的,网络需要问,“是谁让我误入歧途?到怎样的程度?如何弥补? ”这 时,网络该怎么做呢?同样源于梯度降落原理,在权系数调整分析中的唯一不同是涉及到 t(p,n)与y(p,n)的差分。通常来说Wi的改变在于:alpha * s(a(p,n) * d(n) *X(p,i,n)其中d(n)是隐藏节点n的函数,让我们来看:n对任何给出的输出节点有多大影响;输出节点本身对网络整体的误差有多少影响。一方面,n影响一个输出节点越多,n造成网络整体的误差也越多。 另一方面,如果输出节点

5、影响网络整体的误差越少,n对输出节点的影 响也相应减少。这里d(j)是对网络的整体误差的基值,W(n,j)是n对j 造成的影响,d* W(n,j)是这两种影响的总和。但是n几乎总是影响 多个输出节点,也许会影响每一个输出结点,这样,d(n)可以表示为: SUM(d(j)*W(n,j)这里j是一个从n获得输入的输出节点,联系起来,我们就得到了 一个培训规则。第1部分:在隐藏节点n和输出节点j之间权系数改变,如下所示: alpha *s(a(p,n)*(t(p,n) - y(p,n) * X(p,n,j)第2部分:在输入节点i和输出节点n之间权系数改变,如下所示: alpha *s(a(p,n)

6、* sum(d (j) * W(n,j) * X(p,i,n)这里每个从n接收输入的输出节点j都不同。关于反向传播算法的 基本情况大致如此。通常把第1部分称为正向传播,把第2部分称为反向传播。反向传 播的名字由此而来。4、最速下降法与其改进最速下降法的基本思想是:要找到某函数的最小值,最好的办法是 沿函数的梯度方向探寻,如果梯度记为d,那么迭代公式可写为 w二w-alpha*d,其中alpha可理解为我们前面提到的学习速率。最速下降法有着收敛速度慢(因为每次搜索与前一次均正交,收敛 是锯齿形的),容易陷入局部最小值等缺点,所以他的改进办法也有不 少,最常见的是增加动量项与学习率可变。增加冲量项

7、(Momentum)修改权值更新法则,使第n次迭代时的权值的更新部分地依赖于发 生在第n- 1次迭代时的更新Delta (w) (n)二-alpha*(1-mc)*Delta(w)(n) mc*Delta(w)(n-1)右侧第一项就是权值更新法则,第二项被称为冲量项。梯度下降的 搜索轨迹就像一个球沿误差曲面滚下,冲量使球从一次迭代到下一次迭 代时以同样的方向滚动冲量有时会使这个球滚过误差曲面的局部极小 值或平坦区域,冲量也具有在梯度不变的区域逐渐增大搜索步长的效 果,从而加快收敛。改变学习率当误差减小趋近目标时,说明修正方向是正确的,可以增加学习率;当误差增加超过一个范围时,说明修改不正确,需

8、要降低学习率。5、BP神经网络的实现数据读入,这里我们还是使用R的内置数据一一鸢尾花数据, 由于神经网络本质是2分类的,所以我们将鸢尾花数据也分为两类(将 前两类均看做第2类),按照特征:花瓣长度与宽度做分类。划分训练数据与测试数据初始化BP网络,采用包含一个隐含层的神经网络,训练方法 使用包含动量的最速下降法,传递函数使用sigmoid函数。输入样本,对样本进行归一化,计算误差,求解误差平方和判断是否收敛根据误差调整权值。权值根据以下公式进行调整:Delta (w) = alpha *s(a(p,n)*(t(p,n) - y(p,n) * X(p,n,j)其中,alpha为学习率,s(a(p

9、,n)*(t(p,n)- y(p,n)为局部梯度。此外, 由于使用了有动量因子的最速下降法,除第一次外,后续改变量应为:Delta (w) (n)=-alpha*(1-mc)*Delta(w)(n) mc*Delta(w)(n-l)测试,输出分类正确率。完整的R代码:01 .02.03.04.05.06.07.08.09.13.11.12.13.14.15.16.17.18.19.23.i ri.mAtri x(i ri q, :4)irisl-cbind(irisl,c(rep(l,100),rep(0,5O)set sgd(5)n-length(irisl,1)samp-sample(l:

10、/5)traind-irisl-sample(1,2)trainl-irisl-samp,3testd-irislsampJc(l,2)testl-irislsamp,3set sgd(l)ntrainnum-120nsampdim-2netnin-2net ahiddcn 2netnoutc2uj-2*matrix(runif(netnhiddenin5,nGtnhiddenin)b-2*(runif(net.nhidden)-0.5)net ujl-cb in d(u/,b)21. jW-2*matrix(ru nif(net n hidde n*riGt n out )-0 5, net

11、 n out, net n hidde n)B-2*(runif(net.nout)-0.5)net .u/2-cbind(W,B)24|25 .jtraind_s-traind26.traind_s,l-traind,l-mean(traind,l).traind_s,2-traind,2-mean(traind,2).traind_s,l-traind_sJl/sd(traind_s,1).traind_s,2-traind_s,2/sd(traind_s,2)|sampinex-rbind(t(traind_s),rep(l,ntrainnum)32 expectedout-traini

12、d Ieps-0.01a-e.3mc-0.837 maxiter-200638.iter-0- Ierrrec-rep(0,maxiter) I I- I 吧44|45 I即647 I48.即950 - I515253 - I5卸.55|56 - I57 I I61 62. |63 - I3 |65. |66 - I67. |63 - I69 - I70.outr己eVr己p日ntrmin门口川兔川日艾iter)ntrainnumj maxiter) sigmoid - -Funczion(x)y-l/(l exp(-x)fr(i in 1:maxiTer)hid_iinpuT -nez .w

13、lXsampinex;hid_out-sigmoid(hid_input);out_impuzl - rbind(hid_out3 rep(lJ irzrainnum):out_itnpuT2 -neT .w2%*%out_inputl;out_out-sigmoid(ouT_input2);outreci-t(out_ouz):err -expec Tedout-ouTut;sse-5um(errA2);errrec i| -sse;ie r-ir 1;if(sse=eps)breaDelta err*sigmoid(out_out)*(l-sigmoid(out_out)delta-(ma

14、trix(net.w21:(length(net.w2l,)-l)%*%Delta*sigmoid(hid_out)*(1-sigmoid(hid_out);dWex-Delta%*%t(out_inputl)dwex-delta%*%t(sampinex)iW=l)net.w2-net.w2 a*dWex;netwlv-nEtwl adwex;IIIIII7677 - I78.79- I80.elsenet.w2-net.w2 (l-mc)*a*dWex mc*dWexold;net.v/l-net.v/1 (l-mc)*a*dv/ex mc*dv/exold;dWexold-dWex;dw

15、exold odwex;81.82.Testd_s -zes td8?二 j 1 -zestd , 1 -mean( testd , 1)二己 j 2 -zestd ,2 -mean(testd , 2)*二己 j 1 -zestd , 1 /sd( testd_s , 1)二wstd_s j 2 -zestd , 2 /sd( testd_s , 2)87.-rbind(t(testd_5)j reptl,15Q-ntrainnum).Ihid_input -ne-z .wl%*%inex.Ihid_out-sigmoid(hid_input)out_inputl - rbind(hid_aut, reptl, 150-ntrminnum)*out_input2 -ne-z

温馨提示

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

评论

0/150

提交评论