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

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

目录

  • 一、经典RBF神经网络
    • 1.1.经典径向基神经网络是什么
    • 1.2.经典径向基神经网络-代码与示例
  • 二、广义回归神经网络GRNN
    • 2.1.广义回归神经网络是什么
    • 2.2.广义回归神经网络是什么-代码与示例
  • 三、概率神经网络PNN
    • 3.1.概率神经网络是什么
    • 3.2.概率神经网络是什么-代码与示例

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神经网络-通俗易懂
《老饼讲解-神经网络》:老饼讲解-深度学习-通俗易懂

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/37190.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一台TrinityCore服务器客户端连接网速慢(未解决)

在FreeBSD开bhyve安装Ubuntu,然后安装了TrinityCore服务器,在只是经过一层NAT,两边都是局域网的情况下,连接速度竟然很慢,慢到600ms。 服务器安装见:尝试在FreeBSD 的jail、bhyve里安装TrinityCore-CSDN博…

利用 MyBatis 动态 SQL 构建灵活的查询

利用 MyBatis 动态 SQL 构建灵活的查询 引言 MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。其中,MyBatis 的动态 SQL 功能是其强大之处之一,它允许你在 XML 映射文件中根据条件动态地构建 SQL 语句&#xff0c…

知识图谱综述

什么是知识图谱 4月 24, 2024 119 这是一个基于这个优秀而全面的知识图谱教程的教程。 来源:Aidan et al., Knowledge Graphs, https://arxiv.org/pdf/2003.02320.pdf 一、说明 在我们周围的现实世界中,物体和它们之…

仿真CAN报文发送的CRC校验算法(附CAPL代码)

文章目录 前言一、为什么CAN报文有CRC?二、怎么确定是否需要做CRC校验?三、CAPL代码实现CRC算法 前言 关于CRC校验的基本理论、算法实现网上已经有很多介绍文章,本文不再赘述。只是记录在项目测试中真正开发CRC算法并进行测试的一些体会。 …

Flink 重启策略和故障恢复策略

前言 主要总结 Flink 重启策略 官方文档 https://nightlies.apache.org/flink/flink-docs-release-1.15/zh/docs/ops/state/task_failure_recovery/https://nightlies.apache.org/flink/flink-docs-release-1.15/zh/docs/deployment/config/#fault-tolerance版本 Flink 1.15.…

rpc的仅有通信的功能,在网断的情况下,比网通情况下,内存增长会是什么原因

RPC(Remote Procedure Call,远程过程调用)主要负责在分布式系统中透明地调用远程服务,就像调用本地函数一样。它封装了网络通信的细节,使得开发者可以专注于业务逻辑而非底层通信协议。RPC通信通常包括序列化、网络传输…

leetcode 2741 特别的排列

题目描述 给你一个下标从 0 开始的整数数组 nums &#xff0c;它包含 n 个 互不相同 的正整数。如果 nums 的一个排列满足以下条件&#xff0c;我们称它是一个特别的排列&#xff1a; 对于 0 < i < n - 1 的下标 i &#xff0c;要么 nums[i] % nums[i1] 0 &#xff0c…

BERT深度学习基准模型特点与应用

BERT深度学习基准模型特点与应用 BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;是自然语言处理&#xff08;NLP&#xff09;领域的一个突破性模型&#xff0c;由Google的研究团队于2018年提出。BERT属于预训练模型&#xff0c;其核心…

LNMP环境部署指南

本文档将指导您在CentOS 6.5上部署LNMP&#xff08;Linux、Nginx、MySQL、PHP&#xff09;环境。 系统环境 系统平台&#xff1a;CentOS release 6.5 安装前准备 在安装LNMP之前&#xff0c;您需要安装一些编译器和依赖包。 必备编译器和工具 #安装gcc、gcc-c编译器&#…

43.SO_BACKLOG

属于ServerSocketChannel参数 SO_BACKLOG 设置的过小&#xff0c;高峰期有很多连接来了&#xff0c;就会被拒绝&#xff0c;报拒绝连接错误。 控制全连接队列的大小&#xff0c;可以容下适量连接。所以SO_BACKLOG设置的要大一些。 serverBootstrap.option(ChannelOption.SO_B…

深度解析百数多标签技术:让数据处理更加精准与高效

百数的多标签功能允许用户在单个表单或应用中创建多个独立的标签页&#xff0c;每个标签页可以包含不同的字段和数据。这有助于清晰组织和管理表单内容&#xff0c;使数据结构更加分明。用户可以根据需要添加、删除或重新排序标签&#xff0c;轻松管理复杂数据&#xff0c;提高…

【技巧】Leetcode 190. 颠倒二进制位【简单】

颠倒二进制位 颠倒给定的 32 位无符号整数的二进制位。 示例 1&#xff1a; 输入&#xff1a;n 00000010100101000001111010011100 输出&#xff1a;964176192 (00111001011110000010100101000000) 解释&#xff1a;输入的二进制串 00000010100101000001111010011100 表示无…

Swagger与RESTful API

1. Swagger简介 在现代软件开发中&#xff0c;RESTful API已成为应用程序间通信的一个标准。这种架构风格通过使用标准的HTTP方法来执行网络上的操作&#xff0c;简化了不同系统之间的交互。API&#xff08;应用程序编程接口&#xff09;允许不同的软件系统以一种预定义的方式…

使用 shell 脚本 统计app冷启动耗时

下面是一个 shell 脚本&#xff0c;它使用 参数将包名称作为参数--app&#xff0c;识别相应应用程序进程的 PID&#xff0c;使用 终止该进程adb shell kill&#xff0c;最后使用 重新启动该应用程序adb shell am start&#xff1a; #!/bin/bash# Check if package name is pro…

【内网安全】组策略同步-不出网隧道上线-TCP转ICMP

目录 域控-防火墙-组策略对象同步演示1、打开组策略管理&#xff0c;新建一个GPO连接 取名fhq(防火墙)2、编辑fhq并设置防火墙状态3、命令&#xff1a;gpupdate/force 更新策略4、域控主机新增规则5、域内用户主机更新规则 域控-防火墙-组策略不出网上线演示 ICMP协议上线&…

NAND闪存原厂铠侠加速推上市,预计10月完成IPO

NAND闪存原厂铠侠Kioxia拟趁着半导体市场回暖及企业财务状况显著提升的契机&#xff0c;加速推进其上市进程。 据报道&#xff0c;公司计划最快于8月底提交IPO申请&#xff0c;目标是在2024年10月末于东京证券交易所完成首次公开募股。此番上市动作不仅反映出市场复苏迹象&…

探索未来的AI革命:GPT-5的即将登场

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 目录 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌…

动手学深度学习(Pytorch版)代码实践 -计算机视觉-40目标检测和边界框

40目标检测和边界框 import torch from PIL import Image import matplotlib.pylab as plt from d2l import torch as d2lplt.figure(catdog) img Image.open(../limuPytorch/images/catdog.jpg) plt.imshow(img) plt.show()# 边界框 #save def box_corner_to_center(boxes):…

【Matlab】-- 飞蛾扑火优化算法

文章目录 文章目录 01 飞蛾扑火算法介绍02 飞蛾扑火算法伪代码03 基于Matlab的部分飞蛾扑火MFO算法04 参考文献 01 飞蛾扑火算法介绍 飞蛾扑火算法&#xff08;Moth-Flame Optimization&#xff0c;MFO&#xff09;是一种基于自然界飞蛾行为的群体智能优化算法。该算法由 Sey…

center()方法——字符串居中填充

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 语法参考 字符串对象的center()方法用于将字符串填充至指定长度&#xff0c;并将原字符串居中输出。center()方法的语法格式如下&#xff1a; str.…