神经网络中的权重衰减权重更新和收敛

机器算法验证 机器学习 神经网络 收敛
2022-03-14 20:51:56

我有一个用于类分配的神经网络(我使用 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 我说网络已经收敛。这样想对吗?

让我知道是否需要更多信息。

1个回答

权重衰减会在某些时候损害你的神经网络的性能并不奇怪。让你的网络的预测损失为和权重衰减损失给定一个在两者之间建立折衷 的系数 在这种损失的最优情况下,两项的梯度总和必须为零: 这清楚地表明我们不会处于训练损失的最佳状态。更重要的是,的梯度越陡峭LRλ

L+λR.
L=λR.
λL,在凸损失函数的情况下,这意味着与最优值的距离更大。