ben*_*n.d 3 neural-network encog
我有一个网络,有3个输入,2个隐藏层(每个6个神经元,Sigmoid激活函数)和一个神经元作为输出.我希望我的网络是连续的,因为我不是在看分类网络(希望这很有意义).
我的输入表示一年中的天数(0-365范围).我实际上将它们归一化到0-1范围(因为sigmoid).
我的问题如下:无论训练错误多少,重新使用训练集时的实际值都不正确.根据我运行的时代数量,我会得到不同的结果.
如果我训练我的网络超过几千次,我只会得到两个可能的结果.如果我少训练它,我会得到更多可能的结果,但价值远远超出我的预期.
我已经读到,对于连续网络,最好使用两个隐藏层.
我不确定我做错了什么.如果你能得到任何帮助,那就太好了.如果您需要更多详细信息,请告诉我们.
谢谢
更新1
我减少了训练集中的元素数量.这次网络聚集在少数时代.以下是培训错误:
培训网络
迭代#1.错误:0.0011177179783950614
迭代#2.错误:0.14650660686728395
迭代#3.错误:0.0011177179783950614
迭代#4.错误:0.023927628368006597
迭代#5.错误:0.0011177179783950614
迭代#6.错误:0.0034446569367911364
迭代#7.错误:0.0011177179783950614
迭代#8.错误:8.800816244191594E-4
最终错误:0.0011177179783950614
小智 5
您的输出神经元应该具有线性激活功能(而不是Sigmoid).线性激活函数的输出只是所有输入的加权和.
如果在输出层使用线性激活函数,则不必再将0到1之间的输出目标值向外扩展.
关于层数...一个隐藏层通常足以解决大多数问题,但它会因问题而异,您只需要尝试不同的网络结构,看看哪种方法效果最好.
| 归档时间: |
|
| 查看次数: |
946 次 |
| 最近记录: |