上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.4.1 机器学习算法的核心运算特征
我们注意到,在1.3节中,公式(5)的计算次数最多:在有n个点的情况下,需要进行2n次平均数运算、2n次乘法运算和2n次加法运算,且在每次乘法运算后均紧跟着一次加法运算(这种乘法运算与加法运算的组合,简称“乘加运算”)。
这种将乘法运算结果累加的算法,在计算机领域一般被称为“向量卷积”(Vector Convolution),也被称为“向量点积”(Vector Scalar Product)。其运算公式如下:
注意,公式(9)实际上就是连续进行n次乘加运算。如果用到了CPU的普通算术指令,那么其复杂度为O(n),也就是CPU运算耗费的时间与向量的元素数量成正比。
实际上,平均数运算也可被视为乘加运算:
如果样本是平面直角坐标系上的n个点,那么在一元线性回归算法的训练过程中,需要进行4n次乘加运算。而在推理过程中,也就是在确定了a和b两个参数后,已知x求y的过程中,只需进行1次乘加运算:
我们发现,基于乘加运算的向量卷积运算,是一元线性回归算法的核心运算。实际上,绝大多数机器学习算法的核心运算都是向量卷积运算。如果能实现对向量卷积运算的并行批量操作,就可以大大提升以一元线性回归算法为代表的各类机器学习算法的运算效率。
以一元线性回归算法为例,训练计算量为4n,而单次的推理计算量都为1。在绝大多数机器学习算法中,单次的推理计算量都大大低于训练计算量,但推理计算比训练计算在实时性和并发度上有可能更强。
我们在明确了机器学习算法的特征后,就可以讨论需要通过什么样的硬件来实现机器学习算法了。