径向基神经网络
1.径向基神经网络入门
2.径向基神经网络-精确求解(nrwrbe)
3.径向基神经网络-OLS求解(newrb)
4.其它径向基神经网络
【原理】径向基神经网络-OLS求解原理详述
作者 : 老饼 日期 : 2022-06-09 04:48:00 更新 : 2023-04-06 02:10:06


本站原创文章,转载请说明来自《老饼讲解-BP神经网络》bp.bbbdata.com



本文讲解OLS法求解径向基神经网络的思想和原理

从本文可以了解到OLS法到底是怎么求解径向基神经网络的




    01. OLS求解径向基神经网络的思想    



本节讲解OLS求解径向基神经网络到底是怎么一回事



     径向基精确求解回顾    


在学习径向基神经网络OLS求解方法之前 
我们先回顾径向基神经网络的精确求解方法
 
径向基的精确求解方法简述如下
先直接设定宽度,
然后以每个样本为中心生成径向基,
 隐层权重阈值就已被确定
从而可以计算出隐节点激活值
而我们希望网络的输出与真实值一致,即
  
直接求解上述方程
 由于方程组中待解参数比方程个数更多,
所以必能解得 的精确解
 也即此时网络的误差为0
✍️附:方程的标准矩阵形式
 

 写为标准矩阵形式为
 

推导过程如下
 





    OLS求解径向基神经网络的思想    


上述精确求解得到的网络会包含较多的隐节点
 有多少个样本就有多少个隐节点

因此我们现在并不直接求解 
而是企图先减少隐神经元,再进行求解
 因为的每一列都意味着一个隐神经元,
所以也就是减少
的一部分列,
 但是,这样做的后果是上式不可解,而只有最小二乘解,
 没关系,只要最小二乘解的误差不要太大就可以
 那么,如何能让的列尽量的少,又能keep住最小二乘误差呢?
这就是OLS算法要干的事情了






    02. OLS算法简介    



本节简单介绍OLS算法,快速弄清OLS算法是干什么的,是怎么干的

 


     OLS算法是什么     


OLS算法解决什么问题
现有一矩阵,
OLS希望从A中选择了一个子集,使得的列尽量的少,
同时又能让的最小二乘误差满足要求
 
 OLS正交最小二乘法流程介绍
 

OLS先初始化一个空的集合As,
然后将A的列逐个添加到As中,
每次添加的列, 都是使最小二乘误差最小的一列
 直到误差已满足要求/或者所有列都已经添加进来
 直白地说,就是逐列添加,每次添加最优的列 
 👉详细算法原理及流程参考《OLS正交最小二乘法原理》






    03. 利用OLS求解径向基神经网络    

 

 

本节讲解如何利用OLS算法来求解径向基神经网络

 

  

    OLS求解径向基神经网络-流程简述    


用OLS求解径向基神经网络的流程简述如下
1. 先以所有样本为中心生成径向基,并算得隐神经元激活值A                                        
2. 使用OLS算法,对进行逐列选择,直到满足误差要求                                            
3. 选出的列就是最终网络使用的神经元,也就确定径向基的中心                            
4. 最后用最小二乘求解外层权重阈值                                                                            
(1) 先算出网络的激活值A                                                                                  
(2) 再求  的最小二乘求解                               
 即
的最小二乘解                      
根据最小二乘公式可得:                
 
                    
 其中  
                                 
5. 最终输出                                                                       
 更具体详细的流程参考《径向基神经网络-OLS求解算法流程》





    理解OLS法求解径向基神经网络的两种角度    


综合上面的讲述,
我们可以从不同角度来看待OLS法求解径向基神经网络的思想

  理解角度一
一方面,我们可以认为
先以所有样本作为径向基中心,生成径向基神经网络,
然后用OLS法对其进行瘦身
 理解角度二
另一方面,也可以认为,
先以所有样本作为中心生成备选隐节点,
然后每次选择能让网络误差下降最大的隐节点,
逐个添加到网络中去,直到误差达到要求
✍️补充
 OLS求解径向基神经网络就是matlab神经网络工具箱中的newrb函数
在《径向基神经网络-OLS求解实现代码》中,我们复现与newrb一模一样的效果




      结束语      


阅读代码,调试代码,才能真正的理解算法的原理
 具体参考以下两张文章
《径向基神经网络-OLS求解算法流程》
《径向基神经网络-OLS求解实现代码》
希望本文能够帮助大家掌握径向基神经网络的Base算法原理
✍️老饼的困惑
 
 对于OLS求解径向基神经网络,
老饼也没办法把它讲得完全清爽干脆,它的实现依赖了较多基础知识,
对于这些基础知识讲解的“度”在哪里,一百个读者有一百个度,老饼举棋不定
老饼当前能做的,只有尽量把它讲好,但自认无法做到100%讲好
目前的文章版本,已经是老饼刷新的第nnnn个版本了










 End 






联系老饼