Tensorflow:如何训练线性回归?

时间:2019-08-02 05:56:40

标签: python tensorflow

我正在学习通过TensorFlow训练线性回归模型。 这是一个很简单的公式:

  

y = W * x + b

我已经生成了示例数据:

enter image description here

经过模型训练后,我在Tensorboard中看到,当“ b ”完全错误时,“ W ”是正确的。因此,损失很高。

Here 是我的代码。

enter image description here

问题

为什么“ b ”被错误地训练?

我可以对优化器做些什么吗?

2 个答案:

答案 0 :(得分:1)

On line 16,您要添加标准偏差为300的高斯噪声!

noise = np.random.normal(scale=n, size=(N, 1))

尝试使用:

noise = np.random.normal(size=(N, 1))

使用均值= 0和std = 1(标准高斯噪声)。

此外,在此问题中,进行20k次迭代绰绰有余。

要详细了解正在发生的事情,请查看您的情节。给定一个x值,y的可能值具有数千个差异单位。这意味着有很多行可以解释您的数据。因此,B可以有​​很多值,但是无论您选择哪一个(甚至是真正的b值),所有这些都会损失很大。

答案 1 :(得分:1)

优化工作正常,但问题出在b参数上,该参数的估计值受noise的初始“骰子滚动”(标准偏差为{{ 1}})比实际值N(比b_true小得多)