原标题:深度 | BP表达式与硬件架构:相似性构建更高效的计算单元
选自Medium
作者:Yaroslav Bulatov
机器之心编译
参与:蒋思源
反向传播是当前深度学习主要使用的参数更新方法,因此深度学习的硬件设计也需要拟合这种反向传播的计算结构。本文从反向传播的抽象表达开始简要地分析了 BP 算法和脉动阵列架构(systolic array architecture)之间的相似性,从而表明了脉动阵列架构适合执行 BP 和进行模型训练。
在并行计算的体系架构中,脉动阵列(systolic array)是紧密耦合的数据处理单元(data processing unit/DPU)的一种同构网络。每一个结点或 DPU 独立地计算部分结果,并将该部分结果作为从上游单元接受数据的函数,在将结果储存在当前结点后会传递到下游单元。本文重点在于论述反向传播算法的抽象表达,并讨论表达式与这种脉动阵列架构之间的相关性。
假设我们有一个 n=3 的多层网络架构,且运算的对象为 m 维向量,因此预测或推断的过程可以表示为:
我们将预测函数 Y 放入到损失函数 l 中以进行最优化。为了表示这种结构,我们使用圆圈表示复合函数算子(Ring 算子),因此目标函数 L 可以写为:
根据链式法则,目标函数的导数可以根据矩阵乘法的形式写为:
其中,链式乘法中的每一项都是雅可比矩阵(Jacobian matrix)。为了更形象地说明这一过程,假设我们的损失函数 l 有以下形式:
层级函数 f 仅仅只是简单地求输入向量中每一个元素的平方:
它们的雅可比矩阵就可以写为以下形式:
领取专属 10元无门槛券
私享最新 技术干货