0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Matlab RBF神经网络及其实例

冬至子 来源:算法工程师的学习日志 作者:搬砖工程师domi 2023-07-19 17:34 次阅读

RBF神经网络和BP神经网络的区别就在于训练方法上面:RBF的隐含层与输入层之间的连接权值不是随机确定的,是有一种固定算式的。下面以精确型RBF为例。

图片

假设每个样本有R维的特征。有S1个训练集样本。IW1表示训练集,即S1XR的一个矩阵。

此时,输入一个R维的测试集样本p,首先将p和IW1计算欧氏距离。

RBF径向基函数的效果是:

所谓径向基函数 (Radial Basis Function 简称 RBF), 就是某种沿径向对称的标量函数。通常定义为空间中任一点x到某一中心xc之间欧氏距离的单调函数 , 可记作 k(||x-xc||), 其作用往往是局部的 , 即当x远离xc时函数取值很小。最常用的径向基函数是高斯核函数 ,形式为 k(||x-xc||)=exp{- ||x-xc||^2/(2*σ^2) } 其中xc为核函数中心,σ为函数的宽度参数 , 控制了函数的径向作用范围。

简单地说,就是某个测试集样本p和某个训练集样本越接近,即欧氏距离越小,那么在RBF作用后输出的值就越大。

假设这个样本p和训练集中某个样本(即IW1中某一列)很相似(即欧氏距离dist很小),那么输出结果a1中(a1维度是S1X1)就有一个值会很大。经过权重和偏置的作用后,再进入线性分类器中,就很容易可以分出来。这是我的直观的理解。

生成RBF的matlab函数:net = newrbe(P,T,spread)。只有一个参数spread需要调整。

P

RxQ matrix of Q R-element input vectors

T

SxQ matrix of Q S-element target class vectors

spread

Spread of radial basis functions (default = 1.0)

The larger the spread is, the smoother the function approximation will be. Too large a spread can cause numerical problems.

也就是说,spread这个参数越大,RBF图像越平滑,RBF的输出差距不大,则所有输入的作用都会被减弱。

关于此算法,MATLAB文档中给出了很精炼的解释:

newrbe creates a two-layer network. The first layer has radbas neurons, and calculates its weighted inputs with dist and its net input with netprod. The second layer has purelin neurons, and calculates its weighted input withdotprod and its net inputs with netsum. Both layers have biases.

newrbe sets the first-layer weights to P', and the first-layer biases are all set to 0.8326/spread, resulting in radial basis functions that cross 0.5 at weighted inputs of +/– spread.

(就是说这样设计出默认的RBF的效果是,关于X=0对称,横轴为+/-0.8333时函数的纵轴坐标值大约是0.5,表现在图中就是cross于这个点。如果加权后输入是+/- spread的话,正好产生此效果。)

The second-layer weights IW{2,1} and biases b{2} are found by simulating the first-layer outputs A{1} and then solving the following linear expression:

[W{2,1} b{2}] * [A{1}; ones] = T

也就是说,RBF实际上是一个两层的神经网络。很简单,隐层是使用RBF作为激活函数的神经元,输出层采用线性函数的神经元,做一个线性分类。在前面的dist计算欧氏距离过程中,RBF采用高斯函数,实际上是将数据转化到高维空间,认为存在某个高维空间能够使得数据在这个空间是线性可分的。因此输出层是线性的。

上面也解释了本文开头中讲的,神经元之间非随机的权值是如何计算的:实际上,第一层的权值设为输入矩阵P的转置。而第二层的权值和偏置是要通过输入参数T、第一层的output结果来反推的。

下面是MATLAB文档中给的简单代码:

图片

下面是一个例子

%% I. 清空环境变量
clear all
clc
%% II. 训练集/测试集产生
%% 
% 1. 产生随机数据
NIR = rand(60,5);
%%
% 2. 随机产生训练集和测试集
temp = randperm(size(NIR,1));
% 训练集――50个样本
P_train = NIR(temp(1:50),:)';
T_train = NIR(temp(1:50),:)';
% 测试集――10个样本
P_test = NIR(temp(51:end),:)';
T_test = NIR(temp(51:end),:)';
N = size(P_test,2);
%% III. RBF神经网络创建及仿真测试
%%
% 1. 创建网络
net = newrbe(P_train,T_train,30);
%%
% 2. 仿真测试
T_sim = sim(net,P_test);
%% IV. 性能评价
%%
% 1. 相对误差error
error = abs(T_sim - T_test)./T_test;
%%
% 2. 结果对比
result = [T_test' T_sim' error']
%% V. 绘图
figure
plot(1:N,T_test,'b:*',1:N,T_sim,'r-o')
legend('真实值','预测值')
xlabel('预测样本')
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4762

    浏览量

    100537
  • 仿真器
    +关注

    关注

    14

    文章

    1016

    浏览量

    83636
  • MATLAB仿真
    +关注

    关注

    4

    文章

    176

    浏览量

    19903
  • RBF
    RBF
    +关注

    关注

    0

    文章

    40

    浏览量

    15702
收藏 人收藏

    评论

    相关推荐

    神经网络Matlab程序

    神经网络Matlab程序
    发表于 09-15 12:52

    MATLAB神经网络

    MATLAB神经网络
    发表于 07-08 15:17

    基于RBF神经网络的辨识

    基于RBF神经网络的辨识
    发表于 01-04 13:38

    基于RBF 的模糊神经网络控制器设计与仿真分析

    介绍一种基于RBF 的模糊神经网络设计与仿真分析的实现方法。该方法利用MATLAB 中的神经网络工具箱图形用户界面GUI 结合模糊控制规则表给定的输入/输出样本数据设计、构建
    发表于 06-10 14:22 28次下载

    matlab神经网络在图书资源管理中的应用

    本文介绍了基于matlab 的径向基函数RBF 神经网络对于图书馆借书量预测的方法,讨论了RBF 神经网络的构造思路、参数和分布密度spre
    发表于 08-05 08:19 19次下载

    基于RBF神经网络的软仪表的开发

    通过在我厂蒸馏装置上软仪表的具体使用情况,简单介绍了基于RBF 神经网络的软仪表的开发,RBF 神经网络的特点、在建模中的应用及RBF
    发表于 08-14 15:15 6次下载

    matlab神经网络应用设计

    matlab神经网络应用设计详细的介绍了matlab神经网络的结合
    发表于 02-23 10:47 0次下载

    人工神经网络原理及仿真实例

    使用Matlab的关于人工神经网络原理及仿真实例,感兴趣可以打开看看。
    发表于 05-11 16:34 36次下载

    基于RBF神经网络的通信用户规模预测模型

    算法预测性能更优,使用梯度下降算法与遗传算法混合对RBF神经网络进行参数优化,提高预测模型收敛效率。实例分析表明,使用本文研究的混合RBF神经网络
    发表于 11-22 15:54 7次下载

    基于RBF神经网络的辨识

    基于RBF神经网络的辨识,径向基函数(RBF-Radial Basis Function)神经网络是由J.Moody和C.Darken在80年代末提出的一种
    发表于 12-06 15:10 0次下载

    BP神经网络的简单MATLAB实例免费下载

    本文档的主要内容详细介绍的是BP神经网络的简单MATLAB实例免费下载。
    发表于 08-21 08:00 5次下载
    BP<b class='flag-5'>神经网络</b>的简单<b class='flag-5'>MATLAB</b><b class='flag-5'>实例</b>免费下载

    基于FPGA的RBF神经网络硬件实现

    基于FPGA的RBF神经网络硬件实现说明。
    发表于 04-28 11:24 26次下载

    自构造RBF神经网络及其参数优化

    自构造RBF神经网络及其参数优化说明。
    发表于 05-31 15:25 9次下载

    神经网络及BP与RBF的比较

    神经网络及BP与RBF的比较说明。
    发表于 06-18 09:59 22次下载

    基于FPGA的RBF神经网络的硬件实现

    电子发烧友网站提供《基于FPGA的RBF神经网络的硬件实现.pdf》资料免费下载
    发表于 10-23 10:21 0次下载
    基于FPGA的<b class='flag-5'>RBF</b><b class='flag-5'>神经网络</b>的硬件实现