RBF网络能够逼近任意非线性的函数。可以处理系统内难以解析的规律性,具有很好的泛化能力,并且具有较快的学

习速度。当网络的一个或多个可调参数(权值或阈值)对任何一个输出都有影响时,这样的网络称为全局逼近网络

由于对于每次输入,网络上的每一个权值都要调整,从而导致全局逼近网络的学习速度很慢,比如BP网络。如果对于

输入空间的某个局部区域只有少数几个连接权值影响输出,则该网络称为局部逼近网络,比如RBF网络。接下来重点

先介绍RBF网络的原理,然后给出其实现。先看如下图

正则化的RBF网络参考这里。下面是网上找的一个比较好的Python的RBF网络实现。

代码:

from scipy import *
from scipy.linalg import norm, pinvfrom matplotlib import pyplot as pltclass RBF:def __init__(self, indim, numCenters, outdim):self.indim = indimself.outdim = outdimself.numCenters = numCentersself.centers = [random.uniform(-1, 1, indim) for i in xrange(numCenters)]self.beta = 8self.W = random.random((self.numCenters, self.outdim))def _basisfunc(self, c, d):assert len(d) == self.indimreturn exp(-self.beta * norm(c-d)**2)def _calcAct(self, X):# calculate activations of RBFsG = zeros((X.shape[0], self.numCenters), 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):""" X: matrix of dimensions n x indim y: column vector of dimension n x 1 """# choose random center vectors from training setrnd_idx = random.permutation(X.shape[0])[:self.numCenters]self.centers = [X[i,:] for i in rnd_idx]print "center", self.centers# calculate activations of RBFsG = self._calcAct(X)print G# calculate output weights (pseudoinverse)self.W = dot(pinv(G), Y)def test(self, X):""" X: matrix of dimensions n x indim """G = self._calcAct(X)Y = dot(G, self.W)return Yif __name__ == '__main__':n = 100x = mgrid[-1:1:complex(0,n)].reshape(n, 1)# set y and add random noisey = sin(3*(x+0.5)**3 - 1)# y += random.normal(0, 0.1, y.shape)# rbf regressionrbf = RBF(1, 10, 1)rbf.train(x, y)z = rbf.test(x)# plot original dataplt.figure(figsize=(12, 8))plt.plot(x, y, 'k-')# plot learned modelplt.plot(x, z, 'r-', linewidth=2)# plot rbfsplt.plot(rbf.centers, zeros(rbf.numCenters), 'gs')for c in rbf.centers:# RF prediction linescx = arange(c-0.7, c+0.7, 0.01)cy = [rbf._basisfunc(array([cx_]), array([c])) for cx_ in cx]plt.plot(cx, cy, '-', color='gray', linewidth=0.2)plt.xlim(-1.2, 1.2)plt.show()

最后提供Github上的一个C++实现的RBF,供日后参考。

径向基(RBF)神经网络相关推荐

  1. 径向基RBF神经网络

    1985年,Powell提出了多变量插值的径向基函数(RBF)方法.1988年Moody和Darken提出了一种神经网络结构,即RBF神经网络,属于前向神经网络类型,它能够以任意精度逼近任意连续函数, ...

  2. RBF(径向基)神经网络

    RBF(径向基)神经网络 只要模型是一层一层的,并使用AD/BP算法,就能称作BP神经网络.RBF神经网络是其中一个特例.本文主要包括以下内容: 什么是径向基函数 RBF神经网络 RBF神经网络的学习 ...

  3. python rbf神经网络_RBF(径向基)神经网络

    只要模型是一层一层的,并使用AD/BP算法,就能称作 BP神经网络.RBF 神经网络是其中一个特例.本文主要包括以下内容: 什么是径向基函数 RBF神经网络 RBF神经网络的学习问题 RBF神经网络与 ...

  4. 高斯径向基函数(RBF)神经网络

    高斯径向基函数(RBF)神经网络 牛顿插值法-知乎 泰勒公式 径向基函数-wiki 径向基网络之bp训练 RBF网络逼近能力及其算法 线性/非线性,使用"多项式"逼近非线性,通过调 ...

  5. RBF(径向基)神经网络 非线性函数回归的实现

    径向基神将网络的神经元模型:   径向基神经王阔的节点激活函数采用径向基函数,通常定义空间任意一点到某一中心之间的欧氏距离的单调函数. 从模型可以得到,径向基神经网络的激活函数的输入向量是 输入向量和 ...

  6. 径向基RBF(radial basis function)函数、RBF神经网络、 反推(back-stepping)控制

    文章目录 1. 什么是径向基函数 1. 高斯径向基函数 2. 反演S型函数 3. 拟多二次函数 2. 正则化径向基神经网络 3. 基于RBF网络逼近的自适应控制 1. 问题描述 2. RBF 网络原理 ...

  7. 人工神经网络——径向基函数(RBF)神经网络

    此博客排版不好,重新用Markdown写了一篇,同时附上了代码,戳这里 本文摘自:<模式识别与智能计算--matlab技术实现第三版>与<matlab神经网络43个案例分析> ...

  8. 基于径向基函数RBF神经网络的非线性函数拟合研究-含Matlab代码

    目录 一.RBF神经网络基本原理 二.模型建立 三.RBF网络拟合结果分析 四.注意事项 五.参考文献 六.Matlab代码获取 一.RBF神经网络基本原理 1988年Broomhead和Lowe将径 ...

  9. 径向基函数(rbf)神经网络 基础篇 奥利给 干就完了!

    今天咱们就一起把径向基函数神经网络翻个底朝天,好好琢磨一下哈.老铁,走着. ![在这里插入图片描述](https://img-blog.csdnimg.cn/2019112613170742.png? ...

  10. 径向基函数RBF神经网络相关函数设置

    一.newrb() 该函数可以用来设计一个近似(approximate)径向基网络.其调用格式为 [net, tr]=newrb(P, T, GOAL, SPREAD, MN, DE) 其中,P为Q组 ...

最新文章

  1. MySQL 中 6 个常见的日志问题
  2. mysql 剔除字段空格
  3. python九九乘法口诀表-python 99乘法口诀表
  4. vue $set修改对象
  5. 为电商而生的知识图谱,如何感应用户需求
  6. 【产品功能】价格信息支持下载
  7. 2021年上半年移动广告流量观察白皮书
  8. python gevent asyncio_python用from gevent import monkey; monkey.patch_all()之后报ssl等错误
  9. python 24位图转 8位_Python爬取PPT模板小工具下载-Python爬取PPT模板小工具免费版下载v1.0...
  10. 计量分析类论文如何创新-化柏林
  11. java pdf在线阅读插件_JAVA实现在线查看PDF和office文档
  12. Leetcode 516.最长回文子序列
  13. 多字节常量char m='\abcd'
  14. 电脑telnet失败的解决方法
  15. Axure8有效注册码
  16. WIN10投影的无限显示器安装失败快速助手无法正常打开
  17. 在职场,光有技术是不行的,18年老程序员职场宝贵经验分享
  18. java计算机毕业设计线上文具销售系统源程序+mysql+系统+lw文档+远程调试
  19. 从0开始安装苹果cms及其资源采集和页面部分代码
  20. android微信小程序自动填表_微信“填表”类小程序,你可能根本没用对

热门文章

  1. 常用函数式接口之Consumer
  2. 任务调度之Quartz1
  3. logback 的 access 模块
  4. AnnotationConfigApplicationContext容器初始化
  5. BufferedReader_字符缓冲输入流
  6. 分隔线演练-利用参数增加分隔线的灵活度
  7. 使用Sidecar支持异构平台的微服务
  8. Dubbo + Zookeeper入门初探
  9. 第六章:系统困境之 你的努力与时代进程相逆
  10. 第一章:系统困境之 再努力也不能直接打开的死结