神经网络-专题详述

【结构】BP神经网络的模型结构

作者 : 老饼 发表日期 : 2023-03-26 19:15:08 更新日期 : 2024-06-05 07:59:09
本站原创文章,转载请说明来自《老饼讲解-BP神经网络》www.bbbdata.com


本文介绍BP神经网络的通用结构和常用结构,

通过本文,更具体地了解,BP神经网络的拓扑结构



  01. BP神经网络的通用结构  



本节先介绍BP神经网络的通用结构



    BP的通用结构    


BP的通用结构如下
  BP神经网络模型  
在通用结构中,包含了输入层、隐层和输出层,
隐层和输出层的神经元都有自己的阈值和激活函数
它属于前馈型神经网络,即神经元是层层连接、逐层向前传递,
以上仅是一个BP神经网络通用的结构形式,
在使用时,我们需要设定具体的参数,让其具有具体的结构
  对一个BP神经网络来说,需要确定的参数有以下:
 
👉 隐层个数                         
 👉 每个隐层的隐神经元个数 
 👉 每层神经元的激活函数    



    神经元的工作原理   


BP神经网络的神经元是重要的组成部分
除了输入层之外,其它层的神经元都有自己的阈值和
激活函数
 
 每个神经元的工作原理如下
 
BP神经网元的神经元
以上图为例,它将接收到的输入值x1,x2加权后并加上阈值,就是神经元的值N
 

然后将神经元的值N经过自身激活函数Tf进行转换,
就是神经元的输出值,也就是传输出给下一层神经元的值
 





   02. BP神经网络常用结构   



下面介绍实践中一般使用的BP神经网络结构



     BP神经网络常用结构与配置     


虽然BP的通用结构里允许有多个隐层,并且可以设置不同的激活函数,
 但实际上,最常用的是设一个隐层      
隐层神经元的激活函数设为tansig函数 
输出层的激活函数设为purelin      
    

 
如此一来,结构就如下图所示:
 
  三层BP神经网络 
 
其中 
tansig函数为S型函数:     
purelin 为恒等线性映射函数:             
上图为3个隐神经元,在实际中,隐神经元个数由具体问题具体设定
✍️说明
1、输出层设为purelin,也即相当于输出层没有激活函数.
2、 隐层激活函数也可以设为logsig                             
 logsig的表达式为
 ,它和tansig没有太多质的区别 , 
区别只在于,logsig的取值范围是【0,1】,而tansig是【-1,1】    




     为什么BP神经网络实践中采用三层结构     


为什么在实践中一般采用上述的结构呢?
 
主要是因为这样的结构简单又有效
简单是因为它只有一个隐层,比起多隐层网络,无疑是要简洁许多               
有效是因为隐层激活函数采用了S型函数,这样网络就有了拟合非线性的能力
而输出层采用purelin,又可以让它的输出不受限制                                      
如此一来,这种结构就“麻雀虽小,却五脏俱全”,简单又有效
后来有人证明,这种结构只要隐神经元足够,就能逼近任何函数,
如此一来,基本就都使用这种结构了





   老饼语   


事实上,BP神经网络有两个巨大的贡献,
首先是它的三层结构,在对一些传统小数据的拟合上简单、有效,曾经红极一时
而另一个是它的多层结构,BP神经网络所提出的多层结构开启了深度学习之门   
 在深度学习井喷之前,多层结构甚至可以说只是一种“毫无用处”的形式,
但在深度学习之后,三层结构所作的贡献,反而是渺小至极,
毕竟,三层结构仅是解决了一些具体的问题,而多层结构则是开启了一个时代,这是无法比拟的
但必须注意的是,尺有所短,寸有所长,杀鸡勿用牛刀
在解决小数据上不要随便套用多层神经网络,高射炮打蚊子未必好用





以上就是BP神经网络的模型结构的全部内容了~






 End 




联系老饼