这一节讨论怎么计算偏导数来实现逻辑回归的梯度下降法,它的核心关键点是其中有几个重要法公式用于实现逻辑回归的梯度下降法。

这里将使用导数流程图来计算梯度,必须承认,用导数流程图来计算逻辑回归的梯度下降有点大材小用了。但以这种方式来讲解可以更好地理解梯度下降,从而在讨论神经网络时,可以更深刻全面地理解神经网络。

回想一下逻辑回归的公式,如下图所示,现在只考虑单个样本的损失函数,现在写出该样本的偏导数流程图,假设样本只有两个特征,分别为x1x_1x1​和x2x_2x2​,为了计算z,我们需要输入参数w1w_1w1​、w2w_2w2​和b,还有样本特征值x1x_1x1​和x2x_2x2​,用这些值来计算z。z的计算公式为z=w1∗x1+w2∗x2+bz = w_1*x_1+w_2*x_2+bz=w1​∗x1​+w2​∗x2​+b,然后计算y^\hat {y}y^​,即a=sigma(z)a=sigma(z)a=sigma(z),也就是偏导数流程图的下一步,最后计算Loss(a,y)Loss(a,y)Loss(a,y)。

因此在逻辑回归中,需要做的是变换参数w和b的值,来最小化损失函数。在前面我们已经将前向传播步骤在单个训练样本上计算损失函数。

现在讨论怎么向后计算偏导数,以下是整洁版本的图,要想计算损失函数L的导数,首先要向前一步,计算损失函数的导数,即dLoss(a,y)da\frac{dLoss(a,y)}{da}dadLoss(a,y)​。在代码中只需要用da来表示这个变量,即da=dLoss(a,y)da=−ya+1−y1−ada = \frac{dLoss(a,y)}{da}=-\frac{y}{a}+\frac{1-y}{1-a}da=dadLoss(a,y)​=−ay​+1−a1−y​。损失函数导数的计算公式就是这样,如果你熟悉微积分,你计算的关于变量a的导数就是这个式子。

现在计算出dadada,最终结果关于变量a的导数,现在可以再往后一步,计算dzdzdz,dzdzdz是代码中的变量名,dzdzdz是损失函数关于z的导数,dz=dLdz=dLda∗dadz=a−ydz=\frac{dL}{dz}=\frac{dL}{da}*\frac{da}{dz}=a-ydz=dzdL​=dadL​∗dzda​=a−y。因为dLda=−ya+1−y1−a\frac{dL}{da}=-\frac{y}{a}+\frac{1-y}{1-a}dadL​=−ay​+1−a1−y​,同时dadz=a(1−a)\frac{da}{dz}=a(1-a)dzda​=a(1−a),所以dz=a−ydz=a-ydz=a−y。

现在是向后传播的最后一步,看看w和b需要如何变化。特别地,关于w1w_1w1​的导数dw1=dLdw1=x1∗dzdw_1=\frac{dL}{dw_1}=x_1*dzdw1​=dw1​dL​=x1​∗dz,同理有dw2=x2∗dzdw_2=x_2*dzdw2​=x2​∗dz,db=dzdb = dzdb=dz。

因此关于单个样本的梯度下降法所需要做的就是这些事情。

吴恩达深度学习 —— 2.9 逻辑回归中的梯度下降法相关推荐

  1. 吴恩达深度学习 —— 2.13 逻辑回归的向量化

    我们先回顾逻辑回归的正向传播过程,如果有m个训练样本,对第一个样本进行预测,需要计算出z,并计算激活函数,计算第一个样本的y^\hat{y}y^​,如下所示:z(1)=wT∗x(1)+bz^{(1)} ...

  2. 吴恩达深度学习第二周--logistic回归作业1

    吴恩达深度学习第二周–logistic回归作业1 本系列为吴恩达老师深度学习作业的总结,其中参考了很多优秀的文章,本文为了方便日后的复习与巩固,更为详细的作业讲解参考 目录 吴恩达深度学习第二周--l ...

  3. 吴恩达深度学习——2.3 logistic回归损失函数

    为了训练logistic回归模型的参数w和b,需要定义一个成本函数,让我们来看一下,用logistic回归来训练的成本函数,回忆一下,这是上一张幻灯片的函数,所以你的输出y^=sigmoid(wTx+ ...

  4. 吴恩达深度学习 —— 2.10 m个样本的梯度下降

    在之前的学习中,已经看到了如何计算导数,同时把梯度下降法应用到逻辑回归的一个训练样本上.现在要把它应用在m个训练样本上. 首先,时刻记住有关于成本函数J(w,b)的定义,前面介绍了针对单个训练数据怎么 ...

  5. 吴恩达深度学习——2.2 Logistic回归

    logistic回归是一个学习算法,用在监督学习问题中,输出y标签是0或1时,这是一个二元分类问题. 已知输入的特征向量x可能是一张图,你希望能识别出这是不是猫图,你需要一个算法,可以给出一个预测值, ...

  6. 吴恩达深度学习 —— 4.2 深层网络中的前向传播

    在下图神经网络中,假设有一个训练样本x,在第一层里需要计算z[1]=W[1]x+b[1]z^{[1]}=W^{[1]}x+b^{[1]}z[1]=W[1]x+b[1],其中W[1]W^{[1]}W[1 ...

  7. 花书+吴恩达深度学习(十六)序列模型之双向循环网络 BRNN 和深度循环网络 Deep RNN

    目录 0. 前言 1. 双向循环网络 BRNN(Bidirectional RNN) 2. 深度循环网络 Deep RNN 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~ 花 ...

  8. 深度学习入门首推资料--吴恩达深度学习全程笔记分享

    本文首发于微信公众号"StrongerTang",可打开微信搜一搜,或扫描文末二维码,关注查看更多文章. 原文链接:(https://mp.weixin.qq.com/s?__bi ...

  9. 【深度学习】吴恩达深度学习-Course1神经网络与深度学习-第四周深度神经网络的关键概念编程(下)——深度神经网络用于图像分类:应用

    在阅读这篇文章之前,请您先阅读:[深度学习]吴恩达深度学习-Course1神经网络与深度学习-第四周深度神经网络的关键概念编程(上)--一步步建立深度神经网络,这篇文章是本篇文章的前篇,没有前篇的基础 ...

最新文章

  1. 美国没有光刻机背后的原因
  2. ECShop 增加收藏商品排行榜功能
  3. 动态调频DVFS_转
  4. Mac OS X中MacPorts安装和使用
  5. 软件构造的视图与质量指标
  6. 知识点的积累(零碎的积累)
  7. Git 之五 通信协议(HTTPS、SSH、Git)、使用远程仓库(GitHub、GitLab、Gitee等)
  8. probable oracle net,ORA-28547: connection to server failed, probable Oracle Net admin error
  9. [POI2008]STA-Station
  10. css随堂笔记(一)
  11. React开发(139):ant design学习指南之下载文件
  12. 学习之路/免费的图库推荐
  13. vue 数组中嵌套的对象添加新属性--页面更新
  14. 双系统win+ubuntu14.04使用360随身wifi 3代
  15. Android新浪微博实训报告,完成一份新浪微博目标用户分析报告
  16. ZigBee无线遥控系统
  17. windows win7电脑搜索功能失效怎么修复
  18. 2021年人工智能(AI)的五大发展方向
  19. 有经验JAVA程序员如何提升自己?
  20. MATLAB测试一阶惯性滞后系统、PID参数采用Simulink整定结果

热门文章

  1. Bloom是REST API缓存中间件,充当负载平衡器Nginx和REST API服务之间的反向代理
  2. DreamFactory 第9章 性能注意事项
  3. 容器编排技术 -- 安装和设置kubectl
  4. Docker快速搭建JIRA缺陷管理平台
  5. 如何在Ubuntu 16.04上使用MySQL 5.6配置Galera集群
  6. 移动端web 禁止长按弹出的菜单 Safari
  7. 【C语言】复合函数求值
  8. ajax使用教程_AJAX教程:什么是AJAX以及如何使用它
  9. junit进行单元测试_通过JUnit规则轻松进行AppEngine单元测试
  10. vim 删除多行_Vim神器的五个高效插件,新老司机别错过!