【复旦邱锡鹏教授《神经网络与深度学习公开课》笔记】计算图与自动微分

自动微分

自动微分是利用链式法则来自动计算一个复合函数的梯度。基本原理是将所有数值计算分解为一些基本操作和初等函数(算子),然后利用链式法则自动计算复合函数的梯度。
例如对下式求解微分,
f ( x ; w , b ) = 1 exp ⁡ ( − ( w x + b ) ) + 1 f(x;w,b)=\frac{1}{\exp(-(wx+b))+1} f(x;w,b)=exp((wx+b))+11
首先提取出上式中的算子,从最内层自变量 x x x开始按计算顺序向外依次可以提取出: × , + , × , exp ⁡ , + , ÷ \times,+,\times,\exp,+,\div ×,+,×,exp,+,÷,依照这个顺序可以建立计算图
在这里插入图片描述

上图中每个节点都是一个算子操作,两个指向算子的箭头表示参与运算的变量,每个箭头上又计算了经过结合后的式子 h h h对每个参与运算的变量的偏导数(红色数字代表变量取值,上图示例为 x = 1 , w = 0 , b = 0 x=1,w=0,b=0 x=1,w=0,b=0)。最后,根据链式法则,某个式子 f f f对于某个变量 x x x的偏导数,就是从变量 x x x到式子 f f f的路径上的所有偏导数(或带入取值后的偏导数值)的连乘。

如果函数和参数之间有多条路径,可以将这多条路径上的导数再进行相加,得到最终的梯度。(原理还是链式法则)

在这里插入图片描述

因此 f ( x ; w , b ) f(x;w,b) f(x;w,b) w w w的偏导数就是
∂ f ( x ; w , b ) ∂ w = ∂ h 1 ∂ w ∂ h 2 ∂ h 1 ∂ h 3 ∂ h 2 ∂ h 4 ∂ h 3 ∂ h 5 ∂ h 4 ∂ h 6 ∂ h 5 = x × 1 × − 1 × exp ⁡ ( h 3 ) × 1 × − 1 h 5 2 = x h 5 2 exp ⁡ ( h 3 ) = x exp ⁡ ( − ( w x + b ) ) ( exp ⁡ ( − ( w x + b ) ) + 1 ) 2 \begin{aligned} \frac{\partial f(x;w,b)}{\partial w} &=\frac{\partial h_1}{\partial w}\frac{\partial h_2}{\partial h_1}\frac{\partial h_3}{\partial h_2}\frac{\partial h_4}{\partial h_3}\frac{\partial h_5}{\partial h_4}\frac{\partial h_6}{\partial h_5}\\ &=x\times1\times-1\times\exp(h_3)\times1\times-\frac{1}{h_5^2}\\ &=\frac{x}{h_5^2}\exp(h_3)\\ &=\frac{x\exp(-(wx+b))}{(\exp(-(wx+b))+1)^2} \end{aligned} wf(x;w,b)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Don't move

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值