神经网络与深度学习(一)误差反传BP算法

news2024/11/25 12:35:37

误差反传BP算法

  • 1多层感知机
    • 1.1XOR问题
    • 1.2多层感知机
  • 2.BP算法
    • 2.1简述
    • 2.2详解
      • 2.2.1输入输出模型
      • 2.2.2梯度下降算法迭代
      • 2.2.3前向传播在输出端计算误差
      • 2.2.4误差反传--输出层
      • 2.2.5误差反传--隐含层
      • 2.2.6误差反传--总结

1多层感知机

1.1XOR问题

线性不可分问题: 无法进行线性分类。
Minsky 1969 年提出 XOR 问题
在这里插入图片描述
解决方法:使用多层感知机 使用多层感知机

1.2多层感知机

在这里插入图片描述
• 在输入和输出层间加一或多隐单元,构成多层感知器(多层前馈神经网络)
• 加一层隐节点( 单元)为三层网络,可解决异或XOR )问题
由输入得到两个隐节点、一个输出层节点的输出:
在这里插入图片描述
可得到:
在这里插入图片描述
设网络有如下一组权值和阈值,可得各节点的输出:
在这里插入图片描述
在这里插入图片描述
三层感知器可识别任一凸多边形或无界的区域。
更多层感知器网络,可识别为复杂的图形。

2.BP算法

2.1简述

在这里插入图片描述
多层感知机是一种多层前馈网络, 由多层神经网络构成,每层网络将输出传递给下一层网络。神经元间的权值连接仅现在相邻之间, 不出现在其他位置。如果每一个神经元都连接到上层的所有(除输入层外),则成为全连接网络 。

多层前馈网络的反向传播 (BP) 学习算法,简称BP算法,是有导师的学习,它是梯度下降法在多层前馈网中的应用。
网络结构:见上图,u(或x)、y是网络的输入、输出向量,神经元用节点表示,网络由输入层、隐层和输出层节点组成,隐层可一层也可多层 (图中是单隐层) ,前层至后层节点通过权联接。由于用BP学习算法,所以常称BP神经网络。

  • 正向传播是输入信号从输入层经隐层,传向输出层,若输出层得到了期望的输出,则学习算法结束;否则,转至反向传播。
  • 反向传播是将误差(样本输出与网络输出之差) 按原联接通路反向计算,由梯度下降法调整各层节点的权值和闽值,使误差减少

2.2详解

2.2.1输入输出模型

假设网络共有L层,(输入层为第0层,输出为第L层)
层:用上标[l]表示,共L层;
在这里插入图片描述
在这里插入图片描述

2.2.2梯度下降算法迭代

在这里插入图片描述
网络训练的目的,是使对每一个输入样本,调整网络权值参数w,使输出均方误差最小化。这是一个最优化问题。
在这里插入图片描述
为求解上述最小化问题,考虑迭代算法
在这里插入图片描述这就是梯度下降算法,也是BP学习算法的基本思想

2.2.3前向传播在输出端计算误差

考虑二层神经网络(有一层隐含层):
对于第1层第i个神经元,其输出:
在这里插入图片描述
在输出端计算误差
在这里插入图片描述

2.2.4误差反传–输出层

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2.5误差反传–隐含层

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
即误差进行反向传播
在这里插入图片描述

2.2.6误差反传–总结

在这里插入图片描述

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

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

相关文章

C++心决之命名空间、重载函数和引用

目录 1. C关键字(C98) 2. 命名空间 2.1 命名空间定义 2.2 命名空间使用 3. C输入&输出 4. 缺省参数 4.1 缺省参数概念 4.2 缺省参数分类 5. 函数重载 5.1 函数重载概念 5.2 C支持函数重载的原理--名字修饰(name Mangling) 6. 引用 6.1 引用概念 6.2 引用特性…

Java多线程:定位死锁

检测死锁可以使用jconsole工具,或使用jps定位进程id,再用jstack定位死锁 方案1: 1. 先用jps查看所有的java进程id 2. jstack 进程id定位死锁 3. 查看死锁结果 方案2:从jdk的安装路径中找到bin目录, 点击jconsole

Linux线程原理以及基础操控函数使用(1)

线程原理 这一个课程的笔记 LWP:light weight process 轻量级的进程,本质仍是进程(在Linux环境下) 进程:独立地址空间,拥有PCB 线程:有独立的PCB,但没有独立的地址空间(共享) 区别:在于是否共…

算法6.4-6.6DFS

一个不知名大学生,江湖人称菜狗 original author: Jacky Li Email : 3435673055qq.com Time of completion:2024.03.27 Last edited: 2024.03.27 目录 算法6.4-6.6DFS 第1关:算法6.5采用邻接矩阵表示图的深搜 任务描述 相关知识 编程要求…

数据结构——优先级队列及多服务台模拟系统的实现

一、优先级队列的定义和存储 优先级队列定义:优先级高的元素在队头,优先级低的元素在队尾 基于普通线性表实现优先级队列,入队和出队中必有一个时间复杂度O(n),基于二叉树结构实现优先级队列,能够让入队和出队时间复杂度都为O(log…

RabbitMQ--04--发布订阅模式 (fanout)-案例

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 发布订阅模式 (fanout)---案例前言RabbitListener和RabbitHandler的使用 1.通过Spring官网快速创建一个RabbitMQ的生产者项目2.导入项目后在application.yml文件中配…

Python编程-并发编程基础梳理与高级特性案例讲解

Python编程-并发编程基础梳理与高级特性案例讲解 同步、异步通信与IO阻塞 同步(Synchronous)和异步(Asynchronous)通信是两种不同的通信方式,涉及到处理任务的时序和相互等待的关系。同步通信简单直观,但可…

Unity 使用TrailRenderer制作拖尾效果

使用TrailRenderer实现拖尾效果,具体操作步骤如下: 1、创建一个空对象 在Unity场景中创建一个空对象 2、添加TrailRenderer组件 选择步骤1创建的空对象,然后在Inspector面板中点击“Add Component”按钮,搜索并添加TrailRende…

蓝桥杯第七届大学B组详解

目录 1.煤球数量; 2.生日蜡烛; 3.凑算式 4.方格填数 5.四平方和 6.交换瓶子 7.最大比例 1.煤球数量 题目解析:可以根据题目的意思,找到规律。 1 *- 1个 2 *** 3个 3 ****** 6个 4 ********** 10个 不难发现 第…

C++入门知识详细讲解

C入门知识详细讲解 1. C简介1.1 什么是C1.2 C的发展史1.3. C的重要性1.3.1 语言的使用广泛度1.3.2 在工作领域 2. C基本语法知识2.1. C关键字(C98)2.2. 命名空间2.2 命名空间使用2.2 命名空间使用 2.3. C输入&输出2.4. 缺省参数2.4.1 缺省参数概念2.4.2 缺省参数分类 2.5. …

Linux - 第三节

改变用户类型 su 仅单纯的进行身份变化 依旧处于普通用户里面 su - 进行重新登录更改身份 退出用exit / ctrld su 用户名 改成成其他身份 对一条命令进行提权 sudo command r:可读 w:可写 x:可执行 -:对应的权限位置,没有权限 去掉所有权限 chmod u…

Qt中继承QCheckBox的类结合QTableWidget实现多选并且每个多选的id都不一样

1.相关描述 继承QCheckBox的类MyCheckBox&#xff0c;利用QTableWidget的setCellWidget方式添加MyCheckBox类的对象 2.相关页面 3.相关代码 mycheckbox.h #ifndef MYCHECKBOX_H #define MYCHECKBOX_H#include <QCheckBox> #include <QObject>class MyCheckBox : pu…

Elvis Presley 英文阅读

Elvis Presley 官方翻译 One of the most popular American singers of thetwentieth century was Elvis Presley. He made theRock & Roll music popular around the world. He sold millions of records and made manysuccessful films, and he helped change the dir…

基于SSM医院病历管理系统

基于SSM医院病历管理系统的设计与实现 摘要 病历管理系统是医院管理系统的重要组成,在计算机技术快速发展之前&#xff0c;病人或者医生如果想记录并查看自己的健康信息是非常麻烦的&#xff0c;因为在以往病人的健康信息通常只保存在自己的病历卡或者就诊报告中&#xff0c;…

TikTok直播专线:解决出海网络问题痛点,提升商业效率

近年来&#xff0c;TikTok作为全球最受欢迎的社交媒体平台之一&#xff0c;成为商家获取商机与市场的重要平台。然而&#xff0c;尽管商家纷纷进入TikTok&#xff0c;试图借助其强大的社交网络进行产品推广和销售&#xff0c;但在TikTok平台进行直播时&#xff0c;往往会遇到网…

何时应用 RAG 与微调

充分发挥 LLM 的潜力需要在检索增强生成&#xff08;RAG&#xff09;和微调之间选择正确的技术。 让我们来看看何时对 LLM、较小的模型和预训练模型使用 RAG 与微调。我们将介绍&#xff1a; LLM 和 RAG 的简要背景RAG 相对于微调 LLM 的优势何时针对不同模型大小对 RAG 进行…

WebGIS 之 vue3+vite+ceisum

1.项目搭建node版本在16以上 1.1创建项目 npm create vite 项目名 1.2选择框架 vuejavaScript 1.3进入项目安装依赖 cd 项目名 npm install 1.4安装cesium依赖 pnpm i cesium vite-plugin-cesium 1.5修改vite.config.js文件 import { defineConfig } from vite import vue fr…

labelme AI 模型运用

一、lebelme 1、界面介绍 点击上图位置&#xff0c;选择对应的模型。这里我每个模型都测试了一下&#xff0c;EfficientSam这个模型最好用&#xff0c;准确率和速度都ok。 2、使用方法 目标框标注方法&#xff1a;点左上角【编辑】-> 【Create Ai-Mask】就可以标志了&…

在 Three.js 中,OBJExporter 是一个用于将 Three.js 中的场景导出为 OBJ 格式的类。

demo案例 在 Three.js 中&#xff0c;OBJExporter 是一个用于将 Three.js 中的场景导出为 OBJ 格式的类。下面是关于它的入参、出参、属性和方法的解释&#xff1a; 类名&#xff1a;OBJExporter 构造函数&#xff1a; THREE.OBJExporter()说明&#xff1a; 创建一个 OBJE…

2d导入人物素材进行分割后设置图层

1、设置分辨率大小 2、相机调整大小&#xff0c;要符合场景 3、选择2D sprite 编辑器 或者 点击这个也行 4、分割图像 5、设置过滤模式 6、图层设置