前向传播:Inputa[l−1]Input\space a^{[l-1]}Input a[l−1]Outputa[l],cache(z[l])Output\space a^{[l]},cache(z^{[l]})Output a[l],cache(z[l])z[l]=W[l]a[l−1]+b[l]z^{[l]}=W^{[l]}a^{[l-1]}+b^{[l]}z[l]=W[l]a[l−1]+b[l]a[l]=g[l](z[l])a^{[l]}=g^{[l]}(z^{[l]})a[l]=g[l](z[l])向量化表示方法为Z[l]=W[l]A[l−1]+bZ^{[l]}=W^{[l]}A^{[l-1]}+bZ[l]=W[l]A[l−1]+b其中b使用到python中的广播A[l]=g[l](Z[l])A^{[l]}=g^{[l]}(Z^{[l]})A[l]=g[l](Z[l])反向传播:Inputda[l]Input\space da^{[l]}Input da[l]Outputda[l−1],dW[l],db[l]Output\space da^{[l-1]},dW^{[l]},db^{[l]}Output da[l−1],dW[l],db[l]所有计算过程为dz[l]=da[l]∗g[l]′(z[l])dz^{[l]}=da^{[l]}*g^{[l]'}(z^{[l]})dz[l]=da[l]∗g[l]′(z[l])dw[l]=dz[l]a[l−1]dw^{[l]}=dz^{[l]}a^{[l-1]}dw[l]=dz[l]a[l−1]db[l]=dz[l]db^{[l]}=dz^{[l]}db[l]=dz[l]da[l−1]=W[l].Tdz[l]da^{[l-1]}=W^{[l].T}dz^{[l]}da[l−1]=W[l].Tdz[l]将得到的da[l]da^{[l]}da[l]代入公式dz[l]dz^{[l]}dz[l]得到dz[l]=W[l+1]dz[l+1]∗g[l]′(z[l])dz^{[l]}=W^{[l+1]}dz^{[l+1]}*g^{[l]'}(z^{[l]})dz[l]=W[l+1]dz[l+1]∗g[l]′(z[l])其对应的向量化的版本为DZ[l]=dA[l]∗g[l]′(Z[l])DZ^{[l]}=dA^{[l]}*g^{[l]'}(Z^{[l]})DZ[l]=dA[l]∗g[l]′(Z[l])dW[l]=1mdZ[l]A[l−1].TdW^{[l]}=\frac{1}{m}dZ^{[l]}A^{[l-1].T}dW[l]=m1​dZ[l]A[l−1].Tdb[l]=1mnp.sum(dZ[l],axis=1,keepdim=True)db^{[l]}=\frac{1}{m}np.sum(dZ^{[l]},axis=1,keepdim=True)db[l]=m1​np.sum(dZ[l],axis=1,keepdim=True)dA[l−1]=W[l].TdZ[l]dA^{[l-1]}=W^{[l].T}dZ^{[l]}dA[l−1]=W[l].TdZ[l]最后总结一下,第一层可能会有一个修正线性单元激活函数ReLu,第二层可能会用另一个修正线性单元激活函数ReLU,到第三层可能是sigmoid函数。如果想做二分分类,输出值是y^\hat{y}y^​,用y^\hat{y}y^​可以计算出损失函数L(y^,y)L(\hat{y},y)L(y^​,y),这样就可以开始向后迭代,可以用反向传播求导。

最后一个细节,前向递归,我们会用输入数据x来初始化。在反向递归中,当用逻辑回归做二分分类时,da[l]=−ya+1−y1−ada^{[l]}=-\frac{y}{a}+\frac{1-y}{1-a}da[l]=−ay​+1−a1−y​,然后相对于y^\hat{y}y^​的损失函数的导数可以被证明等于da[l]da^{[l]}da[l]的这个式子。如果想要向量化这个实现过程,那就需要初始化反向递归,不能使用da[l]d^a{[l]}da[l]这个公式,应该用dA[l]dA^{[l]}dA[l]公式。其计算过程为dA[l]=(−y(1)a(1)+1−y(1)1−a(1)−y(2)a(2)+1−y(2)1−a(2)−...−y(m)a(m)+1−y(m)1−a(m))dA^{[l]}=(-\frac{y^{(1)}}{a^{(1)}}+\frac{1-y^{(1)}}{1-a^{(1)}}-\frac{y^{(2)}}{a^{(2)}}+\frac{1-y^{(2)}}{1-a^{(2)}}-...-\frac{y^{(m)}}{a^{(m)}}+\frac{1-y^{(m)}}{1-a^{(m)}})dA[l]=(−a(1)y(1)​+1−a(1)1−y(1)​−a(2)y(2)​+1−a(2)1−y(2)​−...−a(m)y(m)​+1−a(m)1−y(m)​),这是实现向量化版本的方式,具体来说,初始化一个向量化反向传播的方法。

吴恩达深度学习 —— 4.6 前向传播和反向传播相关推荐

  1. 花书+吴恩达深度学习(十三)卷积神经网络 CNN 之运算过程(前向传播、反向传播)

    目录 0. 前言 1. 单层卷积网络 2. 各参数维度 3. CNN 前向传播反向传播 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~ 花书+吴恩达深度学习(十)卷积神经网络 ...

  2. github标星8331+:吴恩达深度学习课程资源(完整笔记、中英文字幕视频、python作业,提供百度云镜像!)...

    吴恩达老师的深度学习课程(deeplearning.ai),可以说是深度学习入门的最热门课程,我和志愿者编写了这门课的笔记,并在github开源,star数达到8331+,曾经有相关报道文章.为解决g ...

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

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

  4. 花书+吴恩达深度学习(二五)直面配分函数(CD, SML, SM, RM, NCE)

    文章目录 0. 前言 1. 对数似然梯度 1.1 朴素 MCMC 算法 1.2 对比散度算法 CD 1.3 随机最大似然 SML 2. 伪似然 3. 得分匹配 SM 4. 比率匹配 RM 5. 去噪得 ...

  5. 花书+吴恩达深度学习(二十)构建模型策略(超参数调试、监督预训练、无监督预训练)

    目录 0. 前言 1. 学习率衰减 2. 调参策略 3. 贪心监督预训练 4. 贪心逐层无监督预训练 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~ 花书+吴恩达深度学习(十 ...

  6. 花书+吴恩达深度学习(十八)迁移学习和多任务学习

    目录 0. 前言 1. 迁移学习 2. 多任务学习 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~ 花书+吴恩达深度学习(十八)迁移学习和多任务学习 花书+吴恩达深度学习(十 ...

  7. 花书+吴恩达深度学习(十五)序列模型之循环神经网络 RNN

    目录 0. 前言 1. RNN 计算图 2. RNN 前向传播 3. RNN 反向传播 4. 导师驱动过程(teacher forcing) 5. 不同序列长度的 RNN 如果这篇文章对你有一点小小的 ...

  8. 花书+吴恩达深度学习(十四)卷积神经网络 CNN 之经典案例(LetNet-5, AlexNet, VGG-16, ResNet, Inception Network)

    目录 0. 前言 1. LeNet-5 2. AlexNet 3. VGG-16 4. ResNet 残差网络 5. Inception Network 如果这篇文章对你有一点小小的帮助,请给个关注, ...

  9. 花书+吴恩达深度学习(十二)卷积神经网络 CNN 之全连接层

    目录 0. 前言 1. 全连接层(fully connected layer) 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~ 花书+吴恩达深度学习(十)卷积神经网络 CNN ...

最新文章

  1. linux进程间通信:命名管道FIFO
  2. JBoss Eclipse IDE
  3. 网络功能虚拟化(NFV)的作用—Vecloud微云
  4. php项目打开快捷方式,克隆一个新项目的快捷方式_PHP教程
  5. virtualbox中文技术文档_随笔--西门子STEP7中如何寻找技术文档
  6. java 内部类怎么new_[转]【Java】内部类(Inner Class)如何创建(new)
  7. 听音训练手册--音频制品与听评
  8. VTK:PolyData之PointsProjectedHull
  9. 【TypeError: float() argument must be a string or a number, not ‘map’】
  10. MATLAB库函数unwrap(相位解卷绕)的C语言实现
  11. 华为全球分析师大会:HMS Core全球开发者应用集成的数量加速增长,打造全场景智慧体验...
  12. 沙绿色background-color:#e5eecc; border:solid 1px #c3c3c3;
  13. 硬盘接口类型简洁区别及SCSI设备和SCSI磁盘的概念区别
  14. Linux如何自定义屏幕分辨率,Linux手动设置屏幕分辨率的办法
  15. excel导出动态表头以及二级三级表头,还有数据库动态的数据来源
  16. 一个非常好的学习方法总结
  17. 夜曲歌词 拼音_《夜曲》的歌词 - 歌手:周杰伦 (Jay Chou)
  18. 如何恢复误删的注册表
  19. linux修改无线网卡hwaddr,在Linux下改无线网卡的mac的地址
  20. 锁屏中如何实现屏蔽home键

热门文章

  1. 清除SVOHOST.EXE的方法
  2. 浏览器 JavaScript HTTP 库的大比拼:SugerAgent VS Axios
  3. 面试官系统精讲Java源码及大厂真题 - 33 CountDownLatch、Atomic 等其它源码解析
  4. 在Spring项目中集成使用MongoDB
  5. VSCode瞎折腾记
  6. 从厕所排队引发的产品设计方案思考
  7. sqlmap源码阅读系列检查是否满足依赖
  8. 黑猫警长 stl_如何使用当地警长保护您的信息
  9. 利用 assistant_如何使用Dialogflow对Google Assistant操作实施本地履行
  10. aws lambda_Express.js和AWS Lambda —无服务器的爱情故事