为什么';t感知器&x27;的实现遵循<;python机器学习>;?

为什么';t感知器&x27;的实现遵循<;python机器学习>;?,python,machine-learning,Python,Machine Learning,我是机器学习的初学者。我从这本书和一些在线视频开始学习 我对“python机器学习”中感知器的实现感到困惑。这是公式: 这是公式的python实现: 但是根据公式,它是W*X,而不是实现中的X*W。对于矩阵,它们是不同的。(因为,如果X是二维数组,那么它就是矩阵乘法。)。为什么执行不遵循公式 书中Iris示例中上述python代码的实际值如下: w[1:]: [-0.68 1.82] X: [[ 3.3 0. ] [ 3.32 0. ] [ 3.34 0.

我是机器学习的初学者。我从这本书和一些在线视频开始学习

我对“python机器学习”中感知器的实现感到困惑。这是公式:

这是公式的python实现:

但是根据公式,它是W*X,而不是实现中的X*W。对于矩阵,它们是不同的。(因为,如果X是二维数组,那么它就是矩阵乘法。)。为什么执行不遵循公式

书中Iris示例中上述python代码的实际值如下:

w[1:]:  [-0.68  1.82]

X: [[ 3.3   0.  ]
    [ 3.32  0.  ]
    [ 3.34  0.  ]
      ..., 
    [ 7.94  6.08]
    [ 7.96  6.08]
    [ 7.98  6.08]]

谢谢。

这是个好问题。答案应该是双重的

W点X=?=X点W 你说得很对,交换X和W会得到不同的矩阵乘法结果

然而,在这种情况下,w和x实际上是向量,或m*1矩阵。点积产生标量。所以在这种情况下,'x点w'和'w点x'是相同的

正如您所看到的,x被解释为[x0,x1,x2,…,xm],这表明了它的向量性质

此函数的作用是将权重为
w
的神经元的输入组合起来。这些输入是前一层神经元的输出。我们知道神经元的输出是一个标量

关于偏置项W_0[0] 实际上,实现的不同之处在于在多项式的末尾追加了一个w_0。这被称为偏差项,它修改输入或
x
的线性组合结果。在实现中使用此偏差术语是一种常见做法。但在数学中,我们通常忽略它,因为它不会改变组合的线性性质。当然,在某些情况下,这个偏差项会在数学表示中明确列出

======更新======= 由于问题已更新,因此增加了对实际情况的进一步解释

在本例中,第一个维度是结果的“”

考虑一个更简单的情况:

w[1:]:  [-0.68  1.82]

X: [ 3.3   0.  ]
正如@Peater和我所解释的,X和w都是向量

在实际设置中,X不是矩阵,而是随采样或时间变化的vactor变量。假设X的维数为[n*2],这意味着X是一个具有n个样本的二维向量


这里的示例意味着在不同的时间帧或不同的像素中对变量进行不同的评估。X的这个维度被广播到结果中。

点积是一个标量,
a.b==b.a
。请参阅numpy dot,如果X是二维数组,则是矩阵乘法。如果开关X和W存在编译错误。所以W*X和X*W的结果不一样。看:谢谢。我刚刚更新了添加X和W的实际值的问题。这些值来自书中的示例。我们将看到X是m*2矩阵。所以在这种情况下,“x点w”和“w点x”是不一样的?