在神经网络正向传播中,当计算权重和输入之间的点积时,哪个先出现?方法1)或方法2)?
1)Weight.dot(输入)+偏差
2)Input.dot(Weight)+ Bias
我已经看过两种方法。我很困惑。
最佳答案
两者之间的差异是点积中权重和输入之间的顺序。点积运算的commutative性质表明顺序无关紧要;无论结果如何。
话虽这么说,Weight.dot(Input) + Bias
是我最熟悉的。
从数学的角度来看,您可能会考虑使用Weight.dot(Input)
方法,因为权重被视为系数,因此首先出现是最合乎逻辑的。
从方案的角度来看,这将在很大程度上取决于实施情况;与权重相反,最好在输入对象上调用dot()
方法。
请注意,dot product与matrix multiplication不同。如您所述,矩阵乘法不一定是可交换的。我主要使用的库Tensorflow使用tf.matmul()
实现矩阵乘法。在神经网络的实现中,如果始终将权重用作第二个参数,则表明在这种情况下将首选第二种方法。
关于machine-learning - 神经网络正向传播中的点积,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48125622/