前馈型BP神经网络
1.感知机和激活函数
感知机,是构成神经网络的基本单位,一个感知机可以接收n个输入X=(x1,x2,x3…xn)T(每个输入,可以理解为一种特征),n个输入对应n个权值W=(w1,w2,w3…wn),此外还有一个偏置项b,学过矩阵的人应该可以看出,这其实是一个y=WX+b的函数,实际上就是对所有的输入,根据权值和偏置量进行求和运算,然后作为一个神经元的输出。如下图:
通过上图可以看出,神经元里,其实是一个线性函数,我们现在先不讨论他是如何学习数据的特征,我们可以通过极限的思想,想象一下这么一个场景,要实现通过特征,进行设备分类,每个设备种类,是一个多维空间中的点,我们要做的就是用函数画出每种设备所在的多维空间中的位置,那么现在再回头看我们神经元中的这个函数,他只是一个线性函数,所以无论我们有多少个神经元和多少个网络深度,他终究在极限的边缘处,只能表示线性关系,如果想象不出来看下面的推导:
红框中就是输出层的推到公式,很明显,也是线性关系,所以为了让预测的情况更加准确,我们需要一个激活函数,把线性关系,转化为非线性关系,我们就需要把神经元设计成如下:
常见的激活函数有(科学家研究出来的): sigmoid,对数几率logistic,双曲正切Tanh,以及现在用的最多的ReLu和Leaky-ReLu,softMax。
一般分类问题,都是用softMax函数作为激活函数,因为它可以把每种输出作为概率输出
(具体的激活函数,这里不做解释了)
2.梯度下降法
梯度下降法,是我们用来计算损失函数误差,和更新w,b的常用算法,他的原理其实很简单,如下图:
假如损失函数,是一个一元2次函数,只需要随机获取2个点f(X1),f(X0)的值,进行比较,我们就可以知道大小,极小值点肯定是朝着数值小的地方,假如f(x1)<f(x0),那么就说明x1更接近极小值点,那么我们只需要朝着x1的方向,再取一个x2,慢慢的就可以向极小值靠近,这个x1和x2的距离,我们就叫步长 ,但是选择步长,是个问题,步长过小,迭代次数过多,步长过大,会产生震荡,导致在极小值点来回跳跃,所以我们就需要一个可以自动更新步长的方法,我们都知道在一个曲线的地方,这点的斜率,代表了他的抖度,当越接近极小值的时候,斜率就越小,所以用步长*这点的偏导数,就可以自动调节步长了,如果是二元函数也是一个道理,如下图:
3.BP神经网络结构
输入层:输入的其实就是数据集中的特征,一种特征代表一种输入
隐含层:就是上面说的神经元,其中隐含层的层数和神经元个数,是需要通过试验来确定的
输出层:数据集中的分类有几个,就有几个输出层神经元
在多层神经网络中,每一层的输出,代表的是上一层的输入,只要有足够多的隐含层,且每层有足够多的神经元,那么神经网络就可以拟合出任意复杂函数或空间分布,就比如下面这个:
隐含层中有三个神经元,可以看出拟合出来了三条直线,通过激活函数,就可以把线性关系转化为非线性关系。
4.损失函数:
在训练神经网络的时候,我们知道是用已经的Y和X,去训练寻找W和B,那么我们就需要知道什么情况下,W和B是已经训练的差不多了,其实就是当我们训练出来的y0和真实的y之间的差距越小,说明训练的W和B就越好,那么我们就需要定义一个损失函数,用来评估我们的模型训练质量。
这里就介绍两个常用的损失函数:
交叉熵损失函数:
均方误差函数:
5.独热编码
直接举个通俗易懂的例子,我们在训练数据的时候,有很多抽象的数据,比如设备重要程度,我们不能直接使用1,2,3来区分它的重要程度,也不能直接使用它的编码如A1,A2,A3,因为使用这些编码作为输入,计算机它理解不了,所以我们需要把他转化为欧式距离,例如设备重要程度分为,一般设备,重要设备,那么我们就应该给他们设置独热编码为[0,1],[1,0],这其实代表的是这个这两个分类到原点的欧式距离。
6.误差反向传播算法:
神经网络中,每个神经元相连接的线上都有自己的权值w和偏置量b,我们在进行一次训练后,应该根据损失函数,使用最小梯度下降法,来返回去更w和b, 然后使用更新后的w和b,再用新的数据进行训练,就这样一直重复,从而拟合出最佳的网络。
上图为一次误差反向传播的过程,隐含层和输出层使用的激活函数为softMax函数,损失函数使用的是均方误差函数,可以看到Loss函数中,它是一个带平方的函数,所以我们就可以用最小梯度下降法,来求它的下一个落脚位置,慢慢的就可以靠近loss的极小值点 ,前面我们说过,怎么求解下一个落脚点,如下图
这里只是把x和y,换成了w和b,因为x和y是我们数据集中的已知量,而w和b是我们要求的未知量,关于求w0和b0的偏导数,使用的是链式求导法则:
以上就是更新神经网络中W和B的全过程。
7.BP神经网络训练过程:
初始化网络权值和神经元的阑值,一般通过随机的方式进行初始化
前向传播:计算隐层神经元和输出层神经元的输出
后向传播:根据目标函数公式修正W和B
参考:慕课网-神经网络与深度学习(牟琦),深度学习及其应用(赵卫亮)
相关文章:
前馈型BP神经网络
1.感知机和激活函数 感知机,是构成神经网络的基本单位,一个感知机可以接收n个输入X(x1,x2,x3…xn)T(每个输入,可以理解为一种特征),n个输入对应n个权值W(w1,w2,w3…wn),此外还有一个偏置项b&am…...
数据库实验一:学生信息管理系统数据库结构搭建和表的创建
实验项目名称:学生信息管理系统数据库结构搭建和表的创建 实验目的与要求实验原理与内容1. 数据库的组织结构2. 数据库的分离和附加3. 数据库表的创建,修改和删除 实验过程与结果1. 根据学生信息管理系统创建相关的数据库2. 数据库表初步设计及实现3. 实…...
解决 vscode使用Prettier格式化js文件报错:Cannot find module ‘./parser-babylon‘
报错如下: ["ERROR" - 11:48:58] Error formatting document. ["ERROR" - 11:48:58] Cannot find module ./parser-babylon Require stack: - d:\VueCode\VueProject\myqqmusic\node_modules\prettier\index.js - c:\Users\Administrator.SKY-2…...
汉服商城小程序的作用是什么
汉服在日常生活中越来越常见,大街小巷也有不少年轻人装扮甚是漂亮帅气,有些地区甚至还有相关的比赛等,作为近几年曝光的服饰,汉服市场规模持续增加中,各地线上线下商家也多了起来。 然而在实际经营中,汉服…...
9月大型语言模型研究论文总结
大型语言模型(llm)在今年发展迅速,随着新一代模型不断地被开发,研究人员和工程师了解最新进展变得非常重要。本文总结9-10月期间发布了一些重要的LLM论文。 这些论文涵盖了一系列语言模型的主题,从模型优化和缩放到推理、基准测试和增强性能…...
微信小程序--小程序框架
目录 前言: 一.框架基本介绍 1.整体结构: 2.页面结构: 3.生命周期: 4.事件系统: 5.数据绑定: 6.组件系统: 7.API: 8.路由: 9.模块化: 10.全局配置&…...
Java 全栈体系(三)
第一章 Java 基础语法 八、标识符 业内大多数程序员都在遵守阿里巴巴的命名规则。 1. 硬性要求 必须要这么做,否则代码会报错。 必须由数字、字母、下划线_、美元符号$组成。数字不能开头不能是关键字区分大小写的。 2. 软性建议 如果不这么做,代…...
爬虫学习日记第七篇(爬取github搜索仓库接口,其实不算爬虫)
github提供的搜索仓库的API https://api.github.com/ # 连接数据库 db mysql.connector.connect(host"***",user"***",password"***",database"***" ) # 创建游标 cursor db.cursor() # 从数据库中读取CVE ID cursor.execute("…...
子组件监听父组件消息,随之变化与不变化
父组件通过props传递给子组件消息,子组件有两种情况接收处理: 1、子组件监听父组件props的变化,同时随之变化【可以直接取props中的值展示,也可以监听值得变化处理】 2、子组件初始化时更新,随后不再随父组件变化 示…...
计算机操作系统面试题自用
什么是操作系统: 操作系统是管理硬件和软件的一种应用程序。操作系统是运行在计算机上最重要的一种软件 操作系统的主要功能 解释一下操作系统的主要目的是什么 操作系统是一种软件,它的主要目的有三种 1 管理计算机资源,这些资源包括 C…...
redis作为消息队列的缺点
Redis作为消息队列的不足。 1、基于内存 Redis是一种基于内存的数据库产品,这意味着数据存储在内存中,当内存不足时,Redis会使用基于磁盘的虚拟内存来存储数据。虽然这种虚拟内存机制可以增加Redis的存储容量,但也会降低Redis的…...
Redis五大数据类型的底层设计
SDS 无论是 Redis 的 Key 还是 Value,其基础数据类型都是字符串。虽然 Redis是使用标准 C 语言开发的,但并没有直接使用 C 语言中传统的字符串表示,而是自定义了一 种字符串。这种字符串本身的结构比较简单,但功能却非常强大&…...
logback的简单配置详解
<?xml version"1.0" encoding"UTF-8"?> <!--logback配置的根元素。scantrue表示logback将定期扫描配置文件以检测更改。scanPeriod"30 Period" 扫描间隔为30s--> <configuration scan"true" scanPeriod"30 seco…...
TatukGIS Developer Kernel使用教程:如何为FMX创建第一个应用程序
概述:TatukGIS Developer Kernel(DK)是一个用于开发自定义地理信息系统(GIS)应用程序以及解决方案的综合性软件开发工具包(SDK)。本篇文章主要介绍用DK11为FMX创建一个应用程序,现在…...
Ant Design Vue设置表格滚动 宽度自适应 不换行
Ant Design Vue设置表格滚动 宽度自适应 不换行 添加以下属性即可解决这个问题: <a-table :columns"columns" :data-source"list":pagination"false"bordered:scroll"{ x: max-content }" >...
在Linux上开启文件服务,需要安装并配置Samba
在Linux上开启文件服务,需要安装并配置Samba。以下是具体步骤: 安装Samba软件包:在终端中输入以下命令进行安装: 复制代码 sudo apt-get update && sudo apt-get install samba 配置Samba:编辑Samba配置文件…...
TypeScript 类型兼容性
TypeScript 类型兼容性 在前端开发中,使用 TypeScript 可以提供更强大的类型检查和类型安全。然而,了解 TypeScript 中的类型兼容性是至关重要的,因为它涉及如何处理不同类型之间的关系,以及在这些类型之间进行无缝的交互。本文将…...
【多线程】线程的状态
我们可以通过下面的这段代码来查看线程一共有哪几种状态 //线程的状态是一个枚举类型 Thread.State for(Thread.State state : Thread.State.values()){System.out.println(state); }NEW(新建状态): 当线程对象已经被创建,但是 s…...
pytorch 对图片进行归一化处理
如题,神经网络通常使用浮点数张量作为输入,我们要做的第一件事情就是将图片转化为浮点数,并且做归一化操作。 import torch import imageio import osdata_dirF:\\work\\deep_learning\\pytorch\\dlwpt-code-master\\data\\p1ch4\\image-cat…...
零售数据分析师熬夜整理:人、货、场、供、财这样做
在零售数据分析中,人、货、场、供、财数据分析非常重要,它们分别是指人员、商品、场所、供应和财务,对这些要素进行数据分析,可以更好地了解市场需求、优化商品供应链、调整销售策略和提高盈利能力。零售数据量大、分析指标多且复…...
基于SSM的学生选课管理系统
基于SSM的高校校园学生选课系统的设计与实现~ 开发语言:Java数据库:MySQL技术:SpringSpringMVCMyBatisVue工具:IDEA/Ecilpse、Navicat、Maven 系统展示 登录界面 专业管理 教师管理 课程管理 成绩管理 摘要 基于SSM的学生选课管…...
SQL注入漏洞
0x01 漏洞介绍 泛微e-office系统是标准、易用、快速部署上线的专业协同OA软件,国内协同OA办公领域领导品牌,致力于为企业用户提供专业OA办公系统、移动OA应用等协同OA整体解决方案。泛微e-office深谙改革之道以迎变革之机,沉心产品研发数十载…...
C++ wpf自制软件打包安装更新源码实例
程序示例精选 C wpf自制软件打包安装更新源码实例 如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助! 前言 这篇博客针对《C wpf自制软件打包安装更新源码实例》编写代码,代码整洁,规则&…...
8月19日PMP成绩,预计10月16日公布!附查询入口、流程
PMP的考试成绩一般在考后6-8周即可查询,8月PMP的成绩预计会在北京时间10月16日晚上公布,具体时间以官方公告为准。 如何查询8月考试成绩? 渠道一:收到PMI邮件提醒 当你注册PMI所使用的邮箱收到一封PMI发来的,标题为…...
简易LDO设计(包含原理图、PCB和实验)
一、前置知识 ①该电路是通过三极管(BJT)来实现的,所以需要知晓三极管的工作原理和特性。 ②三极管有三种状态:放大、饱和、截止。本文是利用三极管的放大状态来模拟LDO芯片的功能。 二、原理图 ①稳压二极管要想稳定到某个电压范…...
SpringBoot面试题5:SpringBoot Starter的工作原理是什么?
该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:SpringBoot Starter的工作原理是什么? Spring Boot Starter 是一种便捷的方式来为 Spring Boot 应用程序引入一组特定功能的依赖项。它简化了项目…...
Leetcode 2902. Count of Sub-Multisets With Bounded Sum
Leetcode 2902. Count of Sub-Multisets With Bounded Sum 1. 解题思路2. 代码实现3. 算法优化 题目链接:2902. Count of Sub-Multisets With Bounded Sum 1. 解题思路 这一题有点惭愧,因为没有搞定,遇上了超时问题…… 我的思路其实还是…...
ARP协议(地址解析协议) 的作用和操作过程
目录 1.问题: (在同一个LAN局域网内)如何在已知目的接口的IP地址前提下确定其MAC地址?2.问题:现在假设主机A要向目的主机B发送一个数据报,怎么发送呢?2.1在一个局域网内时2.1.1情况一:2.1.2情况…...
轻游戏风格虚拟资源付费下载模板Discuz论坛模板
轻游戏风格虚拟资源付费下载模板Discuz论坛模板,游戏资讯付费VIP源码模板。 模板说明: 1、模板名称:"qing游戏风格",版本支持:discuzx3.0版本,discuzx3.1版本,discuzx3.2版本&#…...
MongoDB索引操作
1、创建索引 语句: db.collection.createIndex(keys, options, commitQuorum) 选项参数名类型描述keys 包含排序字段和排序方式的对象, 值: 1为升序索引 -1为降序索引 options参数控制对象backgroundboolean 可选࿰…...
如何优化移动端网站/网站关键词优化费用
终止正在运行的matlab文件,需要命令窗口按快捷键,有三种快捷键可以选择: 一: ctrl c 二: ctrlbreak 三: ctrlaltbreak如果是在服务器上跑的代码的话,按完快捷键之后有时候需…...
免费书画网站怎么做的/今日头条最新新闻消息
来自:美林大数据摘要: 数据挖掘分类技术从分类问题的提出至今,已经衍生出了很多具体的分类技术。下面主要简单介绍四种最常用的分类技术,不过因为原理和具体的算法实现及优化不是本书的重点,所以我们尽量用应用人员能够理解的语言…...
莱芜话题 莱芜在线/长沙seo关键词排名
效果图 带描边的粒子效果 原图 承接上文 特效设...
学建站wordpress/口碑营销的经典案例
前言在 win10 的设置,把时间主要归类为两种格式:短时间和长时间。•短时间,即:时:分,如:10:20.•长时间,即:时:分:秒,如&a…...
hexo建设网站/b站好看的纪录片免费
转载,原文https://blog.csdn.net/mieleizhi0522/article/details/82142856 首先,如果你还没有对yield有个初步分认识,那么你先把yield看做“return”,这个是直观的,它首先是个return,普通的return是什么意…...
深圳大型网站设计/刷关键词排名seo软件
出国留学网考研网为大家提供电子科技大学2018考研调剂,更多考研资讯请关注我们网站的更新!电子科技大学2018考研调剂要求:(1)考生分数达到第一志愿专业对应国家一区复试分数线,并且达到申请调剂学院调剂专业的复试分数线(国家复试分数线公布前…...