BP神经网络的反向传播算法

BP神经网络(Backpropagation Neural Network)是一种常用的多层前馈神经网络,通过反向传播算法进行训练。反向传播算法的核心思想是通过计算损失函数对每个权重的偏导数,从而调整权重,使得网络的预测输出与真实输出之间的误差最小。下面是反向传播算法的公式推导过程:

1. 前向传播(Forward Propagation)

假设我们有一个三层神经网络(输入层、隐藏层和输出层),并且每层的激活函数为 sigmoid 函数。

- 输入层:\mathbf{x} = (x_1, x_2, \ldots, x_n)
- 隐藏层:\mathbf{h} = (h_1, h_2, \ldots, h_m)
- 输出层:\mathbf{y} = (y_1, y_2, \ldots, y_k)

各层之间的权重分别为:
- 输入层到隐藏层的权重:\mathbf{W}^{(1)}
- 隐藏层到输出层的权重:\mathbf{W}^{(2)}

对于第 j 个隐藏层神经元,其输入为:

z_j^{(1)} = \sum_{i=1}^n W_{ji}^{(1)} x_i + b_j^{(1)}

其输出为:

h_j = \sigma(z_j^{(1)})

对于第 l 个输出层神经元,其输入为:

z_l^{(2)} = \sum_{j=1}^m W_{lj}^{(2)} h_j + b_l^{(2)}

其输出为:

y_l = \sigma(z_l^{(2)})

其中,\sigma(z) 是激活函数(sigmoid 函数):

\sigma(z) = \frac{1}{1 + e^{-z}}

2. 计算损失函数(Loss Function)

假设损失函数为均方误差(MSE):

L = \frac{1}{2} \sum_{l=1}^k (y_l - \hat{y}_l)^2

其中,\hat{y}_l 是网络的预测输出,y_l 是真实输出。

 3. 反向传播(Backpropagation)

反向传播的目标是计算损失函数对每个权重的偏导数,并根据梯度下降法更新权重。

3.1 输出层的误差项

首先计算输出层的误差项:

\delta_l^{(2)} = \frac{\partial L}{\partial z_l^{(2)}} = \frac{\partial L}{\partial \hat{y}_l} \cdot \frac{\partial \hat{y}_l}{\partial z_l^{(2)}}

由于:

\frac{\partial L}{\partial \hat{y}_l} = \hat{y}_l - y_l
\frac{\partial \hat{y}_l}{\partial z_l^{(2)}} = \hat{y}_l (1 - \hat{y}_l)

所以:

\delta_l^{(2)} = (\hat{y}_l - y_l) \hat{y}_l (1 - \hat{y}_l)

3.2 隐藏层的误差项

接下来计算隐藏层的误差项:

\delta_j^{(1)} = \frac{\partial L}{\partial z_j^{(1)}} = \sum_{l=1}^k \frac{\partial L}{\partial z_l^{(2)}} \cdot \frac{\partial z_l^{(2)}}{\partial h_j} \cdot \frac{\partial h_j}{\partial z_j^{(1)}}

其中:

\frac{\partial z_l^{(2)}}{\partial h_j} = W_{lj}^{(2)}
\frac{\partial h_j}{\partial z_j^{(1)}} = h_j (1 - h_j)

所以:

\delta_j^{(1)} = \left( \sum_{l=1}^k \delta_l^{(2)} W_{lj}^{(2)} \right) h_j (1 - h_j)

3.3 更新权重

根据梯度下降法更新权重:

W_{lj}^{(2)} \leftarrow W_{lj}^{(2)} - \eta \frac{\partial L}{\partial W_{lj}^{(2)}} = W_{lj}^{(2)} - \eta \delta_l^{(2)} h_j
W_{ji}^{(1)} \leftarrow W_{ji}^{(1)} - \eta \frac{\partial L}{\partial W_{ji}^{(1)}} = W_{ji}^{(1)} - \eta \delta_j^{(1)} x_i

其中,\eta 是学习率。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在Linux下安装部署Tomcat教程

摘要 Tomcat是由Apache开发的要给Servlet容器,实现了对Servlet 和JSP的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台,安全管理和Tomcat阀等。简单来说,Tomcat是一个由WEB应用程序的托管平台,可以让用户编写的WEB应用程序,别Tomcat所托管,并提供网…

vue学习第一阶段

vue 什么是Vue? 概念:Vue是一个构建用户页面的渐进式框架 Vue的两种使用方式 Vue的核心开发 场景: 局部 {\color{red}局部} 局部模块改造Vue核心包& Vue插件 工程化开发场景: 整站 {\color{red}整站} 整站开发Vue2官网 https://v2.cn.vuejs.org/ 资料存放地址 D:\Baidu…

RabbitMQ-基本使用

RabbitMQ: One broker to queue them all | RabbitMQ 官方 安装到Docker中 docker run \-e RABBITMQ_DEFAULT_USERrabbit \-e RABBITMQ_DEFAULT_PASSrabbit \-v mq-plugins:/plugins \--name mq \--hostname mq \-p 15672:15672 \-p 5672:5672 \--network mynet\-d \rabbitmq:3…

云效流水线使用Node构建部署前端web项目

云效流水线实现自动化部署 背景新建流水线配置流水线运行流水线总结 背景 先来看看没有配置云效流水线之前的部署流程: 而且宝塔会经常要求重新登录,麻烦的很 网上博客分享了不少的配置流程,这一篇博客的亮点就是不仅给出了npm命令构建&…

Web安全 - “Referrer Policy“ Security 头值不安全

文章目录 概述原因分析风险说明Referrer-Policy 头配置选项1. 不安全的策略no-referrer-when-downgradeunsafe-url 2. 安全的策略no-referreroriginorigin-when-cross-originsame-originstrict-originstrict-origin-when-cross-origin 推荐配置Nginx 配置示例 在 Nginx 中配置 …

ROS导航使用贝塞尔曲线对全局路径进行平滑处理

文章目录 前言一、贝塞尔曲线的使用二、全局路经修改三、结果对比 前言 ROS原生的全局路径规划GlobalPlanner包含A*和Dijkstra,两者原理基本相同,能够规划出从起点到终点的路径,但是由于栅格地图存在锯齿形,得到的全局路径也会出…

解决uniapp H5页面限制输入框只能输数字问题

工作记录 最最近在做 uniapp 开发的移动端 H5 页面,有个需求是金额输入框只能输入数字,不能输入小数点和其他字符,经过各种尝试,发现其他字符可以通过正则过滤掉,但是输入小数点的话,因为没有触发 input 和…

DC-2 靶场渗透

目录 环境搭建 开始渗透 扫存活 扫端口 扫服务 看一下80端口 看一下指纹信息 使用wpscan扫描用户名 再使用cewl生成字典 使用wpscan爆破密码 登陆 使用7744端口 查看shell rbash绕过 切换到jerry用户 添加环境变量 现在可以使用su命令了 提权 使用git提权 环…

如何逐步操作vCenter修改DNS服务器?

在vSphere 7中有一个新功能,它允许管理员更改vCenter Server Appliance的FQDN和IP。因此本文将介绍如何轻松让vCenter修改DNS服务器。 vCenter修改DNS以及修改vCenter IP地址 与在部署 vCenter Server Appliance 后,您可以根据需要修改其 DNS 设置和 IP…

Qt qtcreator配置cmake

添加CMake 选择 Preferences > CMake > Tools. 可以将其设置为默认,如此新建的kit会自动选择默认cmake 完成CMake 代码(自动补全) Qt Creator 使用通用高亮为 CMake 命令提供代码完成的特定参数。例如,CMake: set_source_…

JeeSite 快速开发平台:全能企业级快速开发解决方案|GitCode 光引计划征文展示

投稿人GitCode ID:thinkgem 光引计划投稿项目介绍 JeeSite 快速开发平台,不仅仅是一个后台开发框架,它是一个企业级快速开发解决方案,后端基于经典组合 Spring Boot、Shiro、MyBatis,前端采用 Beetl、Bootstrap、Admi…

大模型系列17-RAGFlow搭建本地知识库

大模型系列17-RAGFlow搭建本地知识库 安装ollama安装open-wehui安装并运行ragflowRAG(检索、增强、生成)RAG是什么RAG三过程RAG问答系统构建步骤向量库构建检索模块生成模块 RAG解决LLM的痛点 使用ragflow访问ragflow配置ollama模型添加Embedding模型添加…

迟来的前端面试经验

最近也是在换工作,小公司和大厂(虾皮、腾讯)都有面试。几次面试收获还是比较大的,了解许多自己的短板,当然也拿到了合适的offer。本文主要整理下面试遇到的问题和知识点,希望对准备找工作的掘友有所帮助。 …

DepthLab: From Partial to Complete 论文解读

目录 一、概述 二、相关工作 1、深度补全 2、单目深度估计 3、已知部分深度的下游任务 三、DepthLab 1、总论 2、编码器和解码器 3、Estimation U-Net 4、Reference U-Net 四、训练操作 1、深度归一化 2、掩模策略 五、数据集 1、训练数据集 2、评估数据集 六、…

直播预告丨社区年度交流会 《RTE 和 AI 融合生态洞察报告 2024》发布

新的一年开始,是时候再深度交流一次了!欢迎关注 1 月 4 日周六晚 社区年度交流会的 线上直播 。 这将是一群 实时多模态 AI 开发者 的聚会。 我们将一起探讨 Voice Agent 在 AI 陪伴助手、AI 硬件和 AI 企业服务等应用场景中的技术突破与产品创新。同时…

RP2K:一个面向细粒度图像的大规模零售商品数据集

这是一种用于细粒度图像分类的新的大规模零售产品数据集。与以往专注于相对较少产品的数据集不同,我们收集了2000多种不同零售产品的35万张图像,这些图像直接在真实的零售商店的货架上拍摄。我们的数据集旨在推进零售对象识别的研究,该研究具…

实战设计模式之建造者模式

概述 在实际项目中,我们有时会遇到需要创建复杂对象的情况。这些对象可能包含多个组件或属性,而且每个组件都有自己的配置选项。如果直接使用构造函数或前面介绍的工厂方法来创建这样的对象,可能会导致以下两个严重问题。 1、参数过多。当一个…

我的博客年度之旅:感恩、成长与展望

目录 感恩有你 技能满点 新年新征程 嘿,各位技术大佬、数码潮咖还有屏幕前超爱学习的小伙伴们!当新年的钟声即将敲响,我们站在时光的交汇点上,回首过往,满心感慨;展望未来,豪情满怀。过去的这…

聆听音乐 1.5.9 | 畅听全网音乐,支持无损音质下载

聆听音乐手机版是面向广大音乐爱好者的移动应用程序,用户可以随时随地通过手机享受丰富的音乐资源。它提供了多种魅力功能,让用户在手机上畅享更舒适的音乐体验,每位用户都能享受精彩纷呈的收听体验。此外,软件还支持无损音质音乐…

GRU-PFG:利用图神经网络从股票因子中提取股票间相关性

“MCI-GRU: Stock Prediction Model Based on Multi-Head Cross-Attention and Improved GRU” 论文地址:https://arxiv.org/pdf/2410.20679 摘要 金融市场因复杂性及大数据时代的来临,使得准确预测股票走势变得尤为重要。传统的时序分析模型&#xff0…