我是Tensorflow的新手,我目前通过给定的网站https://www.tensorflow.org/get_started/get_started
了解它手册中说:
我们已经创建了一个模型,但我们还不知道它有多好。要评估训练数据的模型,我们需要一个y占位符来提供所需的值,我们需要编写一个损失函数。
损失函数测量当前模型与提供的数据之间的距离。我们将使用标准损失模型进行线性回归,该模型对当前模型与提供的数据之间的增量的平方进行求和。 linear_model - y创建一个向量,其中每个元素都是相应的示例的错误增量。我们调用tf.square来解决该错误。然后,我们将所有平方误差相加以创建单个标量,该标量使用tf.reduce_sum抽象所有示例的错误:"
squared_deltas =
tf.square(linear_model - y)
这是代码:
y = tf.placeholder(tf.float32)
squared_deltas = tf.square(linear_model - y)
loss = tf.reduce_sum(squared_deltas)
print(sess.run(loss, {x:[1,2,3,4], y:[0,-1,-2,-3]}))
这可能是一个简单的问题,但我是Tensorflow的初学者并且很难理解它。
答案 0 :(得分:1)
1)所以你说“我们为什么要训练一个简单的问题”是对的,但这只是一个介绍作品。对于任何机器学习任务,您需要评估您的模型以查看它有多好。在这种情况下,您只是尝试训练以找到最佳拟合线的系数。
2)任何机器学习环境中的损失函数都代表您的模型错误。这通常意味着您的计算值与地面实况值的“距离”的函数。将其视为内部评估分数。您希望最大限度地减少损失,因此渐变和参数更改将基于您的损失。
3/4)你的问题更多地与最小二乘回归有关。这是一种统计方法,可以在点之间创建最佳拟合线。增量表示计算值与真值之间的差异。目的是最小化正方形的面积,从而缩小误差并获得更好的最佳拟合线。
您在此Tensorflow示例中所做的是创建一个机器学习模型,该模型将使用基于最小二乘的系统自动学习最佳拟合线的系数。
答案 1 :(得分:0)
几乎所有问题都与损失函数有关。
损失函数是一个函数,用于确定输出与预期(正确)输出之间的距离。
它有两个用法:
帮助算法确定重量的调整是否有助于朝好的方向发展
确定准确度(〜系统猜测正确答案的次数)
损失函数是增量的总和:增加预期输出和实际输出之间的差异(delta)。
我认为它是平方来放大算法产生的错误。