为什么我的BP神经网络的预测输出结果几乎是一样的呢

秋风若影 发布于 2014/11/11 17:14
阅读 4K+
收藏 1

用java写了一个BP神经网络,45维的输入,一维的输出,隐藏层有20个神经元,隐藏层和输出层的神经元的激活函数都是用的sigmoid函数,输入数据的每个分量的取值范围是1-15的整数,输出数据也是1-15的中的整数。用训练集训练之后,在用测试集测试,结果,每一个测试样本的输出几乎是一样的,相差很小,约0.00001,这是为什么?

求大神解释并指导!

加载中
0
blur
blur

你需要正规化数据。即,将1-15转换成0-1。

请参考

http://fantasticinblur.iteye.com/blog/1465497

秋风若影
秋风若影
在算误差时是要将期望输出正规化后与实际输出相减吗?如果是这样的话,那这个网络用来做预测时,得到的结果怎么还原成1-15之间的数呢?
0
blur
blur

每个节点只能表示两种状态:激活或抑制。

显层四个节点。

0000 - 0

0001 - 1

0010 - 2

0011 - 3

...

D - 14

E - 15


输出层同理。

一定要记住,一个神经元只能表达两种状态。

秋风若影
秋风若影
如果这样的话,那输出层有几个神经元呢,激活函数是sigmoid函数吗?反向传播的时候输出层神经元的误差怎么算呢?
0
t
tangming10000
考虑偏置木有啊
t
tangming10000
@秋风若影 那把输入归一化以后再输入试试呢
秋风若影
秋风若影
肯定有啊
0
渠富林
渠富林
不明觉厉
0
Tonnychina
Tonnychina
完全没看明白, 不明觉厉
0
blur
blur

输出层同理。即,输出层是4个神经元。

激活函数和神经元数目没有关系。你可以继续使用sigmoid函数。同理,delta的计算也和神经元数目无关。

blur
blur
是的
秋风若影
秋风若影
期望输出也要转换成xxxx这样吗?
返回顶部
顶部