成本函数中的额外因子2

一些TensorFlow示例是这样计算成本函数的:

cost = tf.reduce_sum((pred-y)**2 / (2*n_samples))

所以商数是样本数量,乘以二

添加额外因子2的原因,是为了在反向传播时对成本函数进行微分时,可以抵消掉1/2的因子,从而节省一个操作吗?

如果是这样,现在是否仍然推荐这样做?这是否真的能带来显著的性能提升?


回答:

在数学上这样做很方便,因为不需要一直携带0.5这个因子。但在代码中,这并不会产生很大的影响,因为这种改变使得梯度(以及相应的可训练变量的更新)变大了或变小了两倍。由于更新是乘以学习率的,这个因子2可以通过轻微调整超参数来抵消。我说轻微,是因为在模型选择过程中,通常会尝试以对数尺度调整学习率:0.1, 0.01, 0.001, ….

因此,无论损失函数中使用了什么特定的公式,其效果都是微不足道的,不会导致任何训练速度的提升。选择合适的学习率更为重要。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注