基于正交最小二乘算法的RBF 神经网络
一、实验环境
硬件平台Win10 64位操作系统,1.5GHZ ,4G 内存,软件版本MA TLAB2015b
二、实验数据
训练数据集:
[***********]415
F 00.00740.00430.5520.54520.55020.24620.25350.26650.66150.67380.666510.97970.9846
W 00.03350.02230.30170.27930.24580.15080.10610.08940.52510.44130.474910.97770.9727
M 0.00130.001500.25810.26110.27170.09470.09680.09370.51950.52250.52550.981210.9847
Y 00.00320.00470.30940.29880.31150.09640.09710.09940.4710.47320.476910.9960.9857
Q 00.01060.00530.23160.20360.23470.09990.0810.090810.96670.97580.82060.77590.76
[***********][1**********]0T [***********][***********]000000111
测试数据集:
12345
F 0.00310.54930.25720.67040.992
W 0.02350.26260.10060.49720.9899
M 0.00050.26590.09580.52350.9979
Y 0.0030.30880.09810.47410.9937
Q 0.00450.22210.0890.97910.7979
1000001000T [**************]
三、算法介绍
RBF 函数网络从结构上看是一个3层前馈网络,包括一个输入层、一个输出层和一个隐含层。输入层节点的作用是将输入数据传递到隐含层节点。隐含层节点称为RBF 节点,其激活函数为辐射状函数的神经元构成,通常采用高斯型函数:
图1 RBF结构
RBF 网络中所用的非线性函数的形式对网络性能的影响并不是至关重要的,关键因素是基函数中心的选取,中心选取不当构造出来的RBF 网络的性能一般不能令人满意。例如,如果某些中心靠的太近,会产生近似线形相关,从而带来数值上的病变条件。基本的RBF 神经网络采用随机抽取固定中心的方法,在输入样本数据的分布具有某种特性的情况下,采用这种方法解决给定问题就显得简单可行了。而针对其缺陷,已经有许多改进的方法,其中之一就是利用最小二乘法选取中心,训练网络权重。
四、程序设计
1.RBF 基本算法
程序分为数据准备,网络训练,网络测试,图形绘制四部分。
数据准备部分将EXCEL 表格中的训练集测试集数据导入MATLAB 工作空间,作为实验的数据源。然后对程序参数进行初始化设置在训练集中随机抽取数据作为RBF 中心。网络训练部分进行样本迭代训练,每一次迭代结束计算误差是否达到精度要求,若未达到精度要求则调整权值进行下一次迭代。精度达到要求或达到最大步数则结束训练,进入测试阶段。最后绘制训练误差图形,输出测试结果。
图2 基本RBF 程序流程图
2. 基于正交最小二乘法的改进设计
正交最小二乘法是神经网络中的很重要的一种学习方法。线性回归模型是算法的来源。不失一般性,考虑网络中只有一个单元的输出层。令网络训练样本对为
其中、N 代表训练样本数。Xn 是网络输入数据矢量。d(n)表示网络期望输出响应。网络的期望输出响应根据选型回归模型可以表达为
式中M 是隐含层的单元数M
Wi 为模型参数,同样也可以表示输出层连接隐含层的权;e(n)是残差。将4-40写成矩阵方程形式,可表示为
式中,P 为回归矩阵。选择回归算子矢量pi 是求解回归方程式的关键。P 确定以后,就可以用线性方程组来求解模型参数矢量。通常的RBF 中心,是从输入的样本数据的矢量集合中做选择。每当选定一组ti
,就能得到一个对应于输入样本的回归矩阵。值得注意的是,
回归算子的个数M 的选择和它的变化都直接影响回归模型中的残差。我们要选择那些对降低残差贡献显著回归的算子,剔除对降低残差贡献差的回归算子。为了得到满足二次性能指标的网络输出,OLS 法需要的工作是通过学习选择出合适的回归算子矢量,以及它的个数M ,OLS 法的基本思想是正交化pi ,分析判断pi 对降低残差的贡献,选择贡献显著的回归算子并确定其个数。
将P 进行正交三角形分解,P=UA,U 是各列正交的N*M阵,A 为上三角矩阵。经运算得到最小二乘解
定义误差压缩比
总结OLS 算法的具体过程是:
(1)进行隐含层单元数的预选工作。 (2)选择一组RBF 中心矢量ti ,1≤i ≤M (3)选择输入样本矢量计算P (4)正交化P 矩阵 (5)分别计算
,据此可以选择重要的回归算子。
(6)计算上三角矩阵A ,根据AW=G求连接权重。 (7)检查是否满足以下公式
如果得到满足, 则停止计算。否则, 重新开始第2步。
五、调试过程及结果
1.RBF 基本算法
网络结构及参数:选择5个输入神经元,5个输出神经元,隐层神经元个数20个,目标精度0.001。训练过程误差变化如图3所示,经过两次迭代就达到精度要求。
图3 基本RBF 训练过程
此时输出结果如下表所示,由结果可知经过训练后的网络很好的实现了分类目的,且精度较高。
此时网络权值如下表所示,M 为隐层神经元,Y 为输出神经元
RBF 中心取值分别为
改变隐藏神经元个数为5个训练及测试结果:
通过测试数据可以看到并未达到分类要求,因此隐层神经元太少会影响分类精度,而且
在调试过程中由于初始权值以及网络中心都是随机选择,同一参数下测试效果也不相同。 2. 基于正交最小二乘法的改进设计
基于正交最小二乘算法的RBF 改进算法并没有成功实现。在程序设计调试过程中,开始并不了解RBF 的工作原理,于是参考了《智能控制》(),《MATLAB 神经网络:::》以及网络上一篇名为《RBF 神经网络的matlab 简单实现》的博客文章,了解了RBF 的基本结构及其实现方法。在基本算法完成的情况下,考虑正交最小二乘算法与RBF 神经网络的结合问题。对于最小二乘法,可以理解为是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。在知网期刊论文文库搜索了大量相关的文献资料,通过阅读文献发现最小二乘法常用来进行隐层神经元中心的选择以及权值的修正,上一部分研究已经发现RBF 隐层神经元函数中心的选择直接影响了网络训练结果的好坏,基于正交最小二乘算法的RBF 改进算法就是利用最小二乘法进行网络中心的选择以及权值调整。接下来在一篇硕士论文《基于RBF 神经网络的浮船坞浮态检验系统辨识》中找到基于最小二乘算法改进RBF 神经网络的较为详细的总体步骤。(如第四部分所述),据此设计程序。
首先进行数据准备工作,将训练数据测试数据导入MATLAB 工作空间,然后初始化所需参数,计算回归矩阵P ,p(i)为第i 个隐层的输出向量,对P 进行正交化处理,程序中采用QR 分解的方法,得到正交矩阵U 以及上三角矩阵A ,之后再求取g 和误差压缩比时针对多维输出情况遇到困难,至此,问题的关键集中于如何求取误差压缩比并选择最佳的中心点向量,通过每次迭代增加隐层中心数目更新权值矩阵直至误差达到精度要求。
接下来的工作应该建立在充分理解最小二乘算法的基础上解决多维输出情况下最优中心点选择的问题。
对于测试部分、结果处理绘图程序同前述基本RBF 算法。
六、讨论与小结
由实验可知,RBF 神经网络在分类问题中具有优越性能。通过动手编制RBF 底层学习算法程序可以促使我们深入了解算法原理,在其缺陷基础上提出改进措施。由于时间有限,实验改进算法虽未顺利完成,但也在其中学到了更多程序改进的思路。未完成的部分还需要继续研究。
参考文献
[1]焦玉莹. 基于RBF 神经网络的浮船坞浮态检验系统辨识[D]. 大连海事大学,2011.
[2]何加宝. 多段径向基函数网络的正交最小二乘法和正则最小二乘法[D]. 安徽工业大学: 安徽工业大学,2013.
[3]刘金玲,. 基于OLS 算法的RBF 网设计方法与实现[J]. 计算机时代,2010,(7)
[4]陈涛, 蒋林, 屈梁生. 基于正交最小二乘学习算法的径向基函数网络设计[J]. 中国机械工程,1997,(6). [5]曹屹立, 葛超, 张景春, 孙丽英, 朱艺,. 最小二乘算法在RBF 神经网络中的应用[J]. 山西电子技术,2008,(1). [6]韦巍, 何衍. 智能控制基础[M].清华大学出版社,2008.
[7]陈明.MATLAB 神经网络原理与实例精解[M].清华大学出版社.2013.
基于正交最小二乘算法的RBF 神经网络
一、实验环境
硬件平台Win10 64位操作系统,1.5GHZ ,4G 内存,软件版本MA TLAB2015b
二、实验数据
训练数据集:
[***********]415
F 00.00740.00430.5520.54520.55020.24620.25350.26650.66150.67380.666510.97970.9846
W 00.03350.02230.30170.27930.24580.15080.10610.08940.52510.44130.474910.97770.9727
M 0.00130.001500.25810.26110.27170.09470.09680.09370.51950.52250.52550.981210.9847
Y 00.00320.00470.30940.29880.31150.09640.09710.09940.4710.47320.476910.9960.9857
Q 00.01060.00530.23160.20360.23470.09990.0810.090810.96670.97580.82060.77590.76
[***********][1**********]0T [***********][***********]000000111
测试数据集:
12345
F 0.00310.54930.25720.67040.992
W 0.02350.26260.10060.49720.9899
M 0.00050.26590.09580.52350.9979
Y 0.0030.30880.09810.47410.9937
Q 0.00450.22210.0890.97910.7979
1000001000T [**************]
三、算法介绍
RBF 函数网络从结构上看是一个3层前馈网络,包括一个输入层、一个输出层和一个隐含层。输入层节点的作用是将输入数据传递到隐含层节点。隐含层节点称为RBF 节点,其激活函数为辐射状函数的神经元构成,通常采用高斯型函数:
图1 RBF结构
RBF 网络中所用的非线性函数的形式对网络性能的影响并不是至关重要的,关键因素是基函数中心的选取,中心选取不当构造出来的RBF 网络的性能一般不能令人满意。例如,如果某些中心靠的太近,会产生近似线形相关,从而带来数值上的病变条件。基本的RBF 神经网络采用随机抽取固定中心的方法,在输入样本数据的分布具有某种特性的情况下,采用这种方法解决给定问题就显得简单可行了。而针对其缺陷,已经有许多改进的方法,其中之一就是利用最小二乘法选取中心,训练网络权重。
四、程序设计
1.RBF 基本算法
程序分为数据准备,网络训练,网络测试,图形绘制四部分。
数据准备部分将EXCEL 表格中的训练集测试集数据导入MATLAB 工作空间,作为实验的数据源。然后对程序参数进行初始化设置在训练集中随机抽取数据作为RBF 中心。网络训练部分进行样本迭代训练,每一次迭代结束计算误差是否达到精度要求,若未达到精度要求则调整权值进行下一次迭代。精度达到要求或达到最大步数则结束训练,进入测试阶段。最后绘制训练误差图形,输出测试结果。
图2 基本RBF 程序流程图
2. 基于正交最小二乘法的改进设计
正交最小二乘法是神经网络中的很重要的一种学习方法。线性回归模型是算法的来源。不失一般性,考虑网络中只有一个单元的输出层。令网络训练样本对为
其中、N 代表训练样本数。Xn 是网络输入数据矢量。d(n)表示网络期望输出响应。网络的期望输出响应根据选型回归模型可以表达为
式中M 是隐含层的单元数M
Wi 为模型参数,同样也可以表示输出层连接隐含层的权;e(n)是残差。将4-40写成矩阵方程形式,可表示为
式中,P 为回归矩阵。选择回归算子矢量pi 是求解回归方程式的关键。P 确定以后,就可以用线性方程组来求解模型参数矢量。通常的RBF 中心,是从输入的样本数据的矢量集合中做选择。每当选定一组ti
,就能得到一个对应于输入样本的回归矩阵。值得注意的是,
回归算子的个数M 的选择和它的变化都直接影响回归模型中的残差。我们要选择那些对降低残差贡献显著回归的算子,剔除对降低残差贡献差的回归算子。为了得到满足二次性能指标的网络输出,OLS 法需要的工作是通过学习选择出合适的回归算子矢量,以及它的个数M ,OLS 法的基本思想是正交化pi ,分析判断pi 对降低残差的贡献,选择贡献显著的回归算子并确定其个数。
将P 进行正交三角形分解,P=UA,U 是各列正交的N*M阵,A 为上三角矩阵。经运算得到最小二乘解
定义误差压缩比
总结OLS 算法的具体过程是:
(1)进行隐含层单元数的预选工作。 (2)选择一组RBF 中心矢量ti ,1≤i ≤M (3)选择输入样本矢量计算P (4)正交化P 矩阵 (5)分别计算
,据此可以选择重要的回归算子。
(6)计算上三角矩阵A ,根据AW=G求连接权重。 (7)检查是否满足以下公式
如果得到满足, 则停止计算。否则, 重新开始第2步。
五、调试过程及结果
1.RBF 基本算法
网络结构及参数:选择5个输入神经元,5个输出神经元,隐层神经元个数20个,目标精度0.001。训练过程误差变化如图3所示,经过两次迭代就达到精度要求。
图3 基本RBF 训练过程
此时输出结果如下表所示,由结果可知经过训练后的网络很好的实现了分类目的,且精度较高。
此时网络权值如下表所示,M 为隐层神经元,Y 为输出神经元
RBF 中心取值分别为
改变隐藏神经元个数为5个训练及测试结果:
通过测试数据可以看到并未达到分类要求,因此隐层神经元太少会影响分类精度,而且
在调试过程中由于初始权值以及网络中心都是随机选择,同一参数下测试效果也不相同。 2. 基于正交最小二乘法的改进设计
基于正交最小二乘算法的RBF 改进算法并没有成功实现。在程序设计调试过程中,开始并不了解RBF 的工作原理,于是参考了《智能控制》(),《MATLAB 神经网络:::》以及网络上一篇名为《RBF 神经网络的matlab 简单实现》的博客文章,了解了RBF 的基本结构及其实现方法。在基本算法完成的情况下,考虑正交最小二乘算法与RBF 神经网络的结合问题。对于最小二乘法,可以理解为是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。在知网期刊论文文库搜索了大量相关的文献资料,通过阅读文献发现最小二乘法常用来进行隐层神经元中心的选择以及权值的修正,上一部分研究已经发现RBF 隐层神经元函数中心的选择直接影响了网络训练结果的好坏,基于正交最小二乘算法的RBF 改进算法就是利用最小二乘法进行网络中心的选择以及权值调整。接下来在一篇硕士论文《基于RBF 神经网络的浮船坞浮态检验系统辨识》中找到基于最小二乘算法改进RBF 神经网络的较为详细的总体步骤。(如第四部分所述),据此设计程序。
首先进行数据准备工作,将训练数据测试数据导入MATLAB 工作空间,然后初始化所需参数,计算回归矩阵P ,p(i)为第i 个隐层的输出向量,对P 进行正交化处理,程序中采用QR 分解的方法,得到正交矩阵U 以及上三角矩阵A ,之后再求取g 和误差压缩比时针对多维输出情况遇到困难,至此,问题的关键集中于如何求取误差压缩比并选择最佳的中心点向量,通过每次迭代增加隐层中心数目更新权值矩阵直至误差达到精度要求。
接下来的工作应该建立在充分理解最小二乘算法的基础上解决多维输出情况下最优中心点选择的问题。
对于测试部分、结果处理绘图程序同前述基本RBF 算法。
六、讨论与小结
由实验可知,RBF 神经网络在分类问题中具有优越性能。通过动手编制RBF 底层学习算法程序可以促使我们深入了解算法原理,在其缺陷基础上提出改进措施。由于时间有限,实验改进算法虽未顺利完成,但也在其中学到了更多程序改进的思路。未完成的部分还需要继续研究。
参考文献
[1]焦玉莹. 基于RBF 神经网络的浮船坞浮态检验系统辨识[D]. 大连海事大学,2011.
[2]何加宝. 多段径向基函数网络的正交最小二乘法和正则最小二乘法[D]. 安徽工业大学: 安徽工业大学,2013.
[3]刘金玲,. 基于OLS 算法的RBF 网设计方法与实现[J]. 计算机时代,2010,(7)
[4]陈涛, 蒋林, 屈梁生. 基于正交最小二乘学习算法的径向基函数网络设计[J]. 中国机械工程,1997,(6). [5]曹屹立, 葛超, 张景春, 孙丽英, 朱艺,. 最小二乘算法在RBF 神经网络中的应用[J]. 山西电子技术,2008,(1). [6]韦巍, 何衍. 智能控制基础[M].清华大学出版社,2008.
[7]陈明.MATLAB 神经网络原理与实例精解[M].清华大学出版社.2013.