我有一个用于类分配的神经网络(我使用 java 创建的),当我不使用任何权重衰减值时它正在工作,但是当我使用大于或等于 0.001 的值时,我的准确度会大大下降。数据被标准化。我不确定这是否是我计算收敛条件的方式,或者我的权重衰减更新是否不正确。我正在使用 sigmoid 激活函数。我的分类器是二进制 0 或 1,分类时如果我的输出 > .5,则示例为 1,<= .5,示例为 0。
在我的测试中,我使用了 5 个隐藏神经元 + 1 个偏置,11 个输入神经元 + 1 个偏置和 1 个输出神经元。当以 0 重量衰减运行时,我得到 99% 的准确度,但是当我使用 0.001 的值时,我得到 56% 的准确度。我使用的精度是 TP + TN / (TP + TN + FP + FN)
我现在的体重更新是
体重 = 体重 - 学习率 * 体重变化 - 体重 * 体重衰减
我的收敛测试是如果当前权重之和与之前权重之和的绝对差 < 0.00001 我说网络已经收敛。这样想对吗?
让我知道是否需要更多信息。