上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.3 NumPy的算术运算
机器学习和深度学习中涉及大量的数组或矩阵运算,本节我们将重点介绍两种常用的运算。一种是对应元素相乘,又称为逐元乘法,运算符为np.multiply()或*。另一种是点积或内积运算,运算符为np.dot()。
1.3.1 对应元素相乘
对应元素相乘是计算两个矩阵中对应元素的乘积。np.multiply函数用于数组或矩阵对应元素相乘,输出与相乘数组或矩阵的大小一致,格式如下:
其中x1、x2之间的对应元素相乘遵守广播规则,NumPy的广播规则将在1.6节介绍。下面我们通过一些示例来进一步说明。
矩阵A和B的对应元素相乘,可以直观地用图1-5表示。
NumPy数组不仅可以与数组进行对应元素相乘,还可以与单一数值(或称为标量)进行运算。运算时,NumPy数组的每个元素与标量进行运算,其间会用到广播机制。例如:
图1-5 对应元素相乘示意图
运行结果如下:
由此可见,数组通过一些激活函数的运算后,输出与输入形状一致。
运行结果如下:
1.3.2 点积运算
点积运算又称为内积,在NumPy中用np.dot表示,其一般格式为:
以下通过一个示例来说明点积运算的具体使用方法及注意事项。
运行结果如下:
以上运算可以用图1-6表示。
如图1-6所示,矩阵X1与矩阵X2进行点积运算,其中X1和X2对应维度(即X1的第2个维度与X2的第1个维度)的元素个数必须保持一致。此外,矩阵X3的形状是由矩阵X1的行数与矩阵X2的列数确定的。
图1-6 矩阵的点积运算示意图,对应维度的元素个数需要保持一致
点积运算在神经网络中的使用非常频繁,如图1-7所示的神经网络,其输入I与权重矩阵W之间的运算就是点积运算。
图1-7 点积运算可视化示意图