Artificial intelligence 具有非常小斜率的反向传播总体误差图。。。这正常吗?

Artificial intelligence 具有非常小斜率的反向传播总体误差图。。。这正常吗?,artificial-intelligence,backpropagation,Artificial Intelligence,Backpropagation,我正在用反向传播算法训练神经网络,这是总体误差图: (我用以下公式计算总体误差:第6.3部分:总体训练误差) 我使用了电力趋势线,经过计算,我发现如果epoches=13000=>总体误差=0.2 这不是太高了吗 这个图表正常吗?看来培训过程会花太长时间。。。对吗?我该怎么办?没有更快的办法吗 编辑:我的神经网络有一个包含200个神经元的隐藏层。我的输入和输出层有10-12个神经元。我的问题是对字符进行聚类。(它通过有监督的训练将波斯语字符聚类到一些聚类中)因此,您使用的ANN有200个输入节

我正在用反向传播算法训练神经网络,这是总体误差图:

(我用以下公式计算总体误差:第6.3部分:总体训练误差)

我使用了电力趋势线,经过计算,我发现如果epoches=13000=>总体误差=0.2

这不是太高了吗

这个图表正常吗?看来培训过程会花太长时间。。。对吗?我该怎么办?没有更快的办法吗


编辑:我的神经网络有一个包含200个神经元的隐藏层。我的输入和输出层有10-12个神经元。我的问题是对字符进行聚类。(它通过有监督的训练将波斯语字符聚类到一些聚类中)

因此,您使用的ANN有200个输入节点,隐藏层中有10-12个隐藏节点,如果有,您使用的是什么激活函数用于隐藏层和输出层

这是标准的反向传播训练算法吗?您使用的是什么训练函数? 每种类型的训练函数都会影响训练的速度,在某些情况下,它的泛化能力也会受到影响。您不希望针对您的数据进行训练,这样您的神经网络只适合于您的训练数据

所以,理想情况下,你需要的训练数据可以是真实数据的子样本,比如说15%。 您可以使用基于共轭梯度的算法来训练数据: 这将很快训练你的人际网络

10-12个节点可能不适合您的数据,您可以尝试以5块为单位更改数量或添加另一层,一般来说,更多层将提高您的网络对问题进行分类的能力,但会增加计算复杂性,从而降低培训速度

假设这10-12个节点是您试图分类的“特征”

如果是这样,您可能希望将其正常化,因此根据您的激活功能将每个值重新缩放到0到1之间或-1到1之间(例如,tan sigmoidal将生成范围为-1到+1的值):


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

输入和目标输出是什么?是否使用单个隐藏层?隐藏层中有多少神经元?@BenHocking问题更新。曲线看起来类似于我以前训练过的神经网络。这可能是因为ANN学习的问题太复杂,或者您的训练数据不是最优的。你是在使用任何库还是完全从头开始?我有我的神经网络类(我不使用任何库)。而且我的学习率是0.01No,我的ANN有10-12个输入节点和10-12个输出节点,还有200个隐藏节点!与您拥有的输入节点数量相比,200个隐藏节点听起来非常高,通常您的隐藏层将具有相同的大小,因此在您的情况下,我预计会有5-30个隐藏节点,否则您的隐藏节点将使您的值饱和。如果你想一想,你是在向网络输入特征,并要求它找出如何求解多维函数,从而精确求解函数。那么,如果您只有10-12个输入,您是否希望有200个维度?你的意见是什么?