我最近一直在从头开始编写线性回归算法,以了解它背后的数学是如何工作的(事先有点黑匣子),所以我开始区分成本函数。在没有意识到的情况下,我使用平方误差作为成本函数 - MSE,但没有除以数据集长度。使用均方误差比仅对误差的平方求和有什么好处(最小值或其他方法的更快方法)?
在梯度下降中使用均方误差
数据挖掘
机器学习
线性回归
优化
梯度下降
2021-10-14 14:43:41
2个回答
不,完全一样。优化一个函数和同一个函数除以一个常数是等价的,无论是在解析意义上还是数值意义上。您将获得完全相同的最佳参数。
由于梯度是根据损失计算的,所以它是不同的。tf.reduce_sum根据批量大小,在使用或其他汇总方法时应降低学习率。两者都可以产生成功的训练,但是有一个问题。
批次大小有时可能会有所不同,因为最后一批较小,或者您可能只是为了好玩而改变批次大小(前提是您已经建立了具有这种可能性的图表)。在这种情况下reduce_sum将导致波动的损失值,而不是仅仅减少。你想避免这种情况。
TLDR:避免reduce_sum并reduce_mean用于线性回归,尽管学习率更高。
仅供参考四参数线性回归:
100 的批量大小和 0.01 的 GradientDescent 学习率在 100 个 epoch 中产生 16.93 的 MSE
100 的批量大小和 0.0001 的 GradientDescent 学习率在 100 个 epoch 中产生 1693.31 的 SSE
这是完全相同的,并且也产生相同的参数(偏差和权重),随机种子锁定。
其它你可能感兴趣的问题