老饼讲解-神经网络
自实现-BP神经网络
基本原理
BP神经网络原理
作者 : 老饼 日期 : 2022-06-09 04:36:02 更新 : 2022-06-29 01:24:16
本站原创文章,转载请说明来自《老饼讲解-BP神经网络》bp.bbbdata.com



本文面向对BP具有一些基本认识的读者,如果完全没有基础,请在入门篇里进行基础的学习。

本文介绍、回顾和加深一些BP的基本知识。




  一、BP神经网络的拓扑图  



通用的BP神经网络拓扑图为:





常用三层网络拓扑图则有如下形式:



其中,传递函数 tansig  ,它是一个S型函数。






  二、BP的数学结构(表达式)  


仅以一个简单例子,讲述BP的数学结构



现有一个BP神经网络,它的结构如下:


1、一个输入层,一个隐层,一个输出层, 输入层、隐层、输出层的节点个数分别为 [2 ,3,1]。
2、传递函数设置:隐层( tansig函数)。输出层(purelin函数)。                                           



模型拓扑图如下:





可以根据模型写出数学表达式如下:




PASS: 表达式中参数很多,但实际只有两类参数:权重w和阈值b。              
代表这个权值是第2层的第2个节点到第3层的第1个节点的权值。         
代表这个阈值是第2层的第1个节点的阈值。                                          
备注:权重矩阵w的下标,一般由后层到前层,这样在矩阵表述时更为简洁  




  三、BP的本质  


   隐神经元对应的数学对象  



观察数学表达式,我们会发现,隐神经元对应的数学对象就是tansig.

而最终的y,则是由多个tansig函数线性叠加而成。



  tansig函数  




我们再看tansig是一个什么样的函数:


   

可见,tansig是一个y在(-1,1)之间的S曲线,
其中,
(1)  曲线部分在大概在[-3,3]之间,在x=[-3,3]之外,值基本趋向了-1和1,
(2)  斜线部分在 [-1.7 ,1.7] 之间。                                                            



  BP的本质  



从以上讨论,可知BP神经网络的数学本质,就是用多个S曲线(tansig)叠加去拟合目标数据y。


  参数与tansig的关系  



以三层BP神经网络为例,各个参数与tansig有如下关系  :
 
                            

 tansig 内的 w, 控制了tansig曲线的肥瘦    
tansig 内的 b, 用于平移tansig在x轴的位置
tansig 外的 w, 调节了tansig曲线的高矮   
tansig 外的 b,用于平移tansig在y轴的位置

 



tansig的叠加



叠加高矮肥瘦位置不一的tansig,就可以捏造出不一样的曲线:
  
 
               

灰色的为三个tansig:                             
(1)    1.185*tansig(-0.84574*x1+2.3697)        
(2)  -1.5761*tansig(-0.67661*x1+0.0063973)     
(3)   1.1424*tansig(-0.86965*x1-2.4206)        


蓝色的为三个tansig之和。      

                     



BP的本质总结


所以,我们使用BP神经网络的本质就是,已知数据点,现求n个tansig函数,使其叠加后能拟合任意数据点。
而训练的过程,其实就是调整各个tansig曲线(曲面/超曲面)的高矮肥瘦和位置,使所有tansig叠加后越来越迫近y。




  四、BP的训练  



  训练概述  


网络结构设定好后,数学表达式也就确定了,
BP的训练就是指求解数学表达式中的参数,令网络在训练数据中的拟合误差最小。
网络一般用算法进行求解,求解过程也就称为训练。


  训练流程  


训练算法有很多,一般流程为:
(1) 初始化解                                                          
(2) 根据算法,迭代解                                            
(3) 检验是否达到迭代终止条件,若是,则退出迭代







 End







联系小饼