神经网络分类算法原理详解

目录

神经网络分类算法原理详解

神经网络工作流程

反向传播算法

1) 反向传播原理

2) 应用示例

总结


正向传播

(forward-propagation):指对神经网络沿着输入层到输出层的顺序,依次计算并存储模型的中间变量。

反向传播

(back-propagation):沿着从输出层到输入层的顺序,依据链式法则,依次计算并存储目标函数有关神经网络各层的中间变量以及参数的梯度。反向传播是一种计算神经网络参数梯度的方法

神经网络分类算法原理详解

在神经网络算法还没流行前,机器学习领域最受关注的算法是“支持向量机算法(即 SVM 算法)”,如今神经网络方兴未艾,您也许会好奇,神经网络各层的原理和结构都高度相似,为什么要堆叠这么多的神经网络层呢?就好比为什么单层感知器模型不能解决异或问题,但只要加上隐藏层就能解决呢?到底是谁赋予了神经网络如此奇妙的魔力。

一般来说,神经网络的层数越多,网络模型的学习能力就越强,就越能拟合复杂的数据分布。但这只是一种理想状态,因为随着网络的加深,也会带来其他问题,比如计算的难度也会增加,同时模型理解起来也比较晦涩。因此选择恰当的网络层数去解决适合的场景,这是神经网络算法中的难点。

神经网络工作流程

下面通过一个简单的示例来理解神经网络究竟是如何工作的:
 

神经网络工作流程


图1:人工神经网络模型


如图 1 所示, A、B、C、D 是四位盲人,他们要玩“盲人摸象”的游戏。在数据集中有以下四个动物:大象、野猪、犀牛、麋鹿。四个人中 A、B、C 负责去摸动物(即动物特征),D 负责汇总分析 A、B、C 传递给他的信息,同时还会有人告诉 D,这一轮他们摸到是什么动物。此外,规定只有当 A、B、C 三个人摸到一下三个特征的时候向 D 汇报:

特征一:像一根柱子(腿部)
特征二:像一把蒲扇(耳朵)
特征三:像一条鞭子(尾巴)

注意,游戏在理想状态下进行的,不考虑其他外界因素。下面按照有监督学习的流程,先训练再预测。摸动物的过程,其实就是获取动物部位特征的过程,因为有 4 只动物,因此此处需要轮询 4 次,下面是四轮完成后 D 汇总的信息,如下所示:

第一次,大象:
A:像一根柱子(腿部)
B:像一把蒲扇(耳朵)
C:像一条鞭子(尾巴)
第二次,野猪:
B:像一把蒲扇
C:像一条鞭子
第三次,犀牛:
A:像一把蒲扇
C:像一条鞭子
第四次,麋鹿:
C:像一条鞭子

通过对上述汇总信息的分析,D 认为,C 汇报的最没有价值(即权重小),因为无论是不是大象,他所汇报的内容都是一样的。D 认为,相比之下,A 和 B 的报告更有价值(权重大),但各自汇报也会有错误的时候。经过 D 研究发现,只要将 A 和 B信息进行汇总,当两人同时说摸到【柱子和蒲扇】时,那么被摸的动物就是大象,这样即便是盲人也能通过精诚团结摸出大象来。

对于上述示例来说,A/B/C/D 其实构成了一个简单的神经网络模型,它们就想当于四个神经元,A/B/C 负责去“摸”,也就是回去不同维度的输入数据,构成了神经网络的输入层。当它们三个人获取数据后都会告诉 D,通过 D 汇总分析,给出最终预测结果,即判断是不是大象,这相当于神经网络的输出层。神经网络能够把分散的信息进行汇总,从而提取出最有价值、权威的信息。若只是将网络中的一个独立节点拎出来都是以偏概全,比如 C 认为尾巴像鞭子的都是大象,这显然不合理的。

神经网络通过赋予输入信息不同的权重值来区别不同信息的重要程度。在模型训练过程中通过调节线性函数的相应权值,增加有价值信息的输入权值,降低其他价值信息较低的输入权值,这是【调优权值】的核心思想,通过上述方法能够提高网络模型预测的预测准确率。

神经元节点的个数和层数越多,神经网络的表达能力就越强,或者说拟合数据的能力就越强,这也是神经网络算法与其他机器学习学习算法相比,为什么适合处理图像识别、语音识别等复杂任务的根本原因。

反向传播算法

在神经网络模型中有两个重要部件,分别是:激活函数和反向传播 BP 算法

我们知道,人工神经网络是由一个个的神经元节点构成的,这些节点的作用就是负责接受和传导信息,如同大脑神经元一样,接受外接刺激,传递兴奋信号。

在一个人工神经网络模型中,从输入层开始,传递到输出层,最后返回结果,这种信号传播方式被称为“正向传播”(或称前向运算、前向传播)。在神经网络模型中,若输入一层层的传递下去的,直到输出层产生输出,正向传播就结束了。

反向传播的与前向传播类似,但由于传播方向相反,因此被称为反向传播算法(简称 BP 算法),该算法最早出现在 20 世纪 60 年代,但当时并没有引起重视,直到 1986 年经 Hinton 等人进行了重新描述,才再次进入大众的视野。该算法成功解决了少数层神经网络【权值参数】计算的问题。
 

前向运算和反向传播


图2:前向运算和反向传播示意图

1) 反向传播原理

反向传播算法(BP)是一种有监督学习算法,即通过有标记的训练数据来学习,它是训练人工神经网络模型的常用方法之一。简单的来说,BP 算法就是从错误中学习,直至将错误程度降到最低时结束,从而提高模型的可靠性。

BP 算法的学习过程由正向传播过程和反向传播过程两部分组成。

在正向传播过程中,输入信息通过输入层经隐含层,逐层处理并传向输出层,如果输出值与标记值存在误差,

则将误差由输出层经隐藏层向输入层传播(即反向传播),并在这个过程中利用梯度下降算法对神经元的各个权值参数进行调优,当误差达到最小时,网络模型训练结束,也即反向传播结束。

流程图如下所示:
 

反向传播算法


图3:神经网络模型训练


对上述过程进行总结:输入层接受一个输入数据 x,同时初始化一个权重参数 ω,通过隐藏层计算之后,由输出层输出结果,前向运算完成。之后,将输出层结果与标记值进行比较,获取偏差值,将此偏差值由输出层向输入层传播(反向传播阶段),这个阶段利用梯度下降算法对权值参数进行反复调优,当偏差值最小时,获得一组最优的权值参数(ω)。

2) 应用示例

现有如下神经网络模型,由三层组成,分别是输入层,隐藏层,输出层,并以 Sigmoid 函数为神经网络的激活函数。下面看看反向传播算法是如何运算的,又是如何实现参数调优的。
 

反向传播案例


图4:神经网络模型


首先对网络模型的数据做一下简单说明:

输入层:i1=0.05,i2 = 0.1

初始化权值参数:w1=0.15,w2=0.2,w3=0.25,w4=0.3,w5=0.4,w6=0.45,w7=0.5,w8=0.55

输出层标记值(即期望值):o1=0.01,o2=0.99

偏置项权重值:b1=0.35,b2=0.6

下面使用反向传播算法使真实输出与标记值尽可能地接近,即真实值与标记值的偏差值最小。按照上述流程我们一步步进行计算。

前向运算阶段:输入层 --> 隐藏层 -->输出层,计算神经元 H1 的权值加和:
 

权值加和


将初始化数据带入上述公式,可得以下结果:
 


隐藏层神经元的 H1 的输出结果,注意此结果需要经过激活函数映射:
 

激活函数映射结果


同理依照上述方法可以计算出 H2 神经元输出,其结果如下:
 


下面计算输出层 O1 真实输出结果,如下所示:
 


将数据带入上述公式,经过激活函数映射,求得输出层 O1 的结果:
 


同理,按照上述方法可以计算出 O2 真实的输出结果:
 

输出层输出结果


通过上述运算可以得出:输出的实际结果与标记值相差甚远,计算结果是 [0.75136507,0.772928465],而实际上标记值是 [0.01,0.99]。 接下来使用反向传播算法,迭代更新权值,重新计算输出。


反向传播阶段,输出层 --> 隐藏层 --> 输入层,首先使用 MSE 均方误差公式计算总误差:
 

注意:MSE 是一种衡量“平均误差”较为方便的方法,MSE 可以评价数据的变化程度,MSE 的值越小,说明预测模型的泛化能力越好。

经上述计算求出了总误差(Etotal),这个值是由神经网络中所有节点“共同”组成的。因此就要计算每个神经元节点到底“贡献”了多少偏差值,这是反向传播算法要解决的核心问题,当然解决方法也很简单,即求偏导数,比如求 A 节点贡献了多少损失值,我们就对该节点求偏导数即可。

我们以 w5 为例对其进行调整,要知道 w5 对于整体误差到底产生多少影响,这里采用链式法则求偏导数,如下所示:
 

链式法则


要想求得 w5 的偏导数,需要对另外三部分别求偏导数,如下所示:
 

求偏导数


将上述三部分的结果相乘就可以得到 w5 的偏导数,其结果值为 0.082167041。最后使用梯度下降算法更新 w5 参数值,如下所示:
 

更新权值

注意: η 是梯度下降算法中的学习率,此处取值 0.5,在前面讲解梯度下降算法时已经做了相关介绍,参考《梯度下降求极值》。

这样就完成了 w5 权值更新,同理,依照上述方法可以完成 w6、w7、w8  更新。

上述过程只是输出层向隐藏层传播,当计算出更新的权值后,开始由隐藏层向输入层传播,并依次更新 w1、w2、w3、w4,这样就完成了第一轮的权值更新。可以看出,通过第一轮权值更新后,总误差由 0.298371109 下降至 0.291027924,在迭代 10000 次后,总误差为 0.000035085,输出值为 [0.015912196, 0.984065734],已经非常逼近期望值 [0.01, 0.99]。

总结

神经网络分类算法是一种有监督学习算法,使用神经网络分类算法,大致需要以下五步:

  • 初始化神经网络中所有神经元节点的权值;
  • 输入层接收输入,通过正向传播产生输出;
  • 根据输出的预测值,结合实际值计算偏差;
  • 输出层接收偏差,通过反向传播机制(逆向反推)让所有神经元更新权值;
  • 从第 2 步到第 4 步是一次完整的训练模型的过程,重复该过程,直到偏差值最小。


神经网络算法通过反向传播机制让所有神经元实现了权值更新,当我们不断迭代上述训练过程,直到偏差值最小,最终就会得到一个最优的网络模型,实现了对数据的最佳拟合。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

UE4拾取物品高亮显示

UE4系列文章目录 文章目录 UE4系列文章目录前言一、如何实现 前言 先看下效果,当角色靠近背包然后看向背包,背包就会高亮显示。 一、如何实现 1.为选中物品创建蓝图接口 在“内容” 窗口中,鼠标右键选择“蓝图”->蓝图接口&#xff0c…

ChatGPT收录

VSCode插件-ChatGPT 多磨助手 多磨助手 (domore.run) Steamship Steamship 免费合集 免费chatGPT - Ant Design Pro 免费AI聊天室 (xyys.one)

计算机竞赛 python 机器视觉 车牌识别 - opencv 深度学习 机器学习

1 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于python 机器视觉 的车牌识别系统 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分工作量:3分创新点:3分 🧿 更多资…

企业做直播时如何选择适合自己的直播平台?

企业做直播时如何选择适合自己的直播平台? 可以通过对比不同直播平台的技术能力、服务质量、安全性等方面的内容,选择最适合自己的直播平台。 企业做直播如何选择直播平台 我的文章推荐: [视频图文] 线上研讨会是什么,企业对内对…

Java实现DTLS之技术背景原理(一)

文章目录 前言一、DTLS是什么?二、RFC6347标准定义DTLS1.中文翻译 总结感谢 前言 需求:升级服务侧SDK,实现与灯控器之间DTLS加密通信,代替SM4国密。目前通信是采用UDP协议并实现SM4国密加密,为了提升产品竞争力需要实…

Centos7.9_解决每次重启机器配置的java环境变量都需要重新source /etc/profile才生效的问题---Linux工作笔记060

这种情况需要把环境变量,java的环境变量在/root/.bashrc文件中也放一份,注意这个文件是隐藏的,默认是,需要进行ls -a才能显示. #jdk export JAVA_HOME/lib/jvm export JRE_HOME${JAVA_HOME}/jre export CLASSPATH.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH${JAVA_HOME}/b…

TiDB Bot:用 Generative AI 构建企业专属的用户助手机器人

本文介绍了 PingCAP 是如何用 Generative AI 构建一个使用企业专属知识库的用户助手机器人。除了使用业界常用的基于知识库的回答方法外,还尝试使用模型在 few shot 方法下判断毒性。 最终,该机器人在用户使用后,点踩的比例低于 5%&#xff0…

三星发布新智能手表:旋转边框回归,Galaxy Watch6 系列震撼来袭

今晚,三星发布了最新的Galaxy Watch6系列智能手表,其中包括Galaxy Watch6和Watch6 Classic两款。Watch6 Classic再次引入了三星手表所独有的旋转边框特色。这两款手表提供多种尺寸和支持LTE的版本,同时还搭载了内置的eSIM模块,为用…

深入了解Bear Necessities Hackathon黑客松的优胜者们

生态系统中的资深建设者皆知道Moonbeam是大型黑客松狂热爱好者,不论是线上虚拟的还是现场的。然而,很少有黑客松能达到Moonbeam和AWS举办的Bear Necessities黑客松这样的规模和吸引力。本次黑客松共有755人参与,共提交了62份参赛作品。其中22…

【实操】2023年npm组件库的创建发布流程

2022年的实践为基础,2023年我再建一个组件库【ZUI】。步骤回顾: 2022年的npm组件包的发布删除教程_npm i ant-design/pro-components 怎么删除_啥咕啦呛的博客-CSDN博客 1.在gitee上创建一个项目,相信你是会的 2.创建初始化项目,看吧&#…

文本挖掘 day5:文本挖掘与贝叶斯网络方法识别化学品安全风险因素

文本挖掘与贝叶斯网络方法识别化学品安全风险因素 1. Introduction现实意义理论意义提出方法,目标 2. 材料与方法2.1 数据集2.2 数据预处理2.3 关键字提取2.3.1 TF-IDF2.3.2 改进的BM25——BM25WBM25BM25W 2.3.3 关键词的产生(相关系数) 2.4 关联规则分析2.5 贝叶斯…

优思学院|在六西格玛项目中如何知道过程是否受控?

当我们说过程处于统计受控状态时,我们是指过程不存在特有原因。 以下面的图表来说明,过程处于“不受控”状态和“受控”状态时的情况。 当过程在统计意义上是受控的,它并不意味着过程产出的产品就不会超过规定的规范,符合质量要…

springboot整合kafka多数据源

整合kafka多数据源 项目背景依赖配置生产者消费者消息体 项目背景 在很多与第三方公司对接的时候,或者处在不同的网络环境下,比如在互联网和政务外网的分布部署服务的时候,我们需要对接多台kafka来达到我们的业务需求,那么当kafk…

Golang通过alibabaCanal订阅MySQLbinlog

最近在做redis和MySQL的缓存一致性,一个方式是订阅MySQL的BinLog文件,我们使用阿里巴巴的Canal的中间件来做。 Canal是服务端和客户端两部分构成,我们需要先启动Canal的服务端,然后在Go程序里面连接Canal服务端,即可监…

P8642 [蓝桥杯 2016 国 AC] 路径之谜

[蓝桥杯 2016 国 AC] 路径之谜 题目描述 小明冒充 X X X 星球的骑士,进入了一个奇怪的城堡。 城堡里边什么都没有,只有方形石头铺成的地面。 假设城堡地面是 n n n\times n nn 个方格。如图所示。 按习俗,骑士要从西北角走到东南角。 …

​比特丛林用量子纠缠对抗高智商犯罪

世界上没有绝对完美的犯罪,但是预谋和统筹良久的高智商犯罪都几乎接近于完美和无比烧脑。 警局的洽谈室,只有我和嫌疑人两个人。 各自坐在桌子两边,门已关。在这个封闭的空间里,我一手拿着筷子吃着盒饭,一边撇了一下…

面向云思考安全

Gartner最近的一项研究表明,到 2025 年,85% 的企业会采用云战略,虽然这一数字是面向全球的,但可以看到在中国的环境中,基于云所带来的优势,越来越多的企业也同样开始积极向云转型。 但同时,有报…

CSS自学框架之表单

首先我们看一下表单样式,下面共有5张截图 一、CSS代码 /*表单*/fieldset{border: none;margin-bottom: 2em;}fieldset > *{ margin-bottom: 1em }fieldset:last-child{ margin-bottom: 0 }fieldset legend{ margin: 0 0 1em }/* legend标签是CSS中用于定义…

【数据结构】树和二叉树

一、树的概念及结构 1、树的概念 树 是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。把它叫做树是因 为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。 有一个特殊的结点&a…

机器学习笔记值优化算法(十四)梯度下降法在凸函数上的收敛性

机器学习笔记之优化算法——梯度下降法在凸函数上的收敛性 引言回顾:收敛速度:次线性收敛二次上界引理 梯度下降法在凸函数上的收敛性收敛性定理介绍证明过程 引言 本节将介绍梯度下降法在凸函数上的收敛性。 回顾: 收敛速度:次…