机器学习:为什么xW + b而不是Wx + b?

Kev*_*ier 3 machine-learning tensorflow

我开始学习机器学习.现在我试着玩tensorflow.

我常常看到这样的例子:

pred = tf.add(tf.mul(X, W), b)
Run Code Online (Sandbox Code Playgroud)

我也在一个简单的numpy实现中看到了这样一条线.为什么总是x*W+b用而不是W*x+b?如果矩阵以这种方式成倍增加是否有优势?我看到它是可能的(如果X,W并且b被转置),但我没有看到优势.在数学课上我们总是只使用Wx+b.

非常感谢你

Rob*_*Rob 5

这就是原因:

  • 默认情况下,w是权重向量,在数学中,向量被视为列,而不是行.

  • X是数据的集合.它是一个矩阵nxd(其中n是数据的数量,d是特征的数量)(大写字母X是矩阵nxd,小写字母只有1个数据1 xd矩阵).

要正确地将两者相乘并在正确的特征中使用正确的权重,您必须使用X*w + b:

  • 使用X*w,您可以通过相应的权重来重复每个要素,并通过添加b,在每个预测中添加偏差项.

如果乘以w*X,则乘以(1 xd)*(nxd)并且没有任何意义.