当前位置: 首页 > news >正文

【机器学习】BP神经网络正向计算


鑫宝Code

🌈个人主页: 鑫宝Code
🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础
💫个人格言: "如无必要,勿增实体"


文章目录

  • BP神经网络正向计算
    • 1. 引言
    • 2. BP神经网络结构回顾
    • 3. 正向计算的基本原理
    • 4. 数学表示
      • 4.1 符号定义
      • 4.2 计算过程
    • 5. 激活函数
      • 5.1 Sigmoid函数
      • 5.2 Tanh函数
      • 5.3 ReLU (Rectified Linear Unit)函数
      • 5.4 Leaky ReLU函数
    • 6. 正向计算的实现
    • 7. 正向计算的优化
      • 7.1 矩阵运算
      • 7.2 批处理
      • 7.3 GPU加速
      • 7.4 模型压缩
    • 8. 正向计算的应用
    • 9. 结论
    • 参考文献

BP神经网络正向计算

1. 引言

反向传播(Backpropagation,简称BP)神经网络是人工神经网络中最常用和最基础的模型之一。虽然BP神经网络以其反向传播算法而闻名,但正向计算同样是网络运行的关键组成部分。本文将详细介绍BP神经网络的正向计算过程,包括其基本原理、数学表示和实现方法。
在这里插入图片描述

2. BP神经网络结构回顾

在深入讨论正向计算之前,让我们先回顾一下BP神经网络的基本结构:

  1. 输入层:接收外部输入信号
  2. 隐藏层:对输入信息进行非线性变换(可以有多个)
  3. 输出层:产生网络的最终输出

每一层都由若干个神经元组成,相邻层之间的神经元通过权重连接。

3. 正向计算的基本原理

BP神经网络的正向计算是指信息从输入层经过隐藏层,最后到达输出层的过程。在这个过程中,每一层的神经元都会接收上一层的输出,进行加权求和,然后通过激活函数产生自己的输出。

正向计算的主要步骤如下:

  1. 输入层接收外部信号
  2. 计算隐藏层的输入和输出
  3. 计算输出层的输入和输出
    在这里插入图片描述

4. 数学表示

为了更好地理解正向计算过程,我们来看一下其数学表示。假设我们有一个三层神经网络(输入层、一个隐藏层、输出层)。

4.1 符号定义

  • x x x: 输入向量
  • W ( 1 ) W^{(1)} W(1): 输入层到隐藏层的权重矩阵
  • b ( 1 ) b^{(1)} b(1): 隐藏层的偏置向量
  • W ( 2 ) W^{(2)} W(2): 隐藏层到输出层的权重矩阵
  • b ( 2 ) b^{(2)} b(2): 输出层的偏置向量
  • f f f: 激活函数

4.2 计算过程

  1. 隐藏层的输入:

    z ( 1 ) = W ( 1 ) ⋅ x + b ( 1 ) z^{(1)} = W^{(1)} \cdot x + b^{(1)} z(1)=W(1)x+b(1)

  2. 隐藏层的输出:

    a ( 1 ) = f ( z ( 1 ) ) a^{(1)} = f(z^{(1)}) a(1)=f(z(1))

  3. 输出层的输入:

    z ( 2 ) = W ( 2 ) ⋅ a ( 1 ) + b ( 2 ) z^{(2)} = W^{(2)} \cdot a^{(1)} + b^{(2)} z(2)=W(2)a(1)+b(2)

  4. 输出层的输出(网络最终输出):

    y = f ( z ( 2 ) ) y = f(z^{(2)}) y=f(z(2))

5. 激活函数

激活函数在神经网络中起着至关重要的作用,它引入了非线性,使得网络能够学习复杂的模式。以下是几种常用的激活函数:
在这里插入图片描述

5.1 Sigmoid函数

f ( x ) = 1 1 + e − x f(x) = \frac{1}{1 + e^{-x}} f(x)=1+ex1

特点:

  • 输出范围(0, 1)
  • 易于求导
  • 存在梯度消失问题

5.2 Tanh函数

f ( x ) = e x − e − x e x + e − x f(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}} f(x)=ex+exexex

特点:

  • 输出范围(-1, 1)
  • 零中心化
  • 仍存在梯度消失问题

5.3 ReLU (Rectified Linear Unit)函数

f ( x ) = max ⁡ ( 0 , x ) f(x) = \max(0, x) f(x)=max(0,x)

特点:

  • 计算简单,收敛速度快
  • 缓解梯度消失问题
  • 可能导致神经元"死亡"

5.4 Leaky ReLU函数

f ( x ) = max ⁡ ( α x , x ) f(x) = \max(\alpha x, x) f(x)=max(αx,x),其中 α \alpha α是一个小正数

特点:

  • 解决了ReLU的"死亡"问题
  • 保留了ReLU的其他优点

6. 正向计算的实现

以下是一个简单的BP神经网络正向计算的Python实现示例:

import numpy as npdef sigmoid(x):return 1 / (1 + np.exp(-x))class BPNeuralNetwork:def __init__(self, input_size, hidden_size, output_size):self.input_size = input_sizeself.hidden_size = hidden_sizeself.output_size = output_size# 初始化权重和偏置self.W1 = np.random.randn(self.input_size, self.hidden_size)self.b1 = np.zeros((1, self.hidden_size))self.W2 = np.random.randn(self.hidden_size, self.output_size)self.b2 = np.zeros((1, self.output_size))def forward(self, X):# 隐藏层self.z1 = np.dot(X, self.W1) + self.b1self.a1 = sigmoid(self.z1)# 输出层self.z2 = np.dot(self.a1, self.W2) + self.b2self.a2 = sigmoid(self.z2)return self.a2# 使用示例
nn = BPNeuralNetwork(2, 4, 1)
X = np.array([[0, 0], [0, 1], [1, 0], [1, 1]])for input in X:output = nn.forward(input.reshape(1, -1))print(f"Input: {input}, Output: {output[0][0]}")

7. 正向计算的优化

在实际应用中,我们可以采用一些技巧来优化BP神经网络的正向计算过程:

7.1 矩阵运算

使用矩阵运算可以大大提高计算效率,特别是在处理大规模数据时。现代深度学习框架(如TensorFlow和PyTorch)都对矩阵运算进行了优化。

7.2 批处理

批处理是指同时处理多个样本,而不是一次只处理一个。这可以提高计算效率,并且在某些情况下可以提高模型的泛化能力。

7.3 GPU加速

利用GPU的并行计算能力可以显著加速神经网络的计算过程,包括正向计算。

7.4 模型压缩

对于一些资源受限的场景,可以考虑使用模型压缩技术,如权重量化、剪枝等,以减少计算量和内存占用。

8. 正向计算的应用

BP神经网络的正向计算在许多领域都有广泛应用,例如:

  1. 图像识别:利用卷积神经网络(CNN)进行图像分类、目标检测等任务。
  2. 自然语言处理:使用循环神经网络(RNN)或Transformer进行文本分类、机器翻译等任务。
  3. 推荐系统:构建用户-物品交互模型,预测用户偏好。
  4. 金融预测:预测股票价格、信用评分等。
  5. 医疗诊断:基于医疗数据进行疾病诊断和预测。

9. 结论

BP神经网络的正向计算是整个网络运行的基础。通过本文的介绍,我们详细了解了正向计算的原理、数学表示和实现方法。正向计算不仅是神经网络训练过程中的重要一步,也是模型部署和应用时的核心操作。

随着深度学习技术的不断发展,BP神经网络及其变体仍然在各个领域发挥着重要作用。理解和掌握正向计算过程,对于深入学习神经网络原理、优化网络性能以及开发创新应用都具有重要意义。

参考文献

  1. Rumelhart, D. E., Hinton, G. E., & Williams, R. J. (1986). Learning representations by back-propagating errors. Nature, 323(6088), 533-536.
  2. Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep learning. MIT press.
  3. LeCun, Y., Bengio, Y., & Hinton, G. (2015). Deep learning. Nature, 521(7553), 436-444.

End

相关文章:

【机器学习】BP神经网络正向计算

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 BP神经网络正向计算1. 引言2. BP神经网络结构回顾3. 正向计算的基本原理4. 数学…...

谷粒商城实战笔记-108~109-elasticsearch删除与批量导入

一,108-全文检索-ElasticSearch-入门-put&post修改数据 第一种更新方式: POST customer/external/1/_update {"doc":{"name": "John Doew"} }第二种更新方式: POST customer/external/1 { "name&q…...

RabbitMQ:发送者的可靠性之使用消息确认回调

文章目录 配置RabbitMQ的ConfirmCallback使用ConfirmCallback发送消息实际使用中的注意事项总结 在开发消息驱动的系统时,消息的可靠传递至关重要。而RabbitMQ作为一个广泛使用的消息队列中间件,提供了多种消息确认机制,确保消息从生产者到交…...

HCIP学习 | OSPF---LSA限制、不规则区域、附录E、选路

目录 Days06(24.8.8)OSPF---LSA限制、不规则区域、附录E、选路 特殊区域 stub 区域, 末节区域 Totally stub :完全的末节区域 NSSA区域:(not so stub area) 非完全末节区域 完全的非完全的末节区域: …...

CVE-2017-15715~Apache解析漏洞【春秋云境靶场渗透】

Apache解析漏洞 漏洞原理 # Apache HTTPD 支持一个文件拥有多个后缀,并为不同后缀执行不同的指令。比如如下配置文件: AddType text/html .html AddLanguage zh-CN .cn# 其给 .html 后缀增加了 media-type ,值为 text/html ;给 …...

thinkphp 5.0.24生成模块

访问的形式生成模块: 1、需要在入口文件Public/index.php中加入以下代码: //生成Home模块,添加以下这句后,打开浏览器执行:http://www3.phptp5.com/public/index.php自动生成Home模块 \think\Build::module(Home); …...

值得注意!家里有带毛发动物就有浮毛?宠物空气净化器一键净化

上次跟朋友逛完街去她家,她家热情的哈基米开门就一个猛冲,我朋友接住就是一顿猛亲,亲猫一时爽,汗液粘着猫毛,粘得满手臂、满脸都是,看得鼻炎星人头皮发麻...好多养宠物的都说,梳毛根本不管用&am…...

Linux 代理(proxy)设置

有关网络代理的环境变量 环境变量说明可选的取值http_proxyhttp协议的网络连接使用该代理。ip:porthttp://ip:portsocks://ip:portsocks4://ip:portsocks5://ip:porthttps_proxyhttps协议的网络连接使用该代理。ftp_proxyftp协议使用该代理。all_proxy所有网络协议的网络连接都…...

操作系统真相还原:获取文件属性

14.15 获得文件属性 14.15.1 ls命令的幕后功臣 ls 命令中调用了大量的系统调用 stat64 和write ,其中stat64 用于获得文件的属性信息, write 用于把信息输出到屏幕,即标准输出。这里的 stat64 表示 64 位版本的 stat。 其函数原型是int sta…...

聚鼎装饰画:投资一家装饰画店铺要花费多少钱

在艺术的殿堂里,每一幅装饰画都是静默的诗篇,而开设一家装饰画店铺,便是将这份静谧与美好呈现给世界的开始。然而,背后的投资成本,却是一笔需要精打细算的账。 店铺的选址,犹如画家挑选画布,至关…...

编程的魅力、其重要性、学习方法以及未来趋势

在数字化时代,编程已不仅仅是程序员的专属技能,它逐渐渗透到我们生活的方方面面,成为连接现实与虚拟世界的桥梁。从日常使用的智能手机应用到探索宇宙奥秘的超级计算机,编程的力量无处不在。本文将深入探讨编程的魅力、其重要性、…...

ubuntu init set

1 cuda驱动 cuda use not open test 自己下载安装 以上操作后可能是核显卡,需要执行下列进入独立显卡,才能进行HDMI链接 sudo prime-select nvidia sudo prime-select intel prime-select query 该命令用于查看目前的显卡使用模式,可以看到…...

MySQL数据分析进阶(八)存储过程

※食用指南:文章内容为‘CodeWithMosh’SQL进阶教程系列学习笔记,笔记整理比较粗糙,主要目的自存为主,记录完整的学习过程。(图片超级多,慎看!) 【中字】SQL进阶教程 | 史上最易懂S…...

最深的根,

1498. 最深的根 题目 提交记录 讨论 题解 视频讲解 一个无环连通图可以被视作一个树。 树的高度取决于所选取的根节点。 现在,你要找到可以使得树的高度最大的根节点。 它被称为最深的根。 输入格式 第一行包含整数 NN,表示节点数量。 节点…...

【常见的设计模式】工厂模式

【设计模式专题之工厂方法模式】2.积木工厂   题目描述 小明家有两个工厂,一个用于生产圆形积木,一个用于生产方形积木,请你帮他设计一个积木工厂系统,记录积木生产的信息。   输入描述 输入的第一行是一个整数 N(1 …...

postgres收缩工具两种工具的使用对比

postgres收缩工具安装和使用 第一章 需要使用插件处理膨胀的原因 Postgresql通过数据多版本实现MVCC,现象是删除数据并不会真正删除数据,而是修改标识,更新是通过删除+插入的方式进行,所以在频繁更新的OLTP系统,会造成数据膨胀。 PG数据库本身有处理膨胀问题的vacuum工…...

仿真入门——CST软件如何设置分布式计算的共享储存

在 CST Studio Suite 的分布式计算中,常有用户因为某台机器的网络问题丢失某个数据。这里介绍一种方法,可以在使用分布式计算或 MPI 计算时设置共享存储。在这种情况下,不涉及文件传输,所有文件操作都在共享文件的媒介上完成。 数…...

【JVM基础17】——实践-说一下JVM调优工具

目录 1- 引言:2- ⭐核心:2-1 命令工具jpsjstackjmapjstat 2-2 可视化工具jconsoleVisualVM 3- 小结:3-1 说一下 JVM 调优的工具 1- 引言: 命令工具 jps——进程状态信息jstack——查看Java进程内线程的堆栈信息jmap——查看堆转…...

【QT】Qt中Websocket的使用

一、WebSocket的定义 WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket通信协议于2011年被IETF定为标准RFC 6455,并由RFC7936补充规范。WebSocket API也被W3C定为标准。 WebSocket使得客户端和服务器之间的数据交换变得更加简单,…...

【vue3】【elementPlus】【国际化】

1.如需从0-1开始,请参考 https://blog.csdn.net/Timeguys/article/details/140995569 2.使用 vue-i18n 模块: npm i vue-i18n3.在 src 目录下创建 locales 目录,里面创建文件:en.js、zh-cn.js、index.js 语言js文件:…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

mongodb源码分析session执行handleRequest命令find过程

mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...

EtherNet/IP转DeviceNet协议网关详解

一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)

UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化&#xf…...

基于 TAPD 进行项目管理

起因 自己写了个小工具,仓库用的Github。之前在用markdown进行需求管理,现在随着功能的增加,感觉有点难以管理了,所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD,需要提供一个企业名新建一个项目&#…...

【JVM】Java虚拟机(二)——垃圾回收

目录 一、如何判断对象可以回收 (一)引用计数法 (二)可达性分析算法 二、垃圾回收算法 (一)标记清除 (二)标记整理 (三)复制 (四&#xff…...

免费数学几何作图web平台

光锐软件免费数学工具,maths,数学制图,数学作图,几何作图,几何,AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...

PH热榜 | 2025-06-08

1. Thiings 标语:一套超过1900个免费AI生成的3D图标集合 介绍:Thiings是一个不断扩展的免费AI生成3D图标库,目前已有超过1900个图标。你可以按照主题浏览,生成自己的图标,或者下载整个图标集。所有图标都可以在个人或…...

高端性能封装正在突破性能壁垒,其芯片集成技术助力人工智能革命。

2024 年,高端封装市场规模为 80 亿美元,预计到 2030 年将超过 280 亿美元,2024-2030 年复合年增长率为 23%。 细分到各个终端市场,最大的高端性能封装市场是“电信和基础设施”,2024 年该市场创造了超过 67% 的收入。…...