bp网络拟合函数 matlab_基于RBF神经网络的曲线拟合

2023-11-10

目前,在人工神经网络的实际应用中,绝大部分的神经网络模型是采用误差逆传播(error BackPropagation, BP)网络和它的变化形式径向基函数(Radial Basis Function, RBF)神经网络。RBF网络是一种高效的前馈式神经网络,它具有其他前向网络所不具有的最佳逼近性能和全局最优特性,并且结构简单,训练速度快。同时,它也是一种可以广泛应用于模式识别、非线性函数逼近等领域的神经网络模型。

1.     RBF网络的基本思想

RBF神经网络属于前向神经网络类型,网络的结构与多层前向网络类似,是一种三层的前向网络。第一层为输入层,由信号源结点组成;第二层为隐藏层,隐藏层节点数视所描述问题的需要而定,隐藏层中神经元的变换函数即径向基函数是对中心点径向对称且衰减的非负非线性函数,该函数是局部响应函数,而以前的前向网络变换函数都是全局响应的函数;第三层为输出层,它对输入模式作出响应。

用RBF作为隐单元的“基”构成隐藏层空间,隐含层对输入矢量进行变换,将低维的模式输入数据变换到高维空间内,使得在低维空间内的线性不可分的问题在高维空间内线性可分。

2.     RBF神经网络学习算法

学习算法具体步骤如下:

05f3dc218a4a65248303b64214923021.png

02e20f8cfe599a03b17303e77002ed19.png

3. RBF 神经网络拟合未知函数

d4c92056f6d2bada64230de17e1e890b.png

在使用精确( exact )径向基网络来实现非线性函数的回归例子中,共产生了301个样本,全部作为网络的训练样本,使用图形可视化来观察拟合效果。

在使用近似( approximate)径向基网络对同一函数进行拟合的例子中,共产生了400个训练数据和961个验证数据,使用400个训练数据训练RBF 网络后,使用训练好的网络来预测961个验证数据的结果,并通过可视化的方法观察RBF 神经网络的拟合效果。

4.     MATLAB 实现结果

代码运行后的结果如图2,3,4所示。

1b3adca924d8f346aa581980ee0fc160.png

ae103256f5bcde6893f217ef398c64a1.png

63ccc5a128f7d8b8643d855e0b655305.png

由图2 和图4可知,神经网络的训练结果能较好逼近该非线性函数F,由误差图可知,神经网络的预测效果在数据边缘处的误差较大,在其他数值处的拟合效果很好。网络的输出和函数值之间的差值在隐藏层神经元的个数为100 时已经接近于0 ,说明网络输出能非常好地逼近函数。

5.     MATLAB主程序代码

% % 消空环境变量

clc

clear

%%产生训练样本(训练输入,训练输出)

%ld 为样本例数

ld= 400;

%产生2 *ld 的矩阵

x = rand(2,ld);

%将x 转换到[-1.5 1.5]之间

x= (x - 0.5)*1.5*2;

%x 的第一行为x1,第二行为x2

x1 = x(1,:);

x2 = x(2 ,:);

%计算网络输出F 值

F=20+x1.^2-10*cos(2*pi*x1)+x2.^2-10*cos(2*pi*x2);

%%建立RBF 神经网络

net=newrb(x, F);

%采用approximate RBF神经网络。spread为默认值

%%建立测试样本

% generate thetesting data

interval=0.1 ;

[i, j] =meshgrid( - 1.5:interval: 1.5);

row= size( i);

tx1 = i(:);

tx1 = tx1';

tx2 = j(:);

tx2 = tx2';

tx=[tx1; tx2];

ty = sim(net,tx);

%%使用图像,画出3 维图

%真正的函数图像

interval = 0.1 ;

[x1,x2]=meshgrid(-1.5:interval:1.5);

%F=20+x1.^2-10*cos(2*pi*x1)+x2.^2-10*cos(2*pi*x2);

F=20+x1.^2-10*cos(pi*x1)+x2.^3-10*cos(pi*x2);

%%建立RBF 神经网络

subplot(1, 3,1)

mesh(x1, x2, F);

zlim([0, 60] )

title('真正的函数图像')

%网络得出的函数图像

v= reshape(ty,row);

subplot(1, 3, 2)

mesh(i,j,v);

zlim([0,60])

title('RBF神经网络结果')

%误差图像

subplot(1, 3, 3)

mesh(x1, x2,F-v);

zlim( [ 0,60])

title ('误差图像')

set(gcf,'position', [300, 250, 900, 400])

陈颖,重庆大学无线通信技术实验室硕士研究生,主研方向为无线通信智能信号处理。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

bp网络拟合函数 matlab_基于RBF神经网络的曲线拟合 的相关文章

随机推荐

  • PowerMod@快速幂取模

    图片链接 快速幂取模使用心得 看到过于大的数不要害怕 要学会细致分析 想想取模的作用 不就是帮你把大数化小了吗 include
  • 最强自动化测试框架Playwright(25)-浏览器

    Browser Playwright Python 方法 创建page页面 from playwright sync api import sync playwright def run playwright firefox playwri
  • 深度学习正则化

    在设计机器学习算法时不仅要求在训练集上误差 且希望在新样本上 的泛化能 强 许多机器学习算法都采 相关的策略来减 测试误差 这 些策略被统称为正则化 因为神经 络的强 的表示能 经常遇到过拟 合 所以需要使 不同形式的正则化策略 正则化通过
  • JavaWeb-通过表格显示数据库的信息(jsp+mysql)

    login jsp h2 登录 h2 br
  • python+numpy+pandas数据类型+类/对象

    写代码时逻辑明确 但是被各种数据类型以及对象类型搞蒙了 补习并简单记录一下 在进行数据分析之前需要对数据进行数据处理 其中就包含转化数据格式 可以先查看数据信息 再依据分析需求对进行处理 编写python程序时各种数据类型以及对象的类型以及
  • 微信测试账号 (2)-消息验证sha1签名

    在第1篇中实现了收发微信消息 但是没有做验证 本篇将介绍微信如何使用sha签名 对消息进行认证 其中安全相关的概念 如sha1散列值 签名等 可参考web安全 1 验证参数 GetMapping handler public String
  • live555 server 搭建

    一 直接下载live555MediaServer可执行程序 二 Live555在linux平台上编译 下载源码包 http www live555 com liveMedia live555 latest tar gz 1 解压 2 生成M
  • CCPC-南阳比赛总结

    打铁归来 感触好多 记得英语课上 收到晓红老师的消息 说给我们争取下了国赛的名额 我们感觉好幸运 没想到最后打铁了 这个结果也不太意外 下面说下 这几天的行程 反思 下一步的目标 15号 淄博到济南 15 16号 济南 郑州 南阳 17号
  • 如何过滤 map

    获取 EntrySet 然后正常使用 stream 的 filter 过滤 Entry 最后再转为 Map 即可 对 map 过滤 filter Test public void testMapFilter Map
  • OCJP题库1Z0-851(21/30)

    这套题我参考了这篇文章 以及一些百度上找的内容 再加上自己的解释 总结下来的详解 第1题 1 Given a pre generics implementation of a method 11 public static int sum
  • 申请被拒模板 (六)

    这里只是模板 仅供学习 出现任何问题 与博主无关 Hi xxxxx We really appreciate the time and effort you took to connect with us and apply for the
  • nginx配置详解

    一 什么是nginx nginx是一款自由的 开源的 高性能的HTTP服务器和反向代理服务器 同时也是一个IMAP POP3 SMTP代理服务器 Nginx作为一个HTTP服务器进行网络的发布处理 另外Nginx可以作为反向代理进行负载均衡
  • 【数据分析】为什么要学习分析方法?

    为什么要学习分析方法 如果你有以下这些症状 没有数据分析意识 工作由拍脑袋决定 而不是靠数据分析来支持决策 统计时的数据分析 做了很多图表 却发现不了业务中存在的问题 只会使用工具的数据分析 谈起使用工具的技巧头头是道 但是面对问题 还是不
  • 用C++实现softmax函数(面试经验)

    背景 今天面试字节算法岗时被问到的问题 让我用C 实现一个softmax函数 softmax是逻辑回归在多分类问题上的推广 大概的公式如下 i n p u t
  • Unity的C#编程教程_56_Namespace 详解

    文章目录 Namespaces Tour of Namespaces Namespaces 命名空间使得我们可以组织和管理我们的代码库 假设我们设置一个脚本名叫 Weapon using System Collections using S
  • python整段代码注释-Python中注释(多行注释和单行注释)的用法实例

    Python中注释 多行注释和单行注释 的用法实例 发布时间 2020 09 30 23 18 32 来源 脚本之家 阅读 97 前言 学会向程序中添加必要的注释 也是很重要的 注释不仅可以用来解释程序某些部分的作用和功能 用自然语言描述代
  • main.c:9:21: fatal error: sqlite3.h: 没有那个文件或目录

    今天在 Ubuntu 里看别人代码时 头文件里面有个
  • 2023普华永道中国首席数据官调研

    导读 在中国2 500家最大的上市企业中 首席数据官或类似管理岗的渗透率仅为1 3 远低于全球27 的水平 首席数据官的推广任重道远 其中 金融行业和通讯 媒体与科技行业的首席数据官或类似管理岗的数量位居前两位 也与这几个行业的数字化转型发
  • 【100天精通Python】Day48:Python Web开发_WSGI网络服务器网关接口与使用

    目录 1 WSGI接口 1 1 CGI 简介 1 2 WSGI 简介 1 3 定义 WSGI 接口 1 3 1 应用程序 Application 1 3 2 服务器 Server 1 4 WSGI 接口的使用示例 1 5 WSGI接口的优势
  • bp网络拟合函数 matlab_基于RBF神经网络的曲线拟合

    目前 在人工神经网络的实际应用中 绝大部分的神经网络模型是采用误差逆传播 error BackPropagation BP 网络和它的变化形式径向基函数 Radial Basis Function RBF 神经网络 RBF网络是一种高效的前