![]() |
新手关于bp网络的一个问题
1 个附件
大家好,我是matlab新手,昨天用matlab做神经网络的仿真,可仿真结果与我预想的不一样,想请高手帮忙。以下是问题的描述:
我写的是两层sigmoid单元,8个输入单元,3个隐藏单元,8个输出单元,全相连。希望通过网络训练能使输出和输入一致,如输入【0 0 0 0 1 0 0 0】则输出为【0 0 0 0 1 0 0 0】。初始的网络权值都设为0,所有的mc设为0,lr设为0.3,并将biasConnect全设为0。用adapt函数训练样例:输入【1 0 0 0 0 0 0 0】训练值为【1 0 0 0 0 0 0 0】一次。 输出 = 0.5018 0.4982 0.4982 0.4982 0.4982 0.4982 0.4982 0.4982 输出层权值 = 0.0047 0.0047 0.0047 -0.0047 -0.0047 -0.0047 -0.0047 -0.0047 -0.0047 -0.0047 -0.0047 -0.0047 -0.0047 -0.0047 -0.0047 -0.0047 -0.0047 -0.0047 -0.0047 -0.0047 -0.0047 -0.0047 -0.0047 -0.0047 然而,按照我的计算,对于输出层的sigmiod单元的梯度方向是:d = o*(1-o)*(t -o)*x,其中d为梯度,o为网络输出,t为训练值,x为隐藏层的输出。w = w + d*lr ,其中w是输出层权值,d是梯度方向,lr是学习数率。按照我的计算,按上面的训练过程,所有o = 0.5,x = 0.5,对于第一个输出单元t = 1。这样d = 0.5*(1-0.5)*(1-0.5)*0.5 = 0.0625,而w = 0+0.0625*0.3 = 0.01875 。与仿真实验不符! |
回复: 新手关于bp网络的一个问题
多用一些样本,进行训练,试一下。并检查一下误差是多少
|
所有时间均为北京时间。现在的时间是 03:19。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.