赞
踩
闲看世间美景,静品岁月静好
大家好 ! 我是这花花世界中的小铁匠
在深度学习中,虽然 Pytorch,Tensorflow 等深度学习框架已经为我们设计好了求导引擎,但是,如果没有更加深入的去理解其中的概念是无法去深入的研究其工作的机制的,因此,在本节博文中,为大家讲解使用 Computation Graph 去计算梯度。
1、Input:x1,x2
2、Output:h1
3、Weights:w1,w2
4、Activation function :
5、h1 = sigmoid(w1x1+w2x2+b)
这样我们就从公式上建立了变量(x1,x2,w1,w2,b)之间的关系
现在我们可以直接通过链式求导法则进行梯度的求解
在这种计算方式中,需要注意的一点是在求导过程中红框中的部分实际上是已经经过重复计算了,在理论推导梯度的情况下并没有什么不好,相反公式还可以表示的很简洁。
但是在计算机的实现中,就会出现问题,因为计算机的算力是有限的,因此但你的计算量要求较高的时候,这种求导方式在计算机中就是一个很大的问题,所以就可以通过反向传播的方式借助 Computation Graph 来讲解。
下面我们先画出式子表示的神经网络结构及其对应的 Computation Graph 的结构。
进一步可以转化成 Computation Graph,该表示方式实际上与上面的神经网络结构的表现方式一致
梯度的计算可以根据 Computation Graph 的方式进行。关于梯度计算的部分后续会继续补充
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。