【发布时间】:2018-01-28 08:34:45
【问题描述】:
我目前正在学习 TensorFlow,遇到了this notebook。
我对如何实现均方误差成本函数有疑问:
import tensorflow as tf
import numpy as np
predicted = np.array([1,2,3])
Y = np.array([4,5,6])
num_instances = predicted.shape[0]
cost = tf.reduce_sum(tf.pow(predicted-Y, 2))/(2*num_instances)
cost2 = tf.reduce_mean(tf.square(predicted - Y))
with tf.Session() as sess:
print(sess.run(cost))
print(sess.run(cost2))
我不明白为什么它必须将第一个成本函数的分母乘以 2。我从 MSE 的不同实现中得到了不同的答案,成本产生 4.5 而成本 2 产生 9。遵循均方公式错误,我应该得到一个 9 的值。但是第一个成本函数是在我试图学习的 python 笔记本中实现的。
【问题讨论】:
-
添加 1/2 因子有助于抵消从平方项的导数获得的 2。正如下面的答案所说,它对学习的影响不大。
标签: python-3.x tensorflow machine-learning linear-regression mean-square-error