深度学习入门:一文详解BP神经网络

今天来讲BP神经网络,神经网络在机器学习中应用比较广泛,比如函数逼近,模式识别,分类,数据压缩,数据

挖掘等领域。接下来介绍BP神经网络的原理及实现。

1. BP神经网络的认识

   BP(Back Propagation)神经网络分为两个过程​​​​​​​

      (1)工作信号正向传递子过程

      (2)误差信号反向传递子过程

 

   在BP神经网络中,单个样本有个输入,有个输出,在输入层和输出层之间通常还有若干个隐含层。实际

   上,1989Robert Hecht-Nielsen证明了对于任何闭区间内的一个连续函数都可以用一个隐含层的BP网

   络来逼近,这就是万能逼近定理。所以一个三层的BP网络就可以完成任意的维到维的映射。即这三层分

   别是输入层(I),隐含层(H),输出层(O)。如下图示

        

2. 隐含层的选取

   在BP神经网络中,输入层和输出层的节点个数都是确定的,而隐含层节点个数不确定,那么应该设置为多少

   才合适呢?实际上,隐含层节点个数的多少对神经网络的性能是有影响的,有一个经验公式可以确定隐含层

   节点数目,如下

                

   其中为隐含层节点数目,为输入层节点数目,为输出层节点数目,之间的调节常数。

3. 正向传递子过程

   现在设节点和节点之间的权值为,节点的阀值为,每个节点的输出值为,而每个节点的输出

   值是根据上层所有节点的输出值、当前节点与上一层所有节点的权值和当前节点的阀值还有激活函数来实现

   的。具体计算方法如下

                    

   其中为激活函数,一般选取S型函数或者线性函数。

   正向传递的过程比较简单,按照上述公式计算即可。在BP神经网络中,输入层节点没有阀值。

4. 反向传递子过程

   在BP神经网络中,误差信号反向传递子过程比较复杂,它是基于Widrow-Hoff学习规则的。假设输出层

   的所有结果为,误差函数如下

                    

   而BP神经网络的主要目的是反复修正权值和阀值,使得误差函数值达到最小。Widrow-Hoff学习规则

   是通过沿着相对误差平方和的最速下降方向,连续调整网络的权值和阀值,根据梯度下降法,权值矢量

   的修正正比于当前位置上E(w,b)的梯度,对于第个输出节点有

                    

   假设选择激活函数为

                    

   对激活函数求导,得到

                   

   那么接下来针对

                   

   其中有

                            

   同样对于

                 

   这就是著名的学习规则,通过改变神经元之间的连接权值来减少系统实际输出和期望输出的误差,这个规

   则又叫做Widrow-Hoff学习规则或者纠错学习规则

  

   上面是对隐含层和输出层之间的权值和输出层的阀值计算调整量,而针对输入层和隐含层和隐含层的阀值调

   整量的计算更为复杂。假设是输入层第k个节点和隐含层第i个节点之间的权值,那么有

                

   其中有

                

   这样对学习规则理解更为深刻了吧。

   有了上述公式,根据梯度下降法,那么对于隐含层和输出层之间的权值和阀值调整如下

                

   而对于输入层和隐含层之间的权值和阀值调整同样有

                

   至此BP神经网络的原理基本讲完。

5. BP神经网络的注意点

 

   BP神经网络一般用于分类或者逼近问题。如果用于分类,则激活函数一般选用Sigmoid函数或者硬极限函

   数,如果用于函数逼近,则输出层节点用线性函数,即

 

   BP神经网络在训练数据时可以采用增量学习或者批量学习。

 

  • 30
    点赞
  • 187
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
对于想要深入学习Python并涉及深度学习的人来说,以下是一个可能的学习路线: 1. 首先,你需要先学好Python的基础知识,掌握Python的语法、数据类型、函数等基本概念和操作。可以参考和中提到的学习方法和资源。 2. 接下来,你可以开始学习Python的科学计算库,如NumPy、Pandas和Matplotlib,这些库在进行深度学习时非常有用。你可以利用它们进行数据处理、数据分析和可视化。同时,你还可以了解一些基本的机器学习深度学习的概念和算法。 3. 了解深度学习的基本原理和常见的深度学习模型,如神经网络、卷积神经网络和循环神经网络。可以通过阅读相关的书籍、在线教程和学术论文来深入学习这些内容。 4. 学习使用Python的深度学习库,如TensorFlow、PyTorch或Keras。这些库提供了丰富的工具和接口,可以帮助你构建和训练深度学习模型。可以参考官方文档和在线教程来学习如何使用这些库。 5. 参与实际的深度学习项目,通过实践来巩固所学的知识。可以尝试解决一些经典的深度学习问题或者参加一些开源项目。 6. 不断学习和保持更新,深度学习是一个快速发展的领域,新的模型和算法不断涌现。可以通过阅读最新的研究论文和参加相关的研讨会和会议来跟踪最新的进展。 总之,深度学习的学习路线需要结合自己的兴趣和实际需求来设计。通过系统学习Python的基础知识,掌握科学计算库和深度学习库的使用,参与实际项目,并不断学习和保持更新,你将能够建立起扎实的深度学习基础。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [一文讲清Python的7大学习路线(建议收藏)](https://blog.csdn.net/python_9988/article/details/120207151)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

图灵的猫.

小二,给客官上酒!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值