首页IT科技bp神经网络的基本原理(深度学习之BP神经网络)

bp神经网络的基本原理(深度学习之BP神经网络)

时间2025-04-30 19:57:21分类IT科技浏览3891
导读:前言 bp神经网络是模拟人体中神经元结构而设计出来的:...

前言

bp神经网络是模拟人体中神经元结构而设计出来的:

  神经元大致可以分为树突            、突触                  、细胞体和轴突            。树突为神经元的输入通道            ,其功能是将其它神经元的动作电位传递至细胞体                  。其它神经元的动作电位借由位于树突分支上的多个突触传递至树突上      。神经细胞可以视为有两种状态的机器                  ,激活时为“是            ”      ,不激活时为“否                  ”      。神经细胞的状态取决于从其他神经细胞接收到的信号量            ,以及突触的性质(抑制或加强)                  。当信号量超过某个阈值时                  ,细胞体就会被激活      ,产生电脉冲            。电脉冲沿着轴突并通过突触传递到其它神经元      。

一      、什么是bp神经网络

差逆向传播算法训练的多层前馈神经网络      ,是应用最广泛的神经网络模型之一                   。
基本结构如图:
其主要包含三部分(由左到右)
1:输入层:输入数据
2:隐含层:输入与输出之间的数据分析加工厂                  ,通过各种参数(权重            ,偏差值)以及激活函数等其他数据处理方法与两边建立联系            。
3:输出层:输出结果
但是仅仅根据图示进行一次显然无法保证结果的准确      ,所以接下来涉及两个重要概念:
1:正向传播
输入层的神经元负责接受外界发来的各种信息                  ,并将信息传递给中间层 神经元            ,中间隐含层神经元负责将接收到的信息进行处理变换,根据需求处理信息                  , 实际应用中可将中间隐含层设置为一层或者多层隐含层结构                  ,并通过最后一层的隐含层将信息传递到输出层,这个过程就是BP 神经网络的正向传播过程。
2:反向传播
当实际输出与理想输出之间的误差超过期望时            ,就需要进入误差的反向 传播过程                  。它首先从输出层开始                  ,误差按照梯度下降的方法对各层权值进行修正      ,并 依次向隐含层            、输入层传播                  。通过不断的信息正向传播和误差反向传播            ,各层权值会 不断进行调整                  ,这就是神经网络的学习训练。当输出的误差减小到期望程度或者预先设定的学习迭代次数时      ,训练结束      ,BP 神经网络完成学习            。

二                  、bp神经网络的推导过程

1:隐藏神经元设置方法

如果 BP 神经网络中输入层节点数为 m 个                  ,输出层节点是为 n 个            ,则由下式式
可推出隐藏层节点数为 s 个                  。 其中 b 一般为 1-9 的整数      。

2:激活函数(举例)

 推导采用sigmoid函数

3.推导

正向传播:

 反向调整权重:

1:求误差

Etotal:总误差

targert:目标值

output:实际输出值

 2.改权值

声明:本站所有文章      ,如无特殊说明或标注                  ,均为本站原创发布            。任何个人或组织            ,在未征得本站同意时,禁止复制      、盗用      、采集                  、发布本站内容到任何网站            、书籍等各类媒体平台                  。如若本站内容侵犯了原著者的合法权益                  ,可联系我们进行处理      。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
win7系统内存占用率高怎么解决(Windows7系统内存占用分析) python多线程应用(Python中的线程和多线程是什么)