径向基神经网络-算法原理与自实现
径向基一族
径向基一族基本原理
作者 : 老饼 日期 : 2022-06-09 04:46:03 更新 : 2022-06-29 01:26:31
本站原创文章,转载请说明来自《老饼讲解-BP神经网络》bp.bbbdata.com


径向基神经网络(RBF)在狭义上是特指“径向基神经网络”,在广义上,是指使用径向基的一类神经网络。

常见的径向基神经网络有精确径向基神经网络,径向基神经网络,概率神经网络,广义回归神经网络.


本文主要讲述径向基一类神经网络应用中的基本思想,数学表达式和参数意义,是学习径向基神经网络的理论基础。

并为后续讲述matlab里径向基的实现方法作铺垫(不是工具箱的使用方法,是自写代码重现工具箱的效果).


开始学习径向基神经网络原理吧!



  01. 思想  


  问 题  


有一组原始数据点如下:

现在要找到一条光滑曲线拟合这6个数据点。



  RBF的解决思路  


RBF的解决思路如下图:

 

从图中可以看到,RBF神经网络解决该问题的思想就是,
以6个原始数据点(图中蓝色的点)为中心,生成了6个钟形函数(也称为径向函数rbf )。
6个钟形函数叠加后就是一条我们所需要的,能够光滑地拟合原始数据点的光滑曲线(绿色)。



  RBF数学形式  



以2输入3个钟形函数为例,RBF有如下形式:
  
  


其中,指数部分是钟形函数,                                  
a是待定系数,它控制了钟形函数的肥瘦,               
而外层的w是待解系数,它控制了钟形函数的高矮。






  02. 径向基神经网络  

径向基神经网络就是以上的思想,它先把输入映射成多个径向函数(隐神经元),再将各个径向函数(隐神经元)线性组合成最终的输出。



  网络拓扑图  


径向基神经网络是一个三层神经网络,它的网络拓扑图如下:  
  

● 隐层-->输出层结构说明
径向基神经网络的每个隐节点都代表一个径向函数(钟形函数),
有多少个样本就有多少个径向函数,然后通过输出层的权重线性组合成最终的输出。
 "隐节点个数等于样本个数"并不是对所有径向基神经网络都通用的,因为这样会有太多隐节点,有些径向基神经网络会优化隐节点个数。

● 输入层->隐层结构说明
输入与第i个隐节点的权重的取值就是第i个样本
隐层阈值则是径向基的扩展系数,
隐节点的激活函数就是径向函数。

● 隐节点的激活值计算
由网络拓扑图可以知道,第i个隐节点的激活值为:




  网络待解参数  


从以上分析可知,需要求解的只有输出层的权重和阈值: 
径向基神经网络中,输入层-->隐层的权重是不需要求解的,直接取样本点的值即可。
隐层阈值则为扩展系数,只需预设即可。





  03. 径向基神经网络数学表达式  


以2输入3个隐节点为例,RBF 神经网络有如下形式:
 


当径向基函数 取为 时,则是如下形式:

● 符号说明

: 第2层(隐层)与第1层(输入层)的权重 ,下标(1,:)代表只取第1行                              
第三层(输出层)的第1个神经元的阈值                                                                        
dist 代表欧氏距离函数,例如 







  04. 隐节点阈值的生成  


  隐节点阈值的意义  


径向基神经网络的表达式如下形式:
 
 


其中 隐节点阈值 就是影响径向基宽度的参数,
从  与X的关系可以知道, 越小,钟形函数越肥,  越大,钟形函数越瘦.
只要调整   ,就能改变网络的径向基宽度.



  通过spread控制宽度  


如果直接用   控制钟形函数的宽度,一方面    的值与宽度成反比,有些逆思维,另一方面在控制宽度上比较抽象。

matlab神经网络工具箱改用扩展系数spread来生成  :




将上式代入径向基部分,则径向基部分变为:



这样,当X与径向基中心的距离为spread时, 径向基的值为峰值(峰值为1)的一半。

使用spread的好处是,能让我们更形象地控制径向基的肥瘦,另一方面,spread与径向基的肥瘦成正比,spread越大,径向基越肥。




  05. 一些常用的径向基函数  



 ● 高 斯 函 数 





 ● 多二次函数(Multiquadrics) 





 ● 逆多二次函数(Inverse multiquadrics) 



其中,b>0






 End 









联系老饼