• 【教程】几种不同的RBF神经网络


    本站原创文章,转载请说明来自《老饼讲解-机器学习》www.bbbdata.com

    RBF神经网络指的是用RBF曲线来构成的神经网络模型,
    RBF曲线
    常见的RBF神经网络包括径向基神经网络、概率神经网络、广义回归神经网络等等。
    下面我们介绍这几种常见的RBF神经网络。

    一、经典RBF神经网络

    1.1.经典径向基神经网络是什么

    经典径向基神经网络的思想很纯粹,如下
    经典径向基神经网络
    可以看到,经典径向基神经网络在各个数据点都生成一个径向基。每个径向基的宽度是预设的,然后再求解每个径向基的高度,使得最后所有径向基叠加后能拟合目标曲线。可知,经典径向基神经网络是纯粹的曲线拟合,就是仅从数学角度去使用径向基函数来拟合目标曲线。

    1.2.经典径向基神经网络-代码与示例

    在matlab中使用newrbe来实现一个径向基神经网络,具体示例如下:

    %------代码说明:用newrbe构建一个径向基神经网络 -----------------
    % 来自《老饼讲解神经网络》www.bbbdata.com ,matlab版本:2018a   
    %-------------------------------------------------------------------%
    %----数据准备----                              
    x  = [-2,-1,0,1,2;-6,-2,0,3,8];                % 输入数据
    y  = [3,2,3,1,2];                              % 输出数据
    %----网络训练----                              
    net = newrbe(x, y, 0.5);                       % 以X,Y建立径向基网络,目标误差为0.01,径向基的宽度参数spread=0.5
    py = sim(net,x)                                % 用建好的网络进行预测,这里的x是要用来进行预测的输入
    
    % ----打印结果----------
    err_rate = mean(abs(py-y)./abs(y))             % 计算相对误差占比
    plot(1:length(y),y,'*',1:length(y),py,'o')     % 绘制结果,x轴代表样本
    legend('原始数据的y','网络预测的y')            % 添加图例
    

    运行结果如下:
    在这里插入图片描述
    可以看到,网络的预测值与真实值完全一致,
    这并非偶然,因为本例用于预测的数据就是训练数据,而newrbe在训练数据上是0误差的

    二、广义回归神经网络GRNN

    2.1.广义回归神经网络是什么

    广义回归神经网络General Regression Neural Network也是径向基神经网络的一种,广义回归使用所有历史样本点来综合评估当前样本点。类似于投票的思想,即所有历史样本点都给出当前样本点与自己相似的概率,然后得到最终的综合评估,如下:
    y = ∑ i y i ∗ p i y =\sum\limits_{i}y_i*p_i y=iyipi
    其中,Pi的计算为:
    p ^ i = exp ⁡ ( − a 2 ( x − x i ) 2 ) p i = p j / ∑ j P j \hat{p}_i = \exp(-a^2(x-x_i)^2) \\p_i =p_j/ \sum\limits_{j}P_j p^i=exp(a2(xxi)2)pi=pj/jPj

    pi的意义如下图所示:
    在这里插入图片描述

    它假设x与任何一个已有样本中 xi 相同的概率都服从正态分布,然后再进行归一化就得到pi的计算公式。
    相比经典RBF,广义回归更具解释性。

    2.2.广义回归神经网络是什么-代码与示例

    在matlab中使用newgrnn来实现一个广义回归神经网络,具体示例如下:

    %代码说明:径向基newgrnn的matlab工具箱使用Demo
    %来自《老饼讲解神经网络》www.bbbdata.com ,matlab版本:2014b
    %-----------------------------------------------------
    %----数据准备----
    x1  = 1:0.2:10;
    x2  = -5:0.2:4;
    X   = [x1;x2];                % 输入数据,注意中间是分号
    Y   = sin (X(1,:))+X(2,:);    % 输出数据
    
    %----网络训练----
    net = newgrnn(X,Y);           % 网络建立与训练
    simY = sim(net, X);           % 用建好的网络拟合原始数据
    
    %----结果对比----
    figure(1);
    t = 1:size(Y,2);
    plot(t,Y,'*',t,simY,'r')  
    

    三、概率神经网络PNN

    3.1.概率神经网络是什么

    概率神经网络ProbabilisticNeuralNetwork是广义回归神经网络的拓展,广义回归神经网络用于数值预测,而概率神经网络则用于类别预测。
    概率神经网络

    概率神经网络用于类别预测,有多少个类别就有多少个输出,概率神经网络仅仅是将广义回归神经网络再加上一个compet运算,即哪个输出最大就置1,其余置0。

    3.2.概率神经网络是什么-代码与示例

    在matlab中使用newgrnn来实现一个广义回归神经网络,具体示例如下:

    % 训练数据
    P = [1 2 3 4 5 6 7];   % 输入数据
    Tc = [1 2 3 2 2 3 1];  % 输出数据:类别编号
    T = ind2vec(Tc);       % 将类标转换为onehot编码格式
    
    %设计一个PNN神经网络,并测试
    net = newpnn(P,T);     % 生成一个概率神经网络
    Y = sim(net,P)         % 用网络进行预测
    Yc = vec2ind(Y)        % 将预测结果转为类别编号 
    

    运行结果如下:
    在这里插入图片描述
    以上就是三种常见的RBF神经网络的介绍了


    相关链接:

    《老饼讲解-机器学习》:老饼讲解-机器学习教程-通俗易懂
    《老饼讲解-神经网络》:老饼讲解-matlab神经网络-通俗易懂
    《老饼讲解-神经网络》:老饼讲解-深度学习-通俗易懂

  • 相关阅读:
    ES7~ES12那些事儿
    常见产品结构四大类型 优劣势比较
    如何从存档服务器上完全删除PDM用户
    SpringBoot Excel导入导出
    vmware网络负载均衡方式
    GitLab使用的最简便方式
    2.链表--链表环相关问题
    时空智友企业流程化管控系统 sessionid泄露漏洞 复现
    Excel生成 chart 混合图表
    AUTOSAR汽车电子嵌入式编程精讲300篇-面向车载CAN网络的路由和ECU刷写方法 (下)
  • 原文地址:https://blog.csdn.net/dbat2015/article/details/139944102