神经网络前向传播中的点积

时间:2018-01-06 08:33:31

标签: machine-learning neural-network

在神经网络前向传播中,当计算权重和输入之间的点积时,哪一个先来?方法1)或方法2)?

1)Weight.dot(输入)+偏差

2)Input.dot(Weight)+ Bias

我见过这两种方法。我很困惑。

2 个答案:

答案 0 :(得分:2)

两者之间的差异是点积中的权重和输入之间的顺序。然而,点积运算的commutative性质表明订单无关紧要;结果无论如何都是一样的。

话虽如此,Weight.dot(Input) + Bias是我最熟悉的。

从数学的角度来看,你可能会考虑Weight.dot(Input)使用的方法,因为权重被认为是系数,因此首先出现的是最符合逻辑的意义。

从程序化的角度来看,它将在很大程度上取决于实施;可能最好在输入对象上调用dot()方法而不是权重。

请注意dot productmatrix multiplication不同。如您所述,矩阵乘法不一定是可交换的。我主要使用的库Tensorflow使用tf.matmul()实现矩阵乘法。在神经网络的实现中,Weights总是被用作第二个参数,这表明在这种情况下第二种方法将是首选。

答案 1 :(得分:0)

两个向量的点积是可交换的。它是input.dot(weight)还是weight.dot(输入)无关紧要。

来源:http://www.citycollegiate.com/vectorXIh.htm