我在许多机器学习教程中看到,完全连接网络是通过构建两个矩阵来解释的,一个是权重矩阵,另一个是输入(或激活)矩阵,然后进行矩阵到矩阵的乘法(matmul)来形成线性方程组。
我看到的所有例子中都将输入作为matmul的第一个参数,权重张量作为第二个参数。为什么是这样?为什么我不能进行权重乘以输入(假设权重矩阵的列数与输入矩阵的行数相等)?
回答:
为了得到(n x 1)的输出,对于(n x 1)的输入,你应该从左边乘以一个(n x n)的矩阵,或者从右边乘以一个(1 x 1)的矩阵。
如果你用一个标量((1 x 1)矩阵)乘以输入,那么每个神经元从输入到输出之间就只有一条连接。如果你用一个矩阵乘以输入,对于每个输出单元,我们得到输入神经元的加权和。换句话说,输入中的每个神经元都连接到输出中的每个神经元,这正是完全连接的含义。
通过保持这种逻辑,你如何安排你的权重矩阵并不重要。