美文网首页
反向传播初理解(2019-11-21)

反向传播初理解(2019-11-21)

作者: yzuzhangxr | 来源:发表于2019-11-22 09:09 被阅读0次

对于简单的模型,我们可以手动求解出梯度,但是对于非常复杂的模型,比如一个100层的网络,我们不可能通过手写公式的办法去求解梯度。因此,这里就引入了反向传播算法,之前在pytorch框架下使用的自动求导本质上就是一个反向传播算法。

反向传播算法本质上就是一个链式求导法则的应用。

链式法则:比如函数f(x,y,z)=(x+y)z ,令q=x+y ,那么f=qz 根据链式求导法则,我们可以得到

\frac{\partial f}{\partial x}=\frac{\partial f}{\partial q}\frac{\partial q}{\partial x}                                (1)

\frac{\partial f}{\partial y}=\frac{\partial f}{\partial q}\frac{\partial q}{\partial y}                                 (2)

\frac{\partial f}{\partial z}=q                                             (3)

通过链式法则我们知道我们需要对其中的元素求导,那我们可以一层一层求导,然后将结果乘起来,这就是链式法则的核心,也是反向传播的核心。

和上面的例子一样,q=x+y , f=qz , 通过计算图可以将这个计算过程表达出来。

图1

上面图1绿色的数字表示其数值,下面红色的数字表示求出的梯度,我们可以一步步看一下反向传播的过程。

1.左右边开始,梯度毋庸置疑,肯定是1

2.\frac{\partial f}{\partial q}=z=-4 ,  \frac{\partial f}{\partial z}=q=3

3.\frac{\partial f}{\partial x}=\frac{\partial f}{\partial q}\frac{\partial q}{\partial x}=-4\times1=-4 , \frac{\partial f}{\partial y}=\frac{\partial f}{\partial q}\frac{\partial q}{\partial y}=-4\times1=-4

这样一步步我们就可以求出了\nabla f(x,y,z)

对于复杂的函数,比如sigmoid函数f(w,x)=\frac1{1+e^{-(w_0x_0+w_1x_1+w_2)}} 我们需要求解出\frac{\partial f}{\partial w_0} , \frac{\partial f}{\partial w_1} , \frac{\partial f}{\partial w_2}

将这个函数抽象成一个计算图,即

f(x)=\frac1x

f_c(x)=1+x

f_e(x)=e^x

f_w(x)=-(w_0x_0+w_1x_1+w_2)

画出计算图

图2

同样上面图2绿色的数字表示数值,下面红色的数字表示梯度,我们从后往前计算一下各个参数的梯度。首先最右边的梯度是1,然后经过\frac1x这个函数,这个函数的梯度是-\frac1{x^2},所以往前传播的梯度是1\times-\frac1{1.37^2}=-0.53,然后经过+1这个操作,梯度不变,这样不断往后传播就能够求得每个参数的梯度。

相关文章

  • 反向传播初理解(2019-11-21)

    对于简单的模型,我们可以手动求解出梯度,但是对于非常复杂的模型,比如一个100层的网络,我们不可能通过手写公式的办...

  • task1

    线性回归 反向传播算法 什么叫反向传播,有没有直观理解? 如何直观地解释 backpropagation 算法? ...

  • 反向传播算法

    对于方向传播的理解记录 简单易懂的理解:1.机器学习:一步步教你理解反向传播方法2.一文弄懂神经网络中的反向传播法...

  • 手推CNN,DNN算法流程和反向传播

    DNN 反向传播 DNN算法流程 卷积层反向传播 池化层反向传播 C NN算法流程

  • 神经网络之反向传播(BP)算法代码实现

    反向传播算法实战 本次的反向传播算法是基于上篇文章神经网络之反向传播算法(BP)详细公式推导实现的,如果对反向传播...

  • Deep learning-Lecture 2

    *反向传播 *Word representation *Sequence modeling *反向传播 Revie...

  • 神经网络之反向传播算法(BP)详细公式推导

    反向传播算法详细推导 反向传播(英语:Backpropagation,缩写为BP)是“误差反向传播”的简称,是一种...

  • 前向传播和反向传播

    前向传播和反向传播是神经网络中的重要基础。两者存在一些联系,所以本文将两者一起讲述,有利于大家理解。同时反向传播是...

  • RNN

    前馈神经网络? 反向传播算法?理论不理解 解读tensorflow之rnn

  • Lecture_backpropagation

    简介 本节将帮助读者对反向传播形成直观而专业的理解。反向传播是利用链式法则递归计算表达式的梯度的方法。 简单表达式...

网友评论

      本文标题:反向传播初理解(2019-11-21)

      本文链接:https://www.haomeiwen.com/subject/wfptwctx.html