BP神经网络的反向传播(Back Propagation)

news2024/12/23 9:36:46

本文来自《老饼讲解-BP神经网络》https://www.bbbdata.com/

目录

  • 一、什么是BP的反向传播
    • 1.1 什么是反向传播
    • 1.2 反向传播的意义
  • 二、BP神经网络如何通过反向传播计算梯度
  • 三、BP梯度公式解读

BP神经网络更原始的名称是"多层线性感知机MLP",由于它在训练时使用梯度下降算法,并"反向传播Back Propagation Neural"地计算梯度,所以后来也称为BP神经网络。下面讲解什么是BP神经网络的反向传播。

一、什么是BP的反向传播

1.1 什么是反向传播

“反向传播指的是BP神经网络计算参数的梯度时的计算方式”,由于BP神经网络求解时所使用的是梯度下降算法(或其他算法),这些算法一般都需要利用误差函数对参数的梯度,因此,计算梯度是BP神经网络训练中重要的一部分,而反向传播式地计算梯度就是BP神经网络的特色,BP神经网络之所以叫BP(Back Propagation Neural Network)神经网络,指的正是它计算梯度时这种后馈的特色。
BP神经网络反向传播

1.2 反向传播的意义

而对于常用的三层BP神经网络的梯度推导,而可以简单地直接求导就可以,甚至不需要涉及到反向传播,反向传播更多是为了多层、深层的BP神经网络而提出的计算方法。反向传播的意义更多是体现在深度学习之中。
三层BP神经网络梯度推导过程:三层BP神经网络梯度推导过程

二、BP神经网络如何通过反向传播计算梯度

如下,是一个K层的BP神经网络:
在这里插入图片描述
不妨以第k-1层到第k层的参数 p ( k , k − 1 ) p^{(k,k-1)} p(k,k1)为例,分析它的梯度公式是什么
由于第k层节点是关于 p ( k , k − 1 ) p^{(k,k-1)} p(k,k1)的函数,且后一层的节点总是前一层节点的函数
如此一来, E ( p ( k , k − 1 ) ) E(p (k,k−1) ) E(p(k,k1))可以看成是如下一个超级复合函数:
E ( p ( k , k − 1 ) ) = E ( N ( K ) ( . . . ( N ( k + 1 ) ( N ( k ) ( p ( k , k − 1 ) ) ) ) ) E(p^{(k,k-1)})=E(N^{(K)}(...(N^{(k+1)}(N^{(k)}(p^{(k,k-1)})))) E(p(k,k1))=E(N(K)(...(N(k+1)(N(k)(p(k,k1)))))
因此对于 p ( k , k − 1 ) p^{(k,k-1)} p(k,k1)的梯度,根据复合函数的链式求导,则有:
∂ E ∂ p ( k , k − 1 ) = ∑ i K ∂ E ∂ N i K ( K ) ∑ i K − 1 ∂ N i K ( K ) ) ∂ N i K − 1 ( K − 1 ) ∑ i K − 2 ∂ N i K − 1 ( K − 1 ) ) ∂ N i K − 2 ( K − 2 ) . . . . ∑ i k ∂ N i k ( k ) ) ∂ p ( k , k − 1 ) \dfrac{\partial E}{\partial p^{(k,k-1)}} =\sum\limits_{i_K}\dfrac{\partial E}{\partial N^{(K)}_{i_K}} \sum\limits_{i_{K-1}}\dfrac{\partial N^{(K)}_{i_K})}{\partial N^{(K-1)}_{i_{K-1}}} \sum\limits_{i_{K-2}}\dfrac{\partial N^{(K-1)}_{i_{K-1}})}{\partial N^{(K-2)}_{i_{K-2}}} ....\sum\limits_{i_{k}}\dfrac{\partial N^{(k)}_{i_k})}{\partial p^{(k,k-1)}} p(k,k1)E=iKNiK(K)EiK1NiK1(K1)NiK(K))iK2NiK2(K2)NiK1(K1))....ikp(k,k1)Nik(k))

三、BP梯度公式解读

看着头很晕,但粗略可以看出,它分为三块:
BP神经网络梯度公式解读

  1. 先由误差函数求出最后一层的节点梯度
  2. 不断地求后一层节点对前一层的节点梯度,直到所要求的参数所在的节点
  3. 最后求出节点对参数的梯度就可以

可以看出,整个梯度的计算过程由误差函数开始,不断地后馈到前一层节点,最后传播到参数上
而这种后馈的特性,给求解梯度带来了非常大的便利性,它的计算过程如下:

  • 先算出最后一层节点的梯度,再后馈式逐层传播到每一层的节点
  • 每当算出某层节点的梯度时,就马上计算当层的参数,如此迭代就可以

相关链接:

《老饼讲解-机器学习》:老饼讲解-机器学习教程-通俗易懂
《老饼讲解-神经网络》:老饼讲解-matlab神经网络-通俗易懂
《老饼讲解-神经网络》:老饼讲解-深度学习-通俗易懂

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1850557.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ubuntu22.04开机后发现IP地址变成127.0.0.1

开机就是这个样子 解决办法 ip地址可能被释放,需要重新设置成自动分配 sudo dhclient -v可能网卡未加托管 查看方式: nmcli n若是enable就是已被托管,若是disabled,说明网卡未被托管 解决办法: nmcli n on搞定

Dockerfile实战

Dockerfile是用来快速创建自定义镜像的一种文本格式的配置文件,在持续集成和持续部署时,需要使用Dockerfile生成相关应用程序的镜像。 Dockerfile常用命令 FROM:继承基础镜像MAINTAINER:镜像制作作者的信息,已弃用&a…

【数据结构与算法】树的遍历,森林遍历 详解

树的先根遍历、后根遍历对应其二叉树的哪种遍历 树的先根遍历对应其二叉树的先序遍历(根-左-右)。树的后根遍历对应其二叉树的中序遍历(左-根-右)。 森林的先根遍历、中根遍历对应其二叉树的哪种遍历? 森林的先根遍历对应其二…

详解Spring AOP(一)

目录 1. AOP概述 2.Spring AOP快速入门 2.1引入AOP依赖 2.2编写AOP程序 3.Spring AOP核心概念 3.1切点(PointCut) 3.2连接点(Join Point) 3.3通知(Advice) 3.4切面(Aspect) …

高考学计算机专业的小白指南,一些比较实用的软件,快速入手计算机

计算机指南 哈喽,首先先和大家分享一下之前我用电脑觉得还行的使用方法吧 这里的方法其实是受MIT计算机课教程的启发然后和自己使用计算机过程中得出来的经验结论 所以有错的地方欢迎大家指出,感谢 那么,我们就开始吧~~~ 杀毒软件 一款…

基本循环神经网络(RNN)

RNN背景:RNN与FNN 在前馈神经网络中,信息的传递是单向的,这种限制虽然使得网络变得更容易学习,但在一定程度上也减弱了神经网络模型的能力。 在生物神经网络中,神经元之间的连接关系要复杂的多。前馈神经网络可以看着…

智慧校园综合管理系统的优点有哪些

在当今这个信息化飞速发展的时代,智慧校园综合管理系统正逐步成为教育领域的一股革新力量,它悄然改变着我们对传统校园管理的认知。这套系统如同一个无形的桥梁,将先进的信息技术与学校的日常运作紧密相连,展现出多维度的优势。 …

你好,复变函数2.0

第一行&#xff1a;0 或 1 第二行&#xff1a;&#xff08;空格&#xff09;函数&#xff08;后缀&#xff09; #pragma warning(disable:4996) #include <easyx.h> #include <stdio.h> #include <math.h> #define PI 3.141592653589793 #define E 2.71828…

基于MATLAB仿真LFM线性调频信号

基于MATLAB仿真LFM线性调频信号 目录 前言 一、LFM信号简介 二、LFM信号基本原理 三、LFM信号仿真 四、代码 总结 前言 仿真中的接收信号&#xff0c;有时为了简单会直接用一个正弦波代替&#xff0c;但实际中接收到的信号极少是点频信号&#xff0c;一般都是PSK信号、OF…

Zigbee协议详解:低功耗无线通信的理想选择

什么是Zigbee协议 Zigbee是一种基于IEEE 802.15.4标准的无线通信协议&#xff0c;专为低功耗、低数据速率和短距离通信设计。它广泛应用于物联网&#xff08;IoT&#xff09;设备&#xff0c;如智能家居、工业自动化和健康监测等领域。Zigbee协议由Zigbee联盟维护和推广&#x…

国企:2024年6月中国移动相关招聘信息

中国移动研究院: AI中心-大模型数据工程师 工作地点:北京市、西安市2 发布时间 :2024-06-18 学历要求:硕士研究生及以上 招聘人数:招聘若干人 专业要求 计算机、人工智能、软件工程、数学等相关专业 工作职责 1、负责处理和清洗大规模、多来源的数据集,保证数…

yum的概念、相关命令、ftp http部署步骤;NFS共享文件操作步骤

目录 yum 配置文件 缓存功能操作步骤 创建并配置本地仓库文件 yum相关命令 yum install __ yum repolist yum list __ yum info __ yum search __ yum whatprovides __ yum remove __ yum -y update __ yum history yum grouplist yum groupinstall "__&q…

【Netty】nio阻塞非阻塞Selector

阻塞VS非阻塞 阻塞 阻塞模式下&#xff0c;相关方法都会导致线程暂停。 ServerSocketChannel.accept() 会在没有建立连接的时候让线程暂停 SocketChannel.read()会在没有数据的时候让线程暂停。 阻塞的表现就是线程暂停了&#xff0c;暂停期间不会占用CPU&#xff0c;但线程…

DAY03 HTML

文章目录 一 表格1. 表格的语法2. 表格的可选标记3. 不规则的单元格&#xff08;合并单元格&#xff09;4. 表格的属性5. 表格的大小 二 列表1. 有序列表2. 无序列表3. 属性4. 列表的嵌套5. 定义列表【了解】 三 表单(重点)1. 表单的语法2. 表单的控件分类3. input元素4. selec…

jQuery 基本操作

01-简介 jQuery 是一个功能丰富且广泛使用的 JavaScript 库&#xff0c;它简化了 HTML 文档遍历和操作、事件处理、动画和 Ajax 操作。jQuery 通过其易用的 API&#xff0c;使复杂的 JavaScript 编程任务变得更加简单&#xff0c;并且兼容各种浏览器。 1、jQuery特点 简化 DOM …

数据库设计概述-数据库设计内容、数据库设计方法(基于E-R模型的规范设计方法)

一、引言 如何利用关系数据库理论设计一个满足应用系统需求的数据库 二、数据库设计内容 1、数据库设计是基于应用系统需求分析中对数据的需求&#xff0c;解决数据的抽象、数据的表达和数据的存储结构等问题 2、其目标是设计出一个满足应用要求、简洁、高效、规范合理的数…

Python基础教程(三十):math模块

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; &#x1f49d;&#x1f49…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] LYA的巡演(100分) - 三语言AC题解(Python/Java/Cpp)

&#x1f36d; 大家好这里是清隆学长 &#xff0c;一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 &#x1f4bb; ACM银牌&#x1f948;| 多次AK大厂笔试 &#xff5c; 编程一对一辅导 &#x1f44f; 感谢大家的订阅➕ 和 喜欢&#x1f497; &#x1f…

Stm32超声波测距实验

一.任务需求 1. 采用stm32F103和HC-SR04超声波模块&#xff0c; 使用标准库或HAL库 定时器中断&#xff0c;完成1或2路的超声波障碍物测距功能。 2. 当前智能汽车上一般配置有12路超声波雷达&#xff0c;这些专用超声波雷达内置了MCU&#xff0c;直接输出数字化的测距结果&am…

分类判决界面---W-H、H-K算法

本篇文章是博主在人工智能等领域学习时&#xff0c;用于个人学习、研究或者欣赏使用&#xff0c;并基于博主对人工智能等领域的一些理解而记录的学习摘录和笔记&#xff0c;若有不当和侵权之处&#xff0c;指出后将会立即改正&#xff0c;还望谅解。文章分类在AI学习笔记&#…