m基于RBF神经网络的数据预测matlab仿真,测试数据分别采用趋势型数据,周期型数据以及混乱型数据

简介: m基于RBF神经网络的数据预测matlab仿真,测试数据分别采用趋势型数据,周期型数据以及混乱型数据

1.算法描述

   1985年,Powell提出了多变量插值的径向基函数(RBF)方法。径向基函数是一个取值仅仅依赖于离原点距离的实值函数,也可以是到任意一点c的距离,c点称为中心点。任意满足上述特性的函数,都可以叫做径向基函数。一般使用欧氏距离计算距离中心点的距离(欧式径向基函数)。最常用的径向基函数是高斯核函数。RBF神经网络只有三层,即输入层、隐藏层、输出层。

image.png

  用RBF作为隐藏层单元的激活函数,将输入数据映射到高维隐藏空间,不需要通过权值连接,当RBF的中心点确定后,映射关系也就确定了。比如图2中的隐藏层c1-ch,需要确定h个中心点。

   隐藏层到输出层的映射是线性的,即网络的输出是隐藏单元输出的线性加权求和,这里的权重(w)即为网络的可调参数。

注意:隐含层的作用是把向量从低维度的p映射到高维度的h,这样低维度线性不可分的情况到高维度就可以变得线性可分了,主要就是核函数的思想。这样,网络由输入到输出的映射是非线性的;而网络输出对可调参数而言却又是线性的,网络的权就可由线性方程组直接解出,从而大大加快学习速度并避免局部极小问题。

   径向基神经网络的激活函数可表示为:

image.png

   其中xp为第p个输入样本,ci为第i个中心点,h为隐含层的结点数,n是输出的样本数或分类数。径向基神经网络的结构可得到网络的输出为: 

image.png

  RBF神经网络的隐节点采用输入模式与中心向量的距离(如欧式距离)作为函数的自变量,并使用径向基函数(如Gaussian函数)作为激活函数。神经元的输入离径向基函数中心越远,神经元的激活程度就越低(高斯函数)。 

2.仿真效果预览
matlab2022a仿真结果如下:

image.png
image.png
image.png
image.png
image.png

3.MATLAB核心程序

%%
%选择100个数据作为输入
Data = data3(1:100);
%%
%选择20个训练数据
t11         = 1:10;
Train_data1 = Data(1:10);
t12         = 1:10;
spread = 1;
goal   = 0.01;
df     = 1;
mn     = length(t11);
net    = newrb(t11,Train_data1,goal,spread,mn,df); 
 
yc1    = sim(net,t12);
%%
%选择70个训练数据
t21         = 1:60;
Train_data2 = Data(1:60);
t22         = 1:60;
 
spread = 1;
goal   = 0.01;
df     = 1;
mn     = length(t21);
net    = newrb(t22,Train_data2,goal,spread,mn,df); 
yc2    = sim(net,t22);
 
figure;
plot(t21,Train_data2,'b-o');
hold on;
plot(t22,yc2,'r-*');
hold off;
grid on;
 
 
 
%%
%%对比计算结果
mser11 = func_mse(Train_data1);
mser12 = func_mse(yc1);
sder1  = func_sd(yc1);
sdrer1 = func_sdr(yc1,Train_data1);
coeff1 = func_pcc(yc1,Train_data1);
 
fprintf('Inputs    Train data points    MSE training    MSE testing     PCC         SDR         SD\n');
%%
%下面的程序是画图
cnt = 0;
for i = 10:2:60
    i
    cnt         = cnt + 1;
    t01         = 1:i;
    Train_data0 = Data(1:i);
    t02         = 1:i;
    spread      = 1;
    goal        = 0.01;
    df          = 1;
    mn          = length(t01);
    net         = newrb(t02,Train_data0,goal,spread,mn,df); 
    yc0         = sim(net,t02);
    %%
    %%对比计算结果
    mser01(cnt) = func_mse(Train_data0);
    mser02(cnt) = func_mse(yc0);
    sder0(cnt)  = func_sd(yc0);
    sdrer0(cnt) = func_sdr(yc0,Train_data0);   
end
相关文章
|
7月前
|
传感器 机器学习/深度学习 算法
【UASNs、AUV】无人机自主水下传感网络中遗传算法的路径规划问题研究(Matlab代码实现)
【UASNs、AUV】无人机自主水下传感网络中遗传算法的路径规划问题研究(Matlab代码实现)
188 0
|
7月前
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
480 2
|
6月前
|
机器学习/深度学习 数据采集 存储
概率神经网络的分类预测--基于PNN的变压器故障诊断(Matlab代码实现)
概率神经网络的分类预测--基于PNN的变压器故障诊断(Matlab代码实现)
964 0
|
6月前
|
机器学习/深度学习 人工智能 算法
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
271 0
|
6月前
|
传感器 机器学习/深度学习 数据采集
【航空发动机寿命预测】基于SE-ResNet网络的发动机寿命预测,C-MAPSS航空发动机寿命预测研究(Matlab代码实现)
【航空发动机寿命预测】基于SE-ResNet网络的发动机寿命预测,C-MAPSS航空发动机寿命预测研究(Matlab代码实现)
448 0
|
7月前
|
机器学习/深度学习 算法 调度
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
563 0
|
7月前
|
机器学习/深度学习 并行计算 算法
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
177 8
|
7月前
|
机器学习/深度学习 缓存 算法
2025年华为杯A题|通用神经网络处理器下的核内调度问题研究生数学建模|思路、代码、论文|持续更新中....
2025年华为杯A题|通用神经网络处理器下的核内调度问题研究生数学建模|思路、代码、论文|持续更新中....
613 1
|
7月前
|
机器学习/深度学习 传感器 算法
【表面粗糙度】基于粒子群PSO算法优化-BP神经网络的表面粗糙度研究(Matlab代码实现)
【表面粗糙度】基于粒子群PSO算法优化-BP神经网络的表面粗糙度研究(Matlab代码实现)
329 7
|
7月前
|
机器学习/深度学习 算法 数据可视化
PINN物理信息神经网络用于求解二阶常微分方程(ODE)的边值问题研究(Matlab代码实现)
PINN物理信息神经网络用于求解二阶常微分方程(ODE)的边值问题研究(Matlab代码实现)
431 6

热门文章

最新文章

下一篇
开通oss服务