【问题标题】:Output Value Of Neural Network Does Not Arrive To Desired Values神经网络的输出值没有达到期望值
【发布时间】:2013-02-02 16:02:10
【问题描述】:

我制作了一个也有反向传播的神经网络。它在输入层有 5 个节点,在隐藏层有 6 个节点,在输出层有 1 个节点,并且具有随机权重,我使用 sigmoid 作为激活函数。

我有两组数据供输入。

例如:

13.5 22.27 0 0 0          desired value=0.02
7 19 4 7 2                desired value=0.03

现在我用 5000 次迭代训练网络,否则如果出现错误,迭代将停止

value(desired - calculated output value) 小于等于 0.001。

每个输入集第一次迭代的输出值约为60,并且每次迭代都会减小。

现在的问题是第二组输入(期望值为 0.03)导致迭代停止,因为计算出的输出值为 3.001,但第一组输入没有达到它的期望值(即0.02),其输出约为 0.03。

已编辑:

我使用LMS算法并将错误阈值更改为0.00001以找到正确的错误值,但现在0.03和0.02期望值的最后一次迭代的输出值在0.023和0.027之间,这还不正确。

【问题讨论】:

    标签: neural-network backpropagation


    【解决方案1】:

    对于您的错误值停止阈值,您应该在一个时期(所有数据集的每个错误的总和)上计算错误,而不仅仅是数据集中的一个成员。这样,您将不得不增加错误阈值的值,但这会迫使您的神经网络对您的所有示例进行良好的分类,而不仅仅是对某些示例。

    【讨论】:

    • 谢谢,你的意思是我应该将两个输入集的错误相加以获得错误停止阈值?
    • 通常在更新神经网络的权重之前,您必须遍历所有数据集。您的问题是您的停止阈值仅在数据集的一个“行”而不是整个数据集上计算。所以你应该对每一行的错误求和,然后从这里说所有错误需要小于 x。如果您有 1000 个,假设您可能希望阈值或多或少小于 1000*0.01。您应该尝试根据 epoch 的数量打印错误并查看发生了什么。
    • 我测试过,sumOferror 不能小于 0.020,例如第一组的输出约为 0.029(desired =0.020),第二组的输出约为 0.041(desired = 0.030)。所以不是好方法。还有其他方法吗?谢谢
    猜你喜欢
    • 2014-07-05
    • 2011-02-09
    • 2010-10-13
    • 2011-02-11
    • 2015-02-23
    • 2020-03-15
    • 2016-02-24
    • 1970-01-01
    相关资源
    最近更新 更多