使用RBF神经网络完成函数拟合
文章目录
- 使用RBF网络进行函数拟合
使RBF网络进行对f(x)函数的拟合功能,其中输入为x,输出为预测的f(x) - RBF网络简介
RBF网络的结构与多层前向网络类似,它是一种三层前向网络。 输入层由信号源结点组成;第二层为隐含层,隐单元数视所描述问题的需要而定,隐单元的变换函数是RBF径向基函数,它是对中心点径向对称且衰减的非负非线性函数;第三层为输出层,它对输入模式的作用作出响应 - 使用python代码实现
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
from scipy.linalg import norm , pinvclass RBF:def __init__(self,input_dim=1,num_centers=2,out_dim=1):self.input_dim = input_dimself.num_centers = num_centersself.out_dim = out_dimself.beta = 8self.centers = [np.random.uniform(-1,1,input_dim) for i in range(num_centers)]self.W = np.random.random((self.num_centers,self.out_dim))def _basisfunc(self,c,d):return np.exp(-self.beta * norm(c-d)**2)def _calcAct(self,X):G = np.zeros((X.shape[0],self.num_centers),dtype = np.float)for ci , c in enumerate(self.centers):for xi , x in enumerate(X):G[xi , ci] = self._basisfunc(c,x)return Gdef train(self,X,Y):rnd_idx = np.random.permutation(X.shape[0])[:self.num_centers]self.centers = [X[i] for i in rnd_idx]G = self._calcAct(X)self.W = np.dot(pinv(G),Y)def predict(self,X):G = self._calcAct(X)Y = np.dot(G,self.W)return Ypassif __name__ == "__main__":x = np.arange(-1,1.1,0.1).reshape(-1,1)y = np.array([-.09602,-0.5770,-0.0729,0.3771,0.6405,0.6600,0.4609,0.1336,-0.2013,-0.4344,-0.5,-0.3930,-0.1647,0.0988,0.3072,0.3960,0.3449,0.1816,-0.0312,-0.2189,-0.3201])y_pred = np.random.rand(21)net = RBF(1,15,1)net.train(X=x,Y=y)y_pred = net.predict(x)plt.title("Radial Basis Transfer Function")plt.plot(x,y,color="green",label="f(x)")plt.plot(x,y_pred,color="blue",label = 'fitted f(x)')plt.legend()plt.xlabel("x axis")plt.ylabel("y axis")plt.savefig("RBF.jpg")
使用RBF神经网络完成函数拟合相关推荐
- 《MATLAB 神经网络43个案例分析》:第3章 遗传算法优化BP神经网络——非线性函数拟合
<MATLAB 神经网络43个案例分析>:第3章 遗传算法优化BP神经网络--非线性函数拟合 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 <MATLAB 神经网 ...
- 基于粒子群算法的神经网络非线性函数拟合
基于粒子群算法的神经网络非线性函数拟合 文章初心 最近在学机器学习,自己的方向是智能算法,课程报告需要,于是试着把机器学习和粒子群算法相结合,写出来供大家参考,交流. 文末有这部分内容相关的代码,已开 ...
- BP神经网络非线性函数拟合
基于BP神经网络的非线性函数拟合算法流程可以分为BP神经网络构建.BP神经网络训练和BP神经网络预测三步. BP神经网络构建:根据拟合非线性函数特点确定BP神经网络结构. BP神经网络训练:用非线性函 ...
- RBF(径向基)神经网络 非线性函数回归的实现
径向基神将网络的神经元模型: 径向基神经王阔的节点激活函数采用径向基函数,通常定义空间任意一点到某一中心之间的欧氏距离的单调函数. 从模型可以得到,径向基神经网络的激活函数的输入向量是 输入向量和 ...
- 基于径向基函数RBF神经网络的非线性函数拟合研究-含Matlab代码
目录 一.RBF神经网络基本原理 二.模型建立 三.RBF网络拟合结果分析 四.注意事项 五.参考文献 六.Matlab代码获取 一.RBF神经网络基本原理 1988年Broomhead和Lowe将径 ...
- matlab RBF 神经网络拟合
(1)newrb() https://www.mathworks.com/help/deeplearning/ref/newrb.html 该函数可以用来设计一个近似径向基网络(approximate ...
- Matlab/Simulink中的S函数模块嵌入人工智能、神经网络算法设计仿真案例详解(以基于RBF神经网络算法的VSG转动惯量自调节为例)
参考文献 An improved virtual synchronous generator power control strategy Deep reinforcement learning b ...
- 利用BP神经网络教计算机进行非线函数拟合
利用BP神经网络教计算机进行非线函数拟合 本图文已经更新,详细地址如下: http://blog.csdn.net/lsgo_myp/article/details/54425751
- 利用BP神经网络教计算机进行非线函数拟合(代码部分多层)
利用BP神经网络教计算机进行非线函数拟合(代码部分多层) 本图文已经更新,详细地址如下: http://blog.csdn.net/lsgo_myp/article/details/54425751
最新文章
- HDOJ-2062 :Subset sequence(DP)
- 初识html语言,初识 “HTML”
- Ubuntu 16.04下使用VMware安装CentOS 6.9然后在里面再安装KVM之后配置网桥无法上网的问题...
- Happy Number 十进制转特殊三进制
- Filebeat配置module采集nginx日志
- 搭建自动安装的linux,RedHat7搭建无人值守自动安装Linux操作系统(PXE+Kickstart)
- JMeter场景设置与监控
- 数据库学习--wildfly配置postgreSQL数据源
- Springmvc集成CXF请看教程二
- poj 2329 Nearest number - 2 这道题广搜为什么就是wa啊!!求解
- excel 转html 样式丢失,excel2010繁体转简体不见了
- 【转】腾讯云PCDN:从P2P到万物互联服务框架
- git 不abandon的办法
- 题解 CF1389B 【Array Walk】
- OEM产品验收测试用例如何编写
- 7-114 用if-else语句编程百分制成绩转换为五分制成绩
- 数组的定义与使用(一)
- php标签打印机,PHP连接打印机
- java容器都有哪些
- component has been registered but not used