DL之BP:神经网络算法简介之BP算法简介(链式法则/计算图解释)、案例应用之详细攻略

相关文章:DL之DNN之BP:神经网络算法简介之BP算法/GD算法之不需要额外任何文字,只需要八张图讲清楚BP类神经网络的工作原理

目录

BP算法思路简介

1、神经网络训练的优化目标

2、梯度下降

3、反向传播(backpropagation)算法

4、前向传播计算

5、反向传播误差信号

6、更新参数

链式法则

链式法则简介

1、链式法则与复合函数

2、链式法则和计算图

链式法则使用


BP算法原理推导—以三层神经网络为例

1、理论推导

1.1、前向传播计算

数学式子描述该神经网络
(1)、一般情况下,同一层的激活函数都是一样的,并且此处是进行二分类,所以隐藏层、输出层都可以采用Sigmoid激活函数。

输入数据 隐藏层1 隐藏层2 输出层

前向传播计算

经过Sigmoid函数输出

1.2、反向传播计算

反向传播的计算过程。假设我们使用随机梯度下降的方式来学习神经网络的参数,损失函数定义为 L(y,y^),其中y是该样本的真实类标。使用梯度下降进行参数的学习,我们必须计算出损失函数关于 神经网络中各层参数(权重w和偏置b)的偏导数。

0、比如要对第k隐藏层参数w、b求偏导数

1、先计算

因为偏置b是一个常数项,因此偏导数的计算也很简单。

2、再计算

2、BP算法带入实例推导

BP算法思路简介

前馈神经网络(NN),而是和循环神经网络(RNN)的概念是相对的。而反向传播方法可以用在FF网络中,此时,基于反向传播算法的前馈神经网络,被称为BP神经网络。       
       反向传播(Backpropagation)算法,深度学习模型采用梯度下降和误差反向传播进行模型参数更新。

1、神经网络训练的优化目标

梯度下降(Gradient Descent):

  • 求解非线性无约束优化问题的最基本方法;
  • 最小化损失函数的一种常用的一阶优化方法。

2、梯度下降

沿负梯度方向,函数值下降最快

              

3、反向传播(backpropagation)算法

深度学习模型,采用梯度下降和误差反向传播进行模型参数更新。

  • 随机初始化网络权重
  • 前向传播计算网络输出
  • 计算误差
  • 后向传播误差到前一层; 计算梯度
  • 前面层更新权重和偏置参数
  • 从步骤2重复该过程最小化误差直到损失收敛

4、前向传播计算

使用损失函数比较实际输出和期望输出

计算图(Computation Graph):计算过程可以表示成有向图的形式。
前向计算过程:
计算各计算结点的导数。

5、反向传播误差信号

后向传播误差到前面的层,传播的误差用来计算损失函数的梯度。

计算损失函数?对各参数的梯度(偏导数)

  • 输出层连接权重的梯度
  • 隐藏层连接权重的梯度
  • 偏置项的梯度

反向传播(backpropagation)

  • 任何导数均可通过将相应连接边上的导数连乘得到。
  • 若求导涉及多条路径,需要将每条路径上的导数连乘起来,然后再求和。

6、更新参数

得到梯度以后,就可以进行更新参数。

链式法则

链式法则简介

链式法chain rule,属于微积分领域,是微积分中的求导法则,用于求一个复合函数的导数,是在微积分的求导运算中一种常用的方法。复合函数的导数将是构成复合这有限个函数在相应点的 导数的乘积,就像锁链一样一环套一环,故称链式法则。

这个结论可推广到任意有限个函数复合到情形,于是复合函数的导数将是构成复合这有限个函数在相应点的 导数的乘积,就像锁链一样一环套一环,故称链式法则。

1、链式法则与复合函数

链式法则是关于复合函数的导数的性质:如果某个函数由复合函数表示,则该复合函数的导数可以用构成复合函数的各个函数的导数的乘积表示。
         数学式表示
                                                  

2、链式法则和计算图

其中“**2”节点表示平方运算,沿着与正方向相反的方向,乘上局部导数后传递。反向传播的计算顺序是,先将节点的输入信号乘以节点的局部导数(偏导数),然后再传递给下一个节点。

    

反向传播是基于链式法则的。
(1)、根据计算图的反向传播的结果,dz/dx = 2(x + y)

(2)、乘法的反向传播:左图是正向传播,右图是反向传播。

     
        因为乘法的反向传播会乘以输入信号的翻转值,所以各自可按1.3 × 5 =6.5、1.3 × 10 = 13 计算。另外,加法的反向传播只是将上游的值传给下游,并不需要正向传播的输入信号。但是,乘法的反向传播需要正向传播时的输入信号值。因此,实现乘法节点的反向传播时,要保存正向传播的输入信号。

(3)、购买苹果的反向传播的例子:这个问题相当于求“支付金额关于苹果的价格的导数”“支付金额关于苹果的个数的导数”“支付金额关于消费税的导数”。

链式法则使用

1、求导案例

DL之BP:神经网络算法简介之BP算法简介(链式法则/计算图解释)、案例应用之详细攻略相关推荐

  1. sklearn之pipeline:pipeline函数/make_pipeline函数的简介及其区别联系、使用技巧、案例应用之详细攻略

    sklearn之pipeline:pipeline函数/make_pipeline函数的简介及其区别联系.使用技巧.案例应用之详细攻略 目录 sklearn.pipeline函数简介 1.Why pi ...

  2. ML之ME/LF:机器学习中回归预测模型评估指标(MSE/RMSE/MAE)简介、使用方法、代码实现、案例应用之详细攻略

    ML之ME/LF:机器学习中回归预测模型评估指标(MSE/RMSE/MAE)简介.使用方法.代码实现.案例应用之详细攻略 目录 回归预测问题中评价指标简介 RMSE 标准差SD MSE函数

  3. ML:分类预测问题中评价指标(ER/混淆矩阵P-R-F1/ROC-AUC/RP/mAP)简介、使用方法、代码实现、案例应用之详细攻略

    ML:分类预测问题中评价指标(ER/混淆矩阵P-R-F1/ROC-AUC/RP/mAP)简介.使用方法.代码实现.案例应用之详细攻略 目录 分类预测的简介 分类预测问题中评价指标(ER/ROC-AUC ...

  4. ML之ME/LF:机器学习中的模型评估指标/损失函数(连续型/离散型)的简介、损失函数/代价函数/目标函数之间区别、案例应用之详细攻略

    ML之ME/LF:机器学习中的模型评估指标/损失函数(连续型/离散型)的简介.损失函数/代价函数/目标函数之间区别.案例应用之详细攻略 目录 损失函数的简介 损失函数/代价函数/目标函数之间区别 损失 ...

  5. Auto CAD:CAD软件简介、使用技巧经验总结、基础案例应用之详细攻略

    Auto CAD:CAD软件简介.使用技巧经验总结.基础案例应用之详细攻略 目录 CAD软件简介 1.软件特点 2.软件用途 CAD软件使用技巧经验总结

  6. DL:深度学习(神经网络)的简介、基础知识(神经元/感知机、训练策略、预测原理)、算法分类、经典案例应用之详细攻略

    DL:深度学习(神经网络)的简介.基础知识(神经元/感知机.训练策略.预测原理).算法分类.经典案例应用之详细攻略 目录 深度学习(神经网络)的简介 1.深度学习浪潮兴起的三大因素 深度学习(神经网络 ...

  7. DL之CNN:计算机视觉之卷积神经网络算法的简介(经典架构/论文)、CNN优化技术、调参学习实践、CNN经典结构及其演化、案例应用之详细攻略

    DL之CNN:计算机视觉之卷积神经网络算法的简介(经典架构/论文).CNN优化技术.调参学习实践.CNN经典结构.案例应用之详细攻略 目录 卷积神经网络算法的简介 0.Biologically Ins ...

  8. DL之LSTM:LSTM算法论文简介(原理、关键步骤、RNN/LSTM/GRU比较、单层和多层的LSTM)、案例应用之详细攻略

    DL之LSTM:LSTM算法论文简介(原理.关键步骤.RNN/LSTM/GRU比较.单层和多层的LSTM).案例应用之详细攻略 目录 LSTM算法简介 1.LSTM算法论文 1.1.LSTM算法相关论 ...

  9. DL之FAN:FAN人脸对齐网络(Face Alignment depth Network)的论文简介、案例应用之详细攻略

    DL之FAN:FAN人脸对齐网络(Face Alignment depth Network)的论文简介.案例应用之详细攻略 目录 FAN人脸对齐网络(Face Alignment depth Netw ...

最新文章

  1. Python 标准库之 shutil
  2. django搭建示例-ubantu环境
  3. 六年级计算机word处理,六年级上信息技术教案Word大变身用Word制作网页河大版
  4. replace 使用函数作为第二参数
  5. git 修改仓库的描述_git简介、基本命令和仓库操作
  6. VSMFC程序显示命令行窗口
  7. Jquery中如何获取元素的文本,值,属性和内容
  8. 静态库和动态库的分析
  9. 移动web现状、viewport视口、二倍图、移动web开发主流方案、布局技术选型(流式布局、flex弹性布局、less+rem+媒体查询布局、混合布局、媒体查询、bootstrap)
  10. 《软件需求》阅读笔记之一
  11. Android Studio系列教程一--下载与安装
  12. 大数据_Flink_流式处理_简介_流数处理的发展演变---Flink工作笔记0004
  13. linux 停止路由转发策略_Linux静态路由
  14. 淘宝商城和淘宝网有什么区别
  15. 用计算机输出日历,怎样从电脑上打印2021年的日历
  16. 苹果x和xsmax有什么区别_苹果手机OLED屏幕与LCD屏幕有什么区别
  17. es 创建索引 指定id_简单操作elasticsearch(es版本7.6)
  18. ROVIO WowWee 路威小车
  19. 20162327WJH四则运算第二周总结
  20. 从入门到头秃周末休闲赛4

热门文章

  1. LeetCode 集锦(二十二) - 第 101 题 Symmetric Tree
  2. 关于JS阶乘,首字母大写,最长单词计算,重复说话次数等简单基础算法练习...
  3. PAI分布式机器学习平台编程模型演进之路
  4. Mybatis报错 元素内容必须由格式正确的字符数据或标记组成
  5. ELK之ElasticSearch快速入门
  6. 解决jenkins 使用ssh插件执行脚本,导致一直处于构建中无法停止
  7. MTP 多媒体传输协议
  8. 从来没有一种技术是为了解决复用、灵活组合、定制开发的问题
  9. 程序员,Mybatis 你踩过坑吗?
  10. 收藏 | 阿里云Redis开发规范