目前为止,我们已经用相对非正式的图形语言讨论了神经网络。 为了更精确地描述反向传播算法,使用更精确的计算图语言是很有帮助的。
将计算形式化为图形的方法有很多。
这里,我们使用图中的每一个节点来表示一个变量。 变量可以是标量、向量、矩阵、张量、或者甚至是另一类型的变量。
为了形式化我们的图形,我们还需引入操作这一概念。 操作是指一个或多个变量的简单函数。 我们的图形语言伴随着一组被允许的操作。 我们可以通过将多个操作复合在一起来描述更为复杂的函数。
不失一般性,我们定义一个操作仅返回单个输出变量。 这并没有失去一般性,是因为输出变量可以有多个条目,例如向量。 反向传播的软件实现通常支持具有多个输出的操作,但是我们在描述中避免这种情况,因为它引入了对概念理解不重要的许多额外细节。
如果变量是变量通过一个操作计算得到的,那么我们画一条从到的有向边。
[success]
结点代表任意类型的变量。箭头从输入指向输出。输出结点旁边的符号为操作。
如图表示z=x*y
我们有时用操作的名称来注释输出的节点,当上下文很明确时,有时也会省略这个标注。
计算图的实例可以参考图6.8。