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

简介: 链式法则/计算图解释

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

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

 

 

目录

BP算法思路简介

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

2、梯度下降

3、反向传播(backpropagation)算法

4、前向传播计算

5、反向传播误差信号

6、更新参数

链式法则

链式法则简介

1、链式法则与复合函数

2、链式法则和计算图

链式法则使用


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

image.gifimage.gifimage.gifimage.gif

1、理论推导

1.1、前向传播计算

数学式子描述该神经网络

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

输入数据 隐藏层1 隐藏层2 输出层
image.gif

image.gif

image.gif

image.gif

image.gif

image.gif

image.gif

前向传播计算

 

image.gif

image.gif image.gif
经过Sigmoid函数输出 image.gifimage.gifimage.gif image.gifimage.gif image.gif

1.2、反向传播计算

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

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

image.gif

1、先计算image.gifimage.gif

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

 

2、再计算image.gif

 

 

2、BP算法带入实例推导

image.gifimage.gifimage.gifimage.gif

 

 

 

 

 

 

 

 

BP算法思路简介

        前馈神经网络(NN),而是和循环神经网络(RNN)的概念是相对的。而反向传播方法可以用在FF网络中,此时,基于反向传播算法的前馈神经网络,被称为BP神经网络。       

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

image.gif

 

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

image.gif

梯度下降(Gradient Descent):

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

 

2、梯度下降

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

image.gif    image.gifimage.gif          image.gif

 

3、反向传播(backpropagation)算法

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

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

 

4、前向传播计算

image.gifimage.gif

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

image.gif

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

 

5、反向传播误差信号

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

image.gif

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

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

 

反向传播(backpropagation)

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

 

6、更新参数

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

image.gif

 

 

链式法则

链式法则简介

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

image.gif

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

 

1、链式法则与复合函数

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

         数学式表示

                                                  image.gif

 

2、链式法则和计算图

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

                                    image.gif    image.gif

反向传播是基于链式法则的。

(1)、根据计算图的反向传播的结果,dz/dx = 2(x + y)

image.gif

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

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

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

image.gif

 

 

链式法则使用

1、求导案例

image.gif

 

 

 

 

 

 


相关文章
|
14天前
|
机器学习/深度学习 算法 TensorFlow
动物识别系统Python+卷积神经网络算法+TensorFlow+人工智能+图像识别+计算机毕业设计项目
动物识别系统。本项目以Python作为主要编程语言,并基于TensorFlow搭建ResNet50卷积神经网络算法模型,通过收集4种常见的动物图像数据集(猫、狗、鸡、马)然后进行模型训练,得到一个识别精度较高的模型文件,然后保存为本地格式的H5格式文件。再基于Django开发Web网页端操作界面,实现用户上传一张动物图片,识别其名称。
46 1
动物识别系统Python+卷积神经网络算法+TensorFlow+人工智能+图像识别+计算机毕业设计项目
|
13天前
|
机器学习/深度学习 人工智能 算法
深度学习入门:理解神经网络与反向传播算法
【9月更文挑战第20天】本文将深入浅出地介绍深度学习中的基石—神经网络,以及背后的魔法—反向传播算法。我们将通过直观的例子和简单的数学公式,带你领略这一技术的魅力。无论你是编程新手,还是有一定基础的开发者,这篇文章都将为你打开深度学习的大门,让你对神经网络的工作原理有一个清晰的认识。
|
9天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络(CNN)及其应用
【9月更文挑战第24天】本文将深入探讨深度学习中的一种重要模型——卷积神经网络(CNN)。我们将通过简单的代码示例,了解CNN的工作原理和应用场景。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的信息。
29 1
|
14天前
|
机器学习/深度学习 人工智能 自动驾驶
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
【9月更文挑战第19天】在人工智能的浩瀚星海中,卷积神经网络(CNN)如同一颗璀璨的星辰,照亮了图像处理的天空。本文将深入CNN的核心,揭示其在图像识别领域的强大力量。通过浅显易懂的语言和直观的比喻,我们将一同探索CNN的奥秘,并见证它如何在现实世界中大放异彩。
|
13天前
|
机器学习/深度学习 人工智能 算法
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
植物病害识别系统。本系统使用Python作为主要编程语言,通过收集水稻常见的四种叶片病害图片('细菌性叶枯病', '稻瘟病', '褐斑病', '稻瘟条纹病毒病')作为后面模型训练用到的数据集。然后使用TensorFlow搭建卷积神经网络算法模型,并进行多轮迭代训练,最后得到一个识别精度较高的算法模型,然后将其保存为h5格式的本地模型文件。再使用Django搭建Web网页平台操作界面,实现用户上传一张测试图片识别其名称。
65 21
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
|
14天前
|
机器学习/深度学习 人工智能 算法
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
鸟类识别系统。本系统采用Python作为主要开发语言,通过使用加利福利亚大学开源的200种鸟类图像作为数据集。使用TensorFlow搭建ResNet50卷积神经网络算法模型,然后进行模型的迭代训练,得到一个识别精度较高的模型,然后在保存为本地的H5格式文件。在使用Django开发Web网页端操作界面,实现用户上传一张鸟类图像,识别其名称。
60 12
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
|
13天前
|
机器学习/深度学习 算法 TensorFlow
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
交通标志识别系统。本系统使用Python作为主要编程语言,在交通标志图像识别功能实现中,基于TensorFlow搭建卷积神经网络算法模型,通过对收集到的58种常见的交通标志图像作为数据集,进行迭代训练最后得到一个识别精度较高的模型文件,然后保存为本地的h5格式文件。再使用Django开发Web网页端操作界面,实现用户上传一张交通标志图片,识别其名称。
43 6
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
|
9天前
|
机器学习/深度学习 人工智能 算法
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
文本分类识别系统。本系统使用Python作为主要开发语言,首先收集了10种中文文本数据集("体育类", "财经类", "房产类", "家居类", "教育类", "科技类", "时尚类", "时政类", "游戏类", "娱乐类"),然后基于TensorFlow搭建CNN卷积神经网络算法模型。通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型,并保存为本地的h5格式。然后使用Django开发Web网页端操作界面,实现用户上传一段文本识别其所属的类别。
22 1
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
|
1天前
|
传感器 算法 C语言
基于无线传感器网络的节点分簇算法matlab仿真
该程序对传感器网络进行分簇,考虑节点能量状态、拓扑位置及孤立节点等因素。相较于LEACH算法,本程序评估网络持续时间、节点死亡趋势及能量消耗。使用MATLAB 2022a版本运行,展示了节点能量管理优化及网络生命周期延长的效果。通过簇头管理和数据融合,实现了能量高效和网络可扩展性。
|
2天前
|
机器学习/深度学习 人工智能 算法框架/工具
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
【9月更文挑战第31天】本文旨在通过浅显易懂的语言和直观的比喻,为初学者揭开深度学习中卷积神经网络(CNN)的神秘面纱。我们将从CNN的基本原理出发,逐步深入到其在图像识别领域的实际应用,并通过一个简单的代码示例,展示如何利用CNN进行图像分类。无论你是编程新手还是深度学习的初学者,这篇文章都将为你打开一扇通往人工智能世界的大门。
下一篇
无影云桌面