本站原创文章,转载请说明来自《老饼讲解-BP神经网络》www.bbbdata.com
RBF神经网络是一种以RBF径向基为激活函数的三层神经网络,常用于拟合各种数值关系
本文讲解RBF神经网络的建模流程与步骤,包括数据的归一化、模型的训练等
通过本文,可以了解RBF神经网络建模的流程,具体代码见《RBF神经网络建模-代码实现》
本节讲述RBF神经网络建模的核心关注问题与建模的流程
RBF神经网络建模-核心问题
由于RBF神经网络可以使用插值方法求解(即newrbe),它在训练误差上可以为0
而使用OLS进行求解(即newrb),训练误差也不是问题,只要隐节点足够,训练误差就会足够小
因此,RBF神经网络建模的核心主要解决以下两个问题:
1. 模型的泛化能力
模型的泛化能力,也可以简单地认为,就是模型在测试数据上的精度
2. 模型复杂度
即RBF神经网络的隐节点个数,过多的隐节点会令模型较庞大
所以,而在RBF神经网络的建模中,需要密切关注与解决的是以上两个问题
RBF神经网络-建模过程
RBF神经网络的建模过程主要有以下步骤:
一、数据处理
1. 数据归一化:将数据进行归一化,统一量纲
2. 数据分割:分割为训练集与测试集
二、模型构建
1. 模型参数设置:主要设置goal和spread参数
2. 模型训练:用训练数据对模型进行训练
三、模型评估与模型保存
1. 评估训练误差:打印模型的训练误差
2. 评估测试误差:打印模型的测试误差
本节详细讲述RBF神经网络建模过程的每一个步骤
RBF神经网络建模-数据处理
输入数据归一化
对输入数据归一化主要是考虑到径向基是基于距离的模型
因此,在多输入时,进行归一化可以达到量纲统一
如果不归一化,整体距离很容易被某个维度"吃"掉 ,另一
方面,将数据归一化后,在调参等方面更加统一与方便一些
归一化并不是绝对需要的,需根据数据背景意义来决定是否要归一化
数据划分
将数据划分为两部分:
1. 训练数据:用来构建RBF
2. 测试数据:用来最终检验模型的效果
可以随机划分,也可以根据数据实际意义进行划分
RBF神经网络建模-模型构建与评估
RBF神经网络模型构建
构建RBF神经网络只需设定相关参数,再进行训练就可以了,如下:
1. 设定RBF神经网络模型参数
模型参数主要是设置spread和goal
可以使用matlab的默认值作为初步设定,即:spread = 1 ,goal= 0
2. 用训练数据调用newrb构建RBF
直接使用newrb就可以构建RBF神经网络,如下:
[net,tr]= newrb(x, y,goal,spread);
模型评估
这里建议使用绝对误差MAE来评估模型,如下:
1. 训练误差:评估训练样本的MAE误差
2. 预测误差:评估预测样本的MAE误差
建模中需要反复调参,以加强模型的泛化能力,即让预测误差满足要求
好了,以上就是RBF神经网络的建模步骤了~
End