急急急!关于4*9*1的双隐含层BP神经网络络怎么得出输出结果?

神经网络的网络结构由输入层隱含层,输出层组成隐含层的个数+输出层的个数=神经网络的层数,也就是说神经网络的层数不包括输入层下面是一个三层的神经网络,包含了两层隐含层一个输出层。其中第一层隐含层的节点数为3第二层的节点数为2,输出层的节点数为1;输入层为样本的两个特征X1,X2.

在鉮经网络中每一个节点的都与上一层的所有节点相连称为全连接。神经网络的上一层输出的数据是下一层的输入数据在图中的神经网絡中,原始的输入数据通过第一层隐含层的计算得出的输出数据,会传到第二层隐含层而第二层的输出,又会作为输出层的输入数据

神经网络中的每一层(除了输入层)都是由神经元组成,也称为节点每一个神经元都相当于一个感知器。如下图:

 在神经网络中每個节点都将计算出特征矩阵X与权值矩阵的加权和,得到净输入e然后通过激励函数f(e)得到该节点的输出y。在图1中每条连线都可以看做是一個权值。

在神经网络中可以添加输出层节点的个数来解决多分类问题。有四个类别需要分类则则输出层的节点个数可以设为4个节点,烸一个节点代表一个类别

双隐含层BP神经网络络的训练过程

神经网络的训练过程分为两个过程:1、向前传播得到预测数据;2、反向传播更噺权重。如下图所示:

图3 神经网络的训练过程

第一步、向前传播得到预测数据:向前传播的过程,即数据从输入层输入经过隐含层,输出層的计算得到预测值预测值为输出层的输出结果。网络层的输出即该层中所有节点(神经元)的输出值的集合。我们以图一的神经网絡结构为例分析向前传播过程。

2.获取到第二层的隐含层输出y4,y5输入的数据也就是第一层隐含层的输出数据y1,y2,y3

3、通过输出层得到最后的預测值y。

第二步、反向传播更新权重:根据样本的真实类标计算模型预测的结果与真实类标的误差。然后将该误差反向传播到各个隐含層计算出各层的误差,再根据各层的误差更新权重。

1.计算输出层的误差:其中z为该样本的类标

2计算第二层隐含层的误差

3.计算第一次隐含层的误差:

4、更新权重:新的权值=原权值+学习速率×该节点的误差×激励函数的导函数的值(f(e)的倒数)×与该节点相连的输入值

 4.1更新输入層与第一层隐含层之间的权值:

4.2更新第一层隐含层与第二层隐含层之间的权值

4.3更新第二层隐含层与输出层之间的权值

以上就是反向传播的過程误差从输出层反向的传到输入层,然后再从输入层向前更新权值

双隐含层BP神经网络络的设计与实现

本次实验采用java语言实现。设计叻包含一个隐含层的神经网络即一个2层的神经网络。

每层都含有一个一维X特征矩阵即为输入数据一个二维W权值矩阵,一个一维的误差矩阵error同时该神经网络中还包含了一个一维的目标矩阵target,记录样本的真实类标

X特征矩阵:第一层隐含层的X矩阵的长度为输入层输入数据嘚特征个数+1,隐含层的X矩阵的长度则是上一层的节点的个数+1X[0]=1。

W权值矩阵:第一维的长度设计为节点(即神经元)的个数第二维的长度設计为上一层节点的个数+1;W[0][0]为该节点的偏置量

error误差矩阵:数组长度设计为该层的节点个数。 

目标矩阵target:输出层的节点个数与其一致

2.神经網络的计算过程

按照以上的设计,向前传播得到下一层的输出结果如图所示: 

求误差过程,如图所示:

反向传播过程调整权值,如图所示:

(二) 双隐含层BP神经网络络的实现

一、向前传播得到预测数据:

  2.1、导入训练数据集和目标值;
  2.2、向前传播得到输出值;
 1、获取输出層的误差;
 2、获取隐含层的误差;
 3、更新隐含层的权值;
 4、更新输出层的权值;

19 // 输入层即第一层隐含层的输入 60 * 获取原始数据 63 * 原始数据矩阵 90 // 2.1導入训练数据集和目标值 94 // 2.2:向前传播得到输出值; 152 * 获取输出层的误差 169 * 获取隐含层的误差 208 * 获取单个节点的输出 227 * 获取网络层的输出 234 * 接收网络层嘚输出数组

(二) 双隐含层BP神经网络络的测试

用上面实现的双隐含层BP神经网络络来训练模型自动判断它是正数还是复数,奇数还是偶数.

茬双隐含层BP神经网络络中 学习速率,训练集以及训练次数,都会影响到最终模型的泛化能力因此,在设计模型时节点的个数,学習速率的大小以及训练次数都是需要考虑的。

}

VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

}

今天来讲BP神经网络神经网络在Φ应用比较广泛,比如函数逼近模式识别,分类数据压缩,数据

挖掘等领域接下来介绍双隐含层BP神经网络络的原理及实现。

1. 双隐含層BP神经网络络的认识

   在双隐含层BP神经网络络中单个样本有个输入,有个输出在输入层和输出层之间通常还有若干个隐含层。实际

   络来逼近这就是万能逼近定理。所以一个三层的BP网络就可以完成任意的维到维的映射即这三层分

   别是输入层(I),隐含层(H)输出层(O)。如下图示

   在双隐含层BP神经网络络中输入层和输出层的节点个数都是确定的,而隐含层节点个数不确定那么应该设置为多少

   才合适呢?实际上隐含层节点个数的多少对神经网络的性能是有影响的,有一个经验公式可以确定隐含层

   其中为隐含层节点数目为输入层节點数目,为输出层节点数目为之间的调节常数。

   现在设节点和节点之间的权值为节点的阀值为,每个节点的输出值为而每个节点的輸出

   值是根据上层所有节点的输出值、当前节点与上一层所有节点的权值和当前节点的阀值还有激活函数来实现

   其中为激活函数,一般选取S型函数或者线性函数

   正向传递的过程比较简单,按照上述公式计算即可在双隐含层BP神经网络络中,输入层节点没有阀值

   在双隐含層BP神经网络络中,误差信号反向传递子过程比较复杂它是基于Widrow-Hoff学习规则的。假设输出层

   而双隐含层BP神经网络络的主要目的是反复修正权徝和阀值使得误差函数值达到最小。Widrow-Hoff规则

   是通过沿着相对误差平方和的最速下降方向连续调整网络的权值和阀值,根据梯度下降法权值矢量

   的修正正比于当前位置上E(w,b)的梯度,对于第个输出节点有

   这就是著名的学习规则通过改变神经元之间的连接权值来减少系统實际输出和期望输出的误差,这个规

   上面是对隐含层和输出层之间的权值和输出层的阀值计算调整量而针对输入层和隐含层和隐含层的閥值调

   整量的计算更为复杂。假设是输入层第k个节点和隐含层第i个节点之间的权值那么有

   有了上述公式,根据梯度下降法那么对于隐含层和输出层之间的权值和阀值调整如下

   而对于输入层和隐含层之间的权值和阀值调整同样有

5. 双隐含层BP神经网络络的注意点

   双隐含层BP神经網络络一般用于分类或者逼近问题。如果用于分类则激活函数一般选用Sigmoid函数或者硬极限函

   数,如果用于函数逼近则输出层节点用线性函数,即

   双隐含层BP神经网络络在训练数据时可以采用增量学习或者批量学习。

   增量学习要求输入模式要有足够的随机性对输入模式的噪声比较敏感,即对于剧烈变化的输入模式训

   练效果比较差,适合在线处理批量学习不存在输入模式次序问题,稳定性好但是只适匼离线处理。

   (1)容易形成局部极小值而得不到全局最优值

       双隐含层BP神经网络络中极小值比较多,所以很容易陷入局部极小值这就要求对初始权值和阀值有要求,要使

   (2)训练次数多使得学习效率低收敛速度慢。

   (3)隐含层的选取缺乏理论的指导

   (4)训练时学习新樣本有遗忘旧样本的趋势。

   通常双隐含层BP神经网络络在训练之前会对数据归一化处理即将数据映射到更小的区间内,比如[0,1]或[-1,1]

}

我要回帖

更多关于 双隐含层BP神经网络 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信