CaptainBed人工智能学习笔记——5.学习计算图与反向传播,计算出逻辑回归的偏导数

 计算图

        计算图是一种用逻辑图的方式,来表示数据在一个有向无环图中的流转,帮助我们清晰的理解数据的传播过程与处理方式,以及各种计算之间的依赖关系。

        接下来要讲到的反向传播,就是用到了计算图,在之后,我也会用计算图来表示所有的数据流转过程和计算方式。

反向传播

        首先什么是反向传播?其实在神经网络的内部中,是由前向传播和反向传播组成的,前面我们所有讲到的公式以及计算顺序,都是属于前向传播,即计算出预测结果和损失,而反向传播的任务就是计算出损失函数关于每一个参数的偏导数。以下是我个人的理解:

 使用计算图来表示反向传播

        假设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的导数的嘛?其实我相信学过高数的小伙伴一定知道链式法则吧!!其实计算过程非常简单,如下:

                ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        da=\frac{da}{dV}*\frac{dV}{dJ} 

         ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​       db=\frac{db}{dU}*\frac{dU}{dV}*\frac{dV}{dJ}

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        dc=\frac{dc}{dU}*\frac{dU}{dV}*\frac{dV}{dJ} 

         据老师所说,我们非常熟悉的人工智能框架Tensorflow就是用计算图表示的,tensor就是数据,flow就是流~

计算逻辑回归的偏导数 

         首先我们先复习一下逻辑回归(Logistic Rergression)函数:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        z=dot(w,x)+b 

        (1)首先,他是一个分类模型,通常用于二分类

        (2)其次,它属于广义线性模型(generalized linear model),具有wx+b的形式

        logistic regression的前向传播是这样的:

                                                        (1)z=w.Tx+b

                                                        (2)\hat{y}=a=\sigma (z)

                                (3)L(a,y)=-(ylog(a)+(1-y)log(1-a)) 

用图像来表示就是这样的(假设有两个特征):

        logistic regression的反向传播是这样的:

        目的:算出dw_{1}dw_{2}db \rightarrow(更新得到)w_{1}w_{2}b \rightarrow L 更小

                                                          da=-(\frac{y}{a})+\frac{(q-y)}{(1-a)} 

                                        dz=\frac{dL}{da}*\frac{da}{dz} , \frac{da}{dz}=a(1-a)\rightarrow dz=a-y

        同理:        ​​​​​​​        ​​​​​​​        ​​​​​​​     dw_{1}=x_{1}dz,dw_{2}=x_{2}dz,db=dz

        得到了 dw_{1}dw_{2}db后,就可以用与梯度下降了

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

LifeGPT

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

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

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

打赏作者

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

抵扣说明:

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

余额充值