首页 🌀深度学习

欢迎回到目录查看更多总结:【deeplearning.ai】吴恩达深度学习课程笔记目录


通过上文logistic regression的讲解知道,正向运算可以计算输出结果,而反向运算可以计算梯度或导数,从而调整参数。
通过简单的运算式引出计算图的组成,从而引出深度学习中前向传播和反向传播的运算方法。

一、计算图与正向传播

假设函数$J(a,b,c)=3(a+bc).$按照运算顺序我们令,$u=bc,v=a+u,J=3v.$
ps.如果学过高等数学中的多元微积分,那么以下内容均可以类比多元微分学中的链式求导法则(chain rule),于是得到如下图(其实正向计算即分布计算过程):
在这里插入图片描述
分布计算的过程比较容易,交给计算机完成会更加高效,所以这部分略。

二、计算导数与反向传播

在这里插入图片描述
$$\frac{dJ}{dv}=3,\frac{dv}{da}=1.$$

$$\frac{dJ}{da}=\frac{dJ}{dv} \frac{dv}{da}=3\times1=3.$$

$$\frac{dJ}{dv}=3,\frac{dv}{du}=1.$$

$$\frac{dJ}{du}=\frac{dJ}{dv} \frac{dv}{du}=3\times1=3.$$

$$\frac{dJ}{db}=\frac{dJ}{dv} \frac{dv}{du} \frac{du}{db}=3\times1 \times 2=6.$$

三、编程符号规定

求导时,$\frac{dFinalOutputVar}{dvar}$表示最终输出变量对某个相关变量的导数。编程时,为了方便并统一表示这个求导变量,引入变量名:
$$dvar.$$
例如,$\frac{dJ}{du}\to du,\frac{dJ}{da}\to da.$ 同时,这样写也避开了中间变量。

四、总结

  • 一个计算流程图,正向计算成本函数$J$,需要优化的函数
  • 在计算一系列导数时,最有效的办法是反向(从右到左计算),跟着红色箭头走,层层递进求导(链式)


文章评论

    56rf 访客ChromeWindows
    23天 前 回复

    淘宝空包代发单号网www.kuaidzj.com

目录