计算图--反向传播

本文介绍了计算图的概念,它是复杂函数分解成简单计算的表示方式,有助于简化计算和梯度计算。接着,详细解释了反向传播的基本概念,通过一个Logistic回归的例子展示了如何利用计算图进行反向传播,计算损失函数关于权重的梯度,从而进行参数优化。
摘要由CSDN通过智能技术生成

一、计算图

计算图可以用于表示一个复杂的函数,它通过将复杂函数分解为简单的计算来得到最后的计算结果

下面用一个简单的例子来介绍计算图

为了方便表示,在此说明一下:

  • 矩形节点:输入功能或者输出功能

  • 圆形节点:接受一个数据的输入并按照节点运算规则计算,并将计算结果输出到下一个节点

函数: f ( x , y , z ) = ( x + y ) z f(x, y, z)=(x+y)z f(x,y,z)=(x+y)z 的计算图表示如下:

-2
5
3
4
12
x
+
y
*
z
output

顺着计算图的箭头方向进行计算的过程被称为前向传播,在这个例子中,前向传播的最后结果是12

看到这里,你可能会奇怪,为什么一个简单函数需要分解为好几步计算,事实上,上面的节点可以反复使用,当函数稍微复杂时,采用公式直接计算就不如上面的简洁明了

更重要的是在神经网络的反向传播算法中,需要计算梯度,这涉及到了导数,一般的人计算稍微复杂的导数都要花上点时间,更不要说计算机了,通过计算图的形式计算梯度,计算机可以快速地得出结果

二、反向传播

1、基本概念

前向传播是通过神经网络不断计算,向前推进,最后在输出层得到计算结果,但是这个计算结果可能与标准结果存在一定的误差,为了衡量这个误差,引入了损失函数的概念,通过损失函数来定义误差的概念,为了减小这个误差,以表达到优化的目的,采用了反向传播算法(Backpropagation Algorithm)来优化每层网络的参数,利用梯度下降算法,可以得到损失函数在局部的最小值,如果这个损失函数是凸函数,那么这个局部最小值就是全局最小值

梯度下降算法迭代公式:
w = w − α ∂ J ( w , b ) ∂ w w=w-\alpha \frac {\partial J(w,b) }{\partial w} w=wαwJ(w,b)

这个公式的难点在于如何计算梯度,因为梯度计算涉及到了求偏导,对于复杂的神经网络来说,求导不是一件容易的事

接下来看一个例子,使用计算图来计算偏导数

注:例子中没有使用偏导符号,是因为在计算图里面,每个节点都是一些最简运算,都是一对一的,所以使用求导运算,为了方便好看,我就没有写偏导符号,直接写求导符号了,这对最后结果没有任何影响,只是表示符号不一样而已

2、例子

以Logistic回归中的预测函数为例:

输出: y ^ = σ ( z ) \hat y=\sigma (z) y^=σ(z)

其中: σ ( z ) = 1 1 + e − z , z = w T x + b \sigma (z)=\frac {1}{1+e^{-z}},z=w^Tx+b σ(z)=1+ez1z=wTx+b

为了方便观察,这里我们取:$w^T=[2.00,-3.00],\ x^T=[-1.00, -2.00],b=-3.00 $

画出计算图的正向传播过程,如下图所示:

2
-1
-3
-2
-2
6
4
-3
1
-1
0.37
1.37
0.73
w0
*
x0
w1
*
x1
+
+
b
*-1
exp
+1
1/x
output

对于反向传播,我们需要使用求导的链式法则: d y ^ d w 0 = d y ^ d z d z d w 0 \frac {d\hat y}{dw_0}=\frac {d

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值