深度学习入门与实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.5 计算图

神经网络的计算都是按照前向或反向传播过程组织的。首先计算出一个新的网络输出(前向过程),紧接着进行一个反向传输操作,后者用来计算出对应的梯度或导数。计算图解释了为什么用这种方式组织这些计算过程。下面将举一个例子说明计算图是什么。

J是由abc三个变量组成的函数,这个函数是3(a+bc)。计算这个函数实际上有三个不同的步骤,首先是计算b乘以c,即u=bc;然后计算v=a+u;最后输出J=3v,这就是要计算的函数J

可以把这三步画成如图2-14所示的计算图,有三个变量abc,第一步就是计算u=bc,在这内容周围放一个矩形框,它的输入是bc,接着第二步v=a+u,最后一步J=3v

举个例子,a=5,b=3,c=2,u=bc就是6,v的结果就是5+6=11。J是3倍的v,因此,J等于3×(5+3×2)。如果把它算出来,则实际上得到的33就是J的值。当有不同的或者一些特殊的输出变量时,例如本例中的J和逻辑回归中要优化的代价函数J,用计算图来处理这些计算就会很方便。通过一个从左向右的过程,可以计算出J的值。而从右到左的过程是用于计算导数的最自然的方式。

图2-14 计算图