在神经网络前向传播中,当计算权重和输入之间的点积时,哪一个先来?方法1)或方法2)?
1)Weight.dot(输入)+偏差
2)Input.dot(Weight)+ Bias
我见过这两种方法。我很困惑。
答案 0 :(得分:2)
两者之间的差异是点积中的权重和输入之间的顺序。然而,点积运算的commutative性质表明订单无关紧要;结果无论如何都是一样的。
话虽如此,Weight.dot(Input) + Bias
是我最熟悉的。
从数学的角度来看,你可能会考虑Weight.dot(Input)
使用的方法,因为权重被认为是系数,因此首先出现的是最符合逻辑的意义。
从程序化的角度来看,它将在很大程度上取决于实施;可能最好在输入对象上调用dot()
方法而不是权重。
请注意dot product与matrix multiplication不同。如您所述,矩阵乘法不一定是可交换的。我主要使用的库Tensorflow使用tf.matmul()
实现矩阵乘法。在神经网络的实现中,Weights总是被用作第二个参数,这表明在这种情况下第二种方法将是首选。
答案 1 :(得分:0)
两个向量的点积是可交换的。它是input.dot(weight)还是weight.dot(输入)无关紧要。