- 前向传播的循环代码与向量化代码的对比
- 把X、B写作二维数组,即矩阵
- 左边的for循环就可以用右边的np.matmul来实现
- matmul是numpy执行矩阵乘法的一种方式
- 注意:此时所有的变量(X、W、B、Z、A_out)都是二维数组,即矩阵
- 向量的点积
- 向量的点积:两个向量的分量依次相乘,再将所有的乘积项加总
- 若将列向量a用2×1矩阵,列向量w用2×1矩阵来表示,则向量的点积就可以用矩阵的乘积来表示,其中向量a和w的点积等于矩阵a的转置乘以矩阵w
- 向量与矩阵的乘积
- 同样,我们将向量a看作2×1矩阵,则矩阵A的转置与矩阵W的乘积为1×2矩阵Z
- 其中Z11为A转置的第一行乘以W的第一列,Z12为A转置的第一行乘以W的第二列
- 矩阵与矩阵的乘积
- 矩阵的转置:令bij=aji,即B的第i行第j列元素是A的第j行第i列元素,记AT=B,也就是把矩阵A的第一行变成第一列,第二行变成第二列,…
- 计算AT与W的乘积:Z11为AT的第一行乘以W的第一列,Z12为AT的第一行乘以W的第二列,Z21为AT的第二行乘以W的第一列,Z22为AT的第二行乘以W的第二列
- 矩阵的乘法