深度学习之BP神经网络

2023-05-16

深度学习之BP神经网络

BP(Back Propagation)网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络。它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP神经网络模型拓扑结构包括输入层(input)、隐层(hide layer)和输出层(output layer)。

这里写图片描述

BP神经元

这里写图片描述

第j个神经元的净输入值Sj为:
这里写图片描述
净输入 通过传递函数(Transfer Function)f (·)后,便得到第j个神经元的输出:
这里写图片描述
式中f是单调上升函数,而且必须是有界函数,因为细胞传递的信号不可能无限增加,必有一最大值。

事实上,对于单个神经元而言,若忽视传递函数,其本质上就是LR算法。

反向传播

反向传输是BP神经网络的特点,故详细说明此部分。
1)误差函数
第p个样本的误差:
这里写图片描述
其中,tp为期望输出,yp为经过网络后的输出,有p个学习样本,m个输出节点。
全局误差:
这里写图片描述
此处不做具体的公式推导,改用较为直观的的方式解释,如下图:
这里写图片描述

情况一:
当误差对权值的偏导数大于零时,权值调整量为负,实际输出大于期望输出,权值向减少方向调整,使得实际输出与期望输出的差减少。
情况二:
当误差对权值的偏导数小于零时,权值调整量为正,实际输出小于期望输出,权值向增大方向调整,使得实际输出与期望输出的差减少。

BP神经网络优缺点

优点:
(1)网络实质上实现了一个从输入到输出的映射功能,而数学理论已证明它具有实现任何复杂非线性映射的功能。这使得它特别适合于求解内部机制复杂的问题;
(2)网络能通过学习带正确答案的实例集自动提取“合理的”求解规则,即具有自学习能力;
(3)网络具有一定的推广、概括能力。

问题:
(1) BP算法的学习速度很慢,其原因主要有:
① 由于BP算法本质上为梯度下降法,而它所要优化的目标函数又非常 复杂,因此,必然会出现“锯齿形现象”,这使得BP算法低效;
② 存在麻痹现象,由于优化的目标函数很复杂,它必然会在神经元输出 接近0或1的情况下,出现一些平坦区,在这些区域内,权值误差改变很小,使训练过程几乎停顿;
③ 为了使网络执行BP算法,不能用传统的一维搜索法求每次迭代的步长,而必须把步长的更新规则预先赋予网络,这种方法将引起算法低效。
(2) 网络训练失败的可能性较大,其原因有:
① 从数学角度看,BP算法为一种局部搜索的优化方法,但它要解决的问题为求解复杂非线性函数的全局极值,因此,算法很有可能陷入局部极值,使训练失败;
② 网络的逼近、推广能力同学习样本的典型性密切相关,而从问题中选取典型样本实例组成训练集是一个很困难的问题。
(3) 难以解决应用问题的实例规模和网络规模间的矛盾。这涉及到网络容量的可能性与可行性的关系问题,即学习复杂性问题;
(4) 网络结构的选择尚无一种统一而完整的理论指导,一般只能由经验选定。为此,有人称神经网络的结构选择为一种艺术。而网络的结构直接影响网络的逼近能力及推广性质。因此,应用中如何选择合适的网络结构是一个重要的问题;
(5) 新加入的样本要影响已学习成功的网络,而且刻画每个输入样本的特征的数目也必须相同;
(6) 网络的预测能力(也称泛化能力、推广能力)与训练能力(也称逼近能力、学习能力)的矛盾。一般情况下,训练能力差时,预测能力也差,并且一定程度上,随训练能力地提高,预测能力也提高。但这种趋势有一个极限,当达到此极限时,随训练能力的提高,预测能力反而下降,即出现所谓“过拟合”现象。此时,网络学习了过多的样本细节,而不能反映样本内含的规律。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

深度学习之BP神经网络 的相关文章

  • 怎么防止SQL注入?

    首先SQL注入是一种常见的安全漏洞 xff0c 黑客可以通过注入恶意代码来攻击数据库和应用程序 以下是一些防止SQL注入的基本措施 xff1a 数据库操作层面 使用参数化查询 xff1a 参数化查询可以防止SQL注入 xff0c 因为参数化
  • WARMING! ! ! BIOS Recovery mode has been detected. Please put the file “ASUS. CAp“ into HDD or a rem

    文章目录 问题场景 xff1a 解决方案 xff1a 步骤1 xff1a 下载适当的BIOS文件步骤2 xff1a 将BIOS文件复制到可移动设备或硬盘驱动器中步骤3 xff1a 进入BIOS恢复模式步骤4 xff1a 恢复BIOS步骤5
  • 如何比较本地git分支与其远程分支?

    如何查看本地分支和远程分支之间的diff xff1f 1楼 第一种 a href http www javaxxz com thread 377026 1 1 html git a branch a 获取可用分支列表 在输出上你可能会看到类
  • VuePress1.x使用及个人博客搭建

    文章目录 介绍快速开始安装目录页面配置 介绍 VuePress 由两部分组成 xff1a 一个以 Vue 驱动的主题系统的简约静态网站生成工具 xff0c 和一个为编写技术文档而优化的默认主题 它是为了支持 Vue 子项目的文档需求而创建的
  • Git项目同时推送到GitHub和Gitee详细操作

    文章目录 前言一 创建仓库 Create a new repository 二 初始化三 配置公钥四 密钥验证五 代码推送 总结 前言 将Git项目同时推送到GitHub和Gitee的好处如下 xff1a 提高代码可见性和协作性 xff1a
  • VMware虚拟机安装CentOS8详细教程

    文章目录 一 下载安装包二 创建虚拟机1 安装 VMware2 创建虚拟机3 编辑虚拟机设置 三 系统安装1 开始安装2 时区设置3 分区设置4 配置网络6 开机密码7 配置安装源8 安装 四 系统配置1 网络检查2 配置静态IP地址 一
  • ChatGPT API调用+服务器部署【附Git地址】

    文章目录 一 关键代码二 使用步骤1 获取代码2 服务器部署 总结 运行对话效果图 一 关键代码 span class token keyword public span span class token keyword class spa
  • zookeeper超详细安装集群部署

    文章目录 一 zookeeper官网下载二 JDK环境安装三 zookeeper安装1 zookeeper解压2 zookeeper配置文件介绍 克隆服务器1 网络检查2 集群配置3 启动集群4 错误记录 一 zookeeper官网下载 下
  • VMware虚拟机克隆、复制虚拟机

    文章目录 为什么要克隆一 环境检查二 开始克隆三 网卡静态配置 为什么要克隆 首先VMware 上创建的虚拟机是可以重复使用的 xff0c 安装好的虚拟机可以直接复制或者剪切到其它任意电脑上 xff0c 然后使用 VMware 打开使用 x
  • CentOS7【管理防火墙端口命令】

    查看防火墙状态 xff1a firewall span class token operator span cmd span class token operator span state 开启防火墙 xff1a systemctl sta
  • Package ‘ufw‘ has no installation candidate问题已解决

    错误提示 xff1a Reading package lists Done Building dependency tree Done Package aptitude is not available but is referred to
  • 用git下载单个分支

    原文发在github io博客 转载写明出处 xff1a http landerlyoung github io blog 2014 01 06 yong gitxia zai dan ge fen zhi 最近在玩octpress 开始一
  • ubuntu18 安装ros-melodic 的踩坑记录

    今天运行a loam程序才发现重装之后的ubuntu18没装ros 于是去查了怎么去查找ros系统的版本 先在终端输入roscore 打开新终端 xff0c 再输入 xff0c rosparam list 再输入rosparam get r
  • 二进制信号量和互斥量之间的区别

    二进制信号量和互斥量之间是否有任何区别 xff0c 或者它们基本相同 xff1f 1楼 它们的同步语义非常不同 xff1a 互斥锁允许序列化对给定资源的访问 xff0c 即多个线程一次等待一个锁 xff0c 并且如前所述 xff0c 该线程
  • SC-A-LOAM在aloam基础上添加了回环优化的代码运行

    知道aloam的朋友们知道这个代码是不包含回环检测的 而有大神们对此添加了sc回环检测 来试着改动一下这个代码 虽然大部分aloam本身的代码都没有改动 但经过博主我的精细对比发现了有如下不同 修改laserMapping cpp文件 添加
  • Livox LiDAR点云数据类型的转化——livox_ros_driver/CustomMsg到sensor_msgs/PointCloud2

    在做Lidar与IMU数据之间的标定时 xff0c 出现了数据无法读取的问题 主要是代码里读取lidar数据是需要下面的语句 span class token function add span lidar msg sensor msgs
  • pangolin的卸载与重新安装--ubuntu18如何安装卸载包

    1 在终端里 apt get安装的软件 xff1a 安装软件sudo apt get install softname1 softname2softname3 卸载软件 sudo apt get remove softname1 softn
  • win10找回自带的windows照片查看器——打开jpg、png、gif、psd其他格式的图片

    最近查看图片发现自带的照片查看器没有了 双击后打开的是画图软件 其他软件怕安装了会出现广告以及付费情况 因此还是想找回以前自带的照片查看器 这里码一下网上找到的好方法 手动添加注册表 win 43 R xff0c 输入 regedit 进入
  • SLAM评估工具-EVO从安装到使用

    1 安装 evo pip install evo span class token operator span upgrade span class token operator span no span class token opera
  • ArcGIS10.6 安装以及License许可启动无响应问题解决

    最近需要重新在电脑里安装arcgis 之前在自己的笔记本里面安装了但是教程没有记录 xff0c 因此这里完全忘记了如何安装 这里记录一下安装遇到的问题 一些经常用的软件安装包真的可以保留下来 xff0c 免得以后二次下载浪费时间 xff01

随机推荐

  • SLAM精度评估常见问题——GPS时间戳与bag包时间戳如何对齐

    在使用evo进行精度评估时 xff0c 由于evo是通过时间戳来进行配准和比较的 xff0c 为了使结果更准确 xff0c 需要将GPS与bag包的时间戳进行转换对齐 在这里更方便的方法是转换GPS时间戳到bag包 首先查看GPS文件 他的
  • Ubuntu20搭建pytorch深度学习框架——使用增强样本运行Dlinknet提取道路水体(五)——样本增强

    之前运行的样本是未进行过样本增强的 做出来多少样本就使用了多少样本来进行训练 这里复盘一下样本训练结果 首先是道路 使用512512分辨率的16461张标签和16461张原图进行训练 接下来是水体 使用512512分辨率的11503张标签和
  • Ubuntu20运行SegNeXt代码提取道路水体(二)——SegNeXt源代码安装到测试环境配置全过程摸索

    首先我们在第一篇里面已经下载了SegNeXt代码 打开源代码 查看readme文件 我们先安装一下里面提到的torchprofile 链接在这 其实只要这个语句就能安装 pip install torchprofile 这一步没什么问题 很
  • pyqt5页面美化全流程摸索(二)——为控件增加下拉选项及增加鼠标悬停后改变按钮颜色功能

    我想为我的一个控件增加菜单栏 搞了半天 查阅了大量文章 都失败了 没法给ToolButton增加menu啊 xff01 我是这么尝试的 首先查阅下列文章 pyqt5学习 菜单栏 xff08 QMenu xff09 工具栏QToolBar学习
  • 什么是NullReferenceException,如何解决?

    这篇文章是 社区维基 编辑现有答案以改善此职位 它当前不接受新的答案 我有一些代码 xff0c 执行时会抛出NullReferenceException xff0c 说 xff1a 你调用的对象是空的 这是什么意思 xff0c 我该怎么做才
  • 七、使用arcgis对道路结果进行后处理及iou优化步骤详解

    最近在研究对道路的后处理 废话不多说 直接放我的教程了 分别对real真实和predict预测的图片进行镶嵌操作 教程在这里 工具在这里 结果如下 矢量化提取道路中心线 经过很多尝试 arcscan是提取效果最好的一个方法 xff0c 操作
  • 八、使用代码对道路结果进行后处理及iou优化步骤详解

    老师又给我画了大饼 没办法 只能按照他们的想法做个尝试 上一篇的方法还没进行下去 就被叫停 又更新了一个新的想法 这里记录一下 我的尝试过程 一 图片膨胀 首先使用代码对道路进行膨胀 这里的代码 import cv2 import nump
  • add_library cannot create target “XXXX“ because another target with the same name already exists.

    CMake Error at CMakeLists txt add library cannot create target xxx because another target with the same name already exi
  • FreeRTOS的同步机制---事件event

    目录 1 event的基本概念 2 event的特点 3 event的运行机制 4 event与semphore的区别 5 event的应用场景 6 demo分析 1 event的基本概念 事件event是用于任务间通信的机制 xff0c
  • FreeRTOS同步机制--互斥信号量

    1 为什么引入互斥量 普通的信号量在任务之间同步时 xff0c 会出现优先级翻转问题 xff0c 如下 xff1a 执行流程如下 xff1a 1 xff09 此时 xff0c 任务就绪列表中 xff0c 低优先级任务L的优先级最高 xff0
  • 为何某些公司不允许使用 C++ STL

    作者 xff1a 陈甫鸼 链接 xff1a https www zhihu com question 20201972 answer 23454845 来源 xff1a 知乎 著作权归作者所有 xff0c 转载请联系作者获得授权 最初开始禁
  • 如何发明新算法(一)

    如何发明新算法 xff08 一 xff09 算法一直是计算机科学的核心 xff0c 算法改变世界 xff0c 算法创造未来 xff01 这篇文章我主要从复杂化 简单化两个方面谈谈怎么样发明一个新的算法 新算法在时间复杂度 xff0c 空间复
  • python进行http登录

    摘要 xff1a 有时需要用python做一些自动化页面请求 xff0c 但请求又需要登录权限 xff0c 好比如抢票 在有账号密码的情况下 xff0c 可以用request Session进行带session的http请求 xff0c 这
  • Ubuntu14.04 for ROS indigo的安装(电脑配置)

    前言 由于个人需要 xff0c 将笔记本电脑重新装了系统 首先用空白U盘进行系统刻盘 xff0c 然后电脑所有数据备份 xff0c 最后重新安装 装入的系统是exbot 机器人提供的Ubuntu14 04 for ros indigo xf
  • Django自带的加密算法及加密模块

    Django 内置的User类提供了用户密码的存储 验证 修改等功能 xff0c 可以很方便你的给用户提供密码服务 默认的Ddjango使用pbkdf2 sha256方式来存储和管理用的密码 xff0c 当然是可以自定义的 Django 通
  • 如何在Python中使用“ with open”打开多个文件?

    我想一次更改几个文件 xff0c 前提是我可以写入所有文件 我想知道我是否可以将多个打开调用与with语句结合with xff1a try with open 39 a 39 39 w 39 as a and open 39 b 39 39
  • 工业控制领域的期刊

    我们都知道目前做控制的大体分两大类人 xff0c 一类是做纯控制理论的 xff0c 主要是跟数学打交道 xff1b 另一类是做控制理论在各个行业的应用的 xff0c 其中包括电力系统 xff0c 机器人 xff0c 智能交通 xff0c 航
  • VNC 灰屏

    用vnc连接服务器的时候 xff0c 出现了灰屏 xff0c xff08 在xshell可以正常运行 xff09 上面会显示三个checkbox xff1a Accept clipboard from viewers Send clipbo
  • Ubuntu卸载python3.6

    注意 xff1a 这里说一下 xff0c 系统自带的python3 6可别乱删 xff0c 这个是我自己下载的python3 6 若你们有想卸载系统自带的python3 6 xff0c 可千万别去卸载 xff01 一般会开机都开不起 xff
  • 深度学习之BP神经网络

    深度学习之BP神经网络 BP xff08 Back Propagation xff09 网络是1986年由Rumelhart和McCelland为首的科学家小组提出 xff0c 是一种按误差逆传播算法训练的多层前馈网络 它的学习规则是使用最