【深度学习2】计算图的通俗理解

 
       神经网络中计算利用的是正向或者反向传播来计算;首先通过前向转播计算出神经网络输出,紧接着反向传播计算出对应的梯度或者导数,这个过程运用到计算图。
 
正向传播的过程是计算J(总体成本)
反向传播的过程是计算对应参数的梯度,从而使用梯度下降训练神经网络
这两个过程都是基于计算图进行的。
 
 
 
 
什么是计算图?
       也称为有向图,通俗来说就是 有方向和节点的图,方向代表有箭头“→”, 每个箭头对应一个变量,有箭头对应有节点接收箭头末端和传递数据, 节点用于数学运算(+-*/......)
 
举个栗子:
 
 
计算图如下所示:
 
 
正向传递
概念:计算图表示的数学表达式 值传递的过程,代表变量的值从输入端左侧一直传递到输出端右侧
 
假设:x = 2 y = 3 z = 4时:
 
 
 
得到输出端变量g = 24,则说明单次正向传递的过程结束
 
正向传递在神经网络训练中有什么作用?
正向传播的过程是计算J(总体成本)
 
 
 
 
反向传播
概念:反向传播是根据最终输出结果计算参数梯度的过程,目的在于评估,评估这次的参数是否较优,是否还能使用梯度下降进行迭代
 
 
 
 
还是以上个栗子继续:
 
公式法计算x,y的梯度(偏导数)
 
 
 
带入数值得到:
 
小增量法进行导数的数值验算(验算计算图的结果)
 
 
 
 
计算x,y的梯度,与梯度下降以及最优解的关系?
       若决定网络的参数是x与y,那么通过每一次的正向传递的过程得到的最终输出值,也就是对应的总体成本,再通过反向传播的过程,计算出参数dJ/dx,与dJ/dy,从而通过梯度下降的公式,从而再不断迭代的过程中,慢慢靠近min{J(x,y)},最终得到的参数x,y即为最有解。