计算图
计算图是一种用逻辑图的方式,来表示数据在一个有向无环图中的流转,帮助我们清晰的理解数据的传播过程与处理方式,以及各种计算之间的依赖关系。
接下来要讲到的反向传播,就是用到了计算图,在之后,我也会用计算图来表示所有的数据流转过程和计算方式。
反向传播
首先什么是反向传播?其实在神经网络的内部中,是由前向传播和反向传播组成的,前面我们所有讲到的公式以及计算顺序,都是属于前向传播,即计算出预测结果和损失,而反向传播的任务就是计算出损失函数关于每一个参数的偏导数。以下是我个人的理解:
使用计算图来表示反向传播
假设J(a,b,c) = 3(a+bc) 可以把函数分解为以下几个部分:
下面我们来构建前向传播和反向传播:
(1)前向传播:
(2)反向传播:
需要解释一下,这里所有的导数都是关于J这个损失函数的简写,即da=da/dJ、db=db/dJ、dc=dc/dJ、dU=dU/dJ、dV=dV/dJ,下面的文章中也是一样。
大家可以看出来是怎么得到最后三个关于a、b、c的导数的嘛?其实我相信学过高数的小伙伴一定知道链式法则吧!!其实计算过程非常简单,如下:
据老师所说,我们非常熟悉的人工智能框架Tensorflow就是用计算图表示的,tensor就是数据,flow就是流~
计算逻辑回归的偏导数
首先我们先复习一下逻辑回归(Logistic Rergression)函数:
(1)首先,他是一个分类模型,通常用于二分类
(2)其次,它属于广义线性模型(generalized linear model),具有wx+b的形式
logistic regression的前向传播是这样的:
(1)
(2)
(3)
用图像来表示就是这样的(假设有两个特征):
logistic regression的反向传播是这样的:
目的:算出、
、
(更新得到)
、
、
L 更小
,
同理:
得到了 、
、
后,就可以用与梯度下降了