具有非常小斜率的反向传播整体误差图...这是正常的吗?

时间:2012-01-19 21:56:13

标签: artificial-intelligence backpropagation

我正在使用反向传播算法训练神经网络,这是整体错误的图表:

enter image description here

(我用这个公式计算总误差:http://www.colinfahey.com/neural_network_with_back_propagation_learning/neural_network_with_back_propagation_learning_en.html第6.3部分:整体训练错误)

我使用了Power Trendline,经过计算,我看到如果epoches = 13000 =>总误差= 0.2

这不是太高了吗?

这张图表是否正常?似乎培训过程需要很长时间......对吗?我该怎么办?有没有更快的方法?

编辑:我的神经网络有一个隐藏层,有200个神经元。我的输入和输出层有10-12个神经元。我的问题是聚类字符。 (它通过监督培训将波斯人物聚集成某些聚类

1 个答案:

答案 0 :(得分:1)

因此,您在隐藏层中使用具有200个输入节点和10-12个隐藏节点的ANN,如果有任何隐藏图层和输出图层,您使用的是什么激活功能?

这是一种标准的反向传播训练算法,您使用的是哪种训练功能? 每种类型的训练功能都会影响训练的速度,在某些情况下会影响训练的能力,你不想训练你的数据,这样你的神经网络才有利于你的训练数据。

理想情况下,您希望体面的训练数据可以作为您真实数据的子样本,比如15%。 您可以使用基于共轭梯度的算法训练您的数据: http://www.mathworks.co.uk/help/toolbox/nnet/ug/bss331l-1.html#bss331l-2 这将快速培训您的网络。

10-12个节点可能不适合您的数据,您可以尝试更改5个块中的数字或添加另一个图层,通常更多图层将提高网络对您的问题进行分类的能力,但会增加计算量复杂性因此减缓了培训。

据推测,这些10-12个节点是您尝试分类的“功能”?

如果是这样,您可能希望对它们进行标准化,因此根据您的激活函数将每个重新缩放到0到1或-1到1之间(例如,tan sigmoidal将产生范围-1到+1的值): http://www.heatonresearch.com/node/706

您还可以训练神经网络,以确定隐藏层中应该具有的理想节点数。