Meaching Learning -【Backpropagation-a simple example】

Meaching Learning -【1-Backpropagation-a simple example】

Backpropagation-a simple example


闲看世间美景,静品岁月静好
大家好 ! 我是这花花世界中的小铁匠


在深度学习中,虽然 Pytorch,Tensorflow 等深度学习框架已经为我们设计好了求导引擎,但是,如果没有更加深入的去理解其中的概念是无法去深入的研究其工作的机制的,因此,在本节博文中,为大家讲解使用 Computation Graph 去计算梯度。

A simple example

简单节点设计

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)之间的关系


现在我们可以直接通过链式求导法则进行梯度的求解
针对变量 x1,x2,w1,w2,b 进行求导
在这种计算方式中,需要注意的一点是在求导过程中红框中的部分实际上是已经经过重复计算了,在理论推导梯度的情况下并没有什么不好,相反公式还可以表示的很简洁。
在这里插入图片描述
但是在计算机的实现中,就会出现问题,因为计算机的算力是有限的,因此但你的计算量要求较高的时候,这种求导方式在计算机中就是一个很大的问题,所以就可以通过反向传播的方式借助 Computation Graph 来讲解。


下面我们先画出式子表示的神经网络结构及其对应的 Computation Graph 的结构。
神经网络结构


进一步可以转化成 Computation Graph,该表示方式实际上与上面的神经网络结构的表现方式一致
以计算流图的形式呈现神经网络结构梯度的计算可以根据 Computation Graph 的方式进行。关于梯度计算的部分后续会继续补充

参考资料

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值