RBF神经网络设计

合集下载

绝对经典RBF神经网络

绝对经典RBF神经网络
输出函数线性中包含阈值参数, 用于赔偿基函数在样本集上
平均值与目标值之平均值之间差异。
第6页
函数迫近问题(内插值)
普通函数都可表示成一组基函数线性组合,
RBF网络相当于用隐层单元输出组成一组基函数,
然后用输出层来进行线性组合,以完成迫近功效。
①给定样本数据
P {p1, p2 pi pQ},
②寻找函数,使其满足:ti F ( pi )
各隐节点扩展常数。因为RBF网隐节点数对其泛化能力有
极大影响,所以寻找能确定聚类数目标合理方法,是聚类
方法设计RBF网时需首先处理问题。除聚类算法外,还有
绝对经典RBF神经网络 梯度训练方法、资源分配网络(RAN)等
第16页
一. 自组织中心选取法
1989年,Moody和Darken提出了一个由两个阶段组成混合 学习过程思绪。
Cover定理能够定性地表述为:将复杂模式分类问题非线 性地投射到高维空间将比投射到低维空间更可能是线性可 分
空间转换
低维空间:线性不可分
高维空间:线性可分
绝对经典RBF神经网络
第12页
举例:逻辑运算异或分类
X1 X2
空间变换前
绝对经典RBF神经网络
Φ1(x)
w11
Φ2(x)
w11
Output y
j 1
设第j 个隐节点在第i个样本输出为: ij G( pi p j )
可矩阵表示:W T,若R可逆,则解为 W 1T 依据Micchelli定理可得,假如隐节点激活函数采取
径向基函数,且p1, p2 ,..., pQ 各不相同,则线性方程组
有唯一解。 Q RBF网络输出 F( pi ) wj( pi cj )
% 每一层神经元权值和阈值都与径向基函数位置和宽度相关系,输出层线性神经元将这些径 向基函数权值相加。假如隐含层神经元数目足够,每一层权值和阈值正确,那么径向基函 数网络就完全能够准确迫近任意函数。

实验四、RBF神经网络实验报告

实验四、RBF神经网络实验报告
简单说明一下为什么RBF网络学习收敛得比较快。当网络的一个或多个可调参数(权值或阈值)对任何一个输出都有影响时,这样的网络称为全局逼近网络。由于对于每次输入,网络上的每一个权值都要调整,从而导致全局逼近网络的学习速度很慢。BP网络就是一个典型的例子。
如果对于输入空间的某个局部区域只有少数几个连接权值影响输出,则该网络称为局部逼近网络。常见的局部逼近网络有RBF网络、小脑模型(CMAC)网络、B样条网络等。
广义RBF网络
Cover定理指出:将复杂的模式分类问题非线性地映射到高维空间将比投影到低维空间更可能线性可分。
广义RBF网络:从输入层到隐藏层相当于是把低维空间的数据映射到高维空间,输入层细胞个数为样本的维度,所以隐藏层细胞个数一定要比输入层细胞个数多。从隐藏层到输出层是对高维空间的数据进行线性分类的过程,可以采用单层感知器常用的那些学习规则,参见神经网络基础和感知器。
寻找逼近函数F(x)通过最小化下面的目标函数来实现:
加式的第一项好理解,这是均方误差,寻找最优的逼近函数,自然要使均方误差最小。第二项是用来控制逼近函数光滑程度的,称为正则化项,λ是正则化参数,D是一个线性微分算子,代表了对F(x)的先验知识。曲率过大(光滑度过低)的F(x)通常具有较大的||DF||值,因此将受到较大的惩罚。
3)Inverse multiquadrics(拟多二次)函数
σ称为径向基函数的扩展常数,它反应了函数图像的宽度,σ越小,宽度越窄,函数越具有选择性。
完全内插存在一些问题:
1)插值曲面必须经过所有样本点,当样本中包含噪声时,神经网络将拟合出一个错误的曲面,从而使泛化能力下降。K,K<P,从样本中选取K个(假设不包含噪声)作为Φ函数的中心。
隐藏层的作用是把向量从低维m映射到高维P,低维线性不可分的情况到高维就线性可分了。

RBF神经网络算法研究及其在高维数据预处理中的应用

RBF神经网络算法研究及其在高维数据预处理中的应用

摘要当今人类社会已经进入了大数据时代,数据大多呈现出维数高、规模大、结构复杂等特性。

在大数据的研究当中,许多数据如媒体数据、遥感数据、生物医学数据、社交网络数据、金融数据等都是高维数据,尤其是在人类生产生活中,含高维数据的无解析模型或一次候选解的评价计算成本十分巨大的昂贵多目标问题,对其仿真求解势必面临维数灾难。

因此,寻找合适的降维方法处理高维数据已是迫切需求。

神经网络是模拟人脑的结构和功能而建立起来的分布式信息处理系统,面对高维多目标优化等非线性问题,与其他降维方法相比,神经网络具有巨大的优势,这得益于神经网络具有高度非线性、结构复杂、自学习、自适应等特点。

RBF神经网络是一种新颖有效的前馈式神经网络,它具有很强的非线性映射能力,能以任意精度全局逼近一个非线性函数,而且学习速度快。

利用RBF神经网络实现对高维数据的降维预处理,不仅有充分的理论依据,而且更具优越性。

本文在对RBF神经网络算法进行优化研究的基础上,研究了基于数据驱动的特征选择RBF 神经网络降维方法,并将其应用在高维多目标优化决策空间降维预处理及Pareto 优劣性预测中。

为了提高RBF神经网络的学习效率,本文首先对RBF神经网络进行改进研究。

通过自适应调节RBF神经网络的学习率和动量因子,加快了RBF神经网络的收敛速度;同时,利用遗传算法对RBF神经网络的三个参数初始值进行优化设计,提出了一种遗传自适应RBF神经网络算法。

将改进算法分别应用于故障诊断和UCI数据集的分类实验上,验证了改进RBF神经网络算法的有效性和优越性。

针对无解析模型的高维多目标优化问题,提出了一种最大信息系数与最大相关最小冗余相结合的特征选择方法,利用遗传自适应RBF神经网络算法在高维特征空间中选取出了一个低维的特征子集,从而实现对高维特征空间的降维。

通过在UCI数据集上的分类实验,证明了该降维算法在保证较好分类精度的前提下,大大减少了计算成本。

为了降低高维多目标优化的维数灾难,将本文提出的基于最大冗余最小相关的遗传自适应RBF神经网络特征选择算法用于多目标优化中的决策空间降维预处理,进行Pareto优劣性预测并将其嵌入MOEAs算法。

RBF神经网络在智能传感器模块设计中的应用

RBF神经网络在智能传感器模块设计中的应用

其 中 : . 网络 隐层 第 i 神经元的总输 入 ; . 第 i n为 个 b为 个 神经元的偏置值 ;0 9 为隐层权值矩 阵的第 i 个行 向量的 第j 个元素 ; ; 第 i P是 ; 个输入向量的 j 时刻输入值 。
R F神 经网络的输出层通常是纯线性神经 元 ,只是其 B
的特征输 入点 ,那 么其对 应的输 出应趋 于 1;2) ( 对于 非
样 本点输 入 ,输入与特征 输入 的点距离越远 ,则神经元 的 输 出越小 。 因此 , B R F神经网络 的输入权值是 由样本决定的 ,
而 与期望输 出并没有太大关系 。
R 神 经 网络Malb 程 序 BF t 源 a
O5 . 0
60 .
6O . 7O .
2 . 50
2 . 5O 2 . 5O
06 .
O6 . O7 .
56 .2
56 .2 65 .6
22 2 .3
28 9 .1 03 1 .2


01 .
02 .
70 .
70 .
2 . 50
2 . 5O
个) 传感 器系统 ; 若欲消 除 n 个干 扰量 的影响 ,则 需测量
n 1个参量的多 (+ 个 ) + n1 传感 器系统。 人工 神经网络具有较 强的非线性 映射 能力 、较好 的学 习和容错能 力 ,在 函数逼近 、预测 、信号处理 、控制系统 领域 中得到广泛 的应用 。径 向基 ( BF 神经 网络是 一种典 R ) 型 的性 能 良好的三层前馈 局部人工 神经网络 ,具有 较快 的 训练速 度和 非线性能 力 ,能以任意精 度全局逼迫 一个非线 性 函数 ,使 其在 很 多领 域得 到 广泛 应 用。本 文 采用 R F B 神 经网络 ,监测干扰 量温度 T的温度传感器的输 出电压为 U ,监测干扰量恒流源供 电电流 I 电流传感器的输 出电压 T 的 u ,改善压 阻式 压力 传感器 (C -0 ) . J Y 2 1 的温 度稳定 性与 恒

基于RBF神经网络整定的PID控制器设计及及认真设计

基于RBF神经网络整定的PID控制器设计及及认真设计

基于RBF神经网络整定的PID控制器设计及仿真摘要目前,因为PID控制具有简单的控制结构,可通过调节比例积分和微分取得基本满意的控制性能,在实际应用中又较易于整定,所以广泛应用于过程控制和运动控制中,尤其在可建立精确模型的确定性控制系统中应用比较多。

然而随着现代工业过程的日益复杂,对控制要求的逐步增高(如稳定性、准确性、快速性等),经典控制理论面临着严重的挑战。

对工业控制领域中非线性系统,采用传统PID 控制不能获得满意的控制效果。

采用基于梯度下降算法优化RBF神经网络,它将神经网络和PID控制技术融为一体,既具有常规PID控制器结构简单、物理意义明确的优点,同时又具有神经网络自学习、自适应的功能。

因此,本文通过对RBF神经网络的结构和计算方法的学习,设计一个基于RBF神经网络整定的PID控制器,构建其模型,进而编写M语言程序。

运用MATLAB软件对所设计的RBF神经网络整定的PID控制算法进行仿真研究。

然后再进一步通过仿真实验数据,研究本控制系统的稳定性,鲁棒性,抗干扰能力等。

关键词:PID;RBF神经网络;参数整定SETTING OF THE PID CONTROLLER BASED ON RBF NEURAL NETWORK DESIGN AND SIMULATIONAbstractAt present, because the PID control has a simple control structure, through adjusting the proportional integral and differential gain basic satisfactory control performance, and is relatively easy to setting in practical application, so widely used in process control and motion control, especially in the accurate model can be built more deterministic control system application. With the increasingly complex of the modern industrial process, however, increased step by step to control requirements (e.g., stability, accuracy and quickness, etc.), classical control theory is faced with severe challenges. Non-linear systems in industrial control field, using the traditional PID control can not obtain satisfactory control effect. Optimized RBF neural network based on gradient descent algorithm, it will be integrated neural network and PID control technology, with a conventional PID controller has simple structure, physical meaning is clear advantages, at the same time with neural network self-learning, adaptive function. Therefore, this article through to the RBF neural network structure and the calculation method of learning, to design a setting of the PID controller based on RBF neural network, constructs its model, and then write M language program. Using the MATLAB software to design the RBF neural network settingof PID control algorithm simulation research. Data and then further through simulation experiment, the control system stability, robustness, anti-interference ability, etc.Keywords: PID; RBF neural network; Parameter setting目录摘要 (Ⅰ)Abstract (Ⅱ)1 绪论 (1)1.1 课题研究背景及意义 (1)1.2神经网络的发展历史 (2)1.3本课题研究的主要内容 (5)2 神经网络 (6)2.1神经网络的基本概念和特点 (6)2.2人工神经网络构成的基本原理 (6)2.3神经网络的结构 (7)2.3.1前馈网络 (7)2.3.2 反馈网络 (7)2.4神经网络的学习方式 (8)2.4.1监督学习(有教师学习) (8)2.4.2非监督学习(无教师学习) (8)2.4.3再励学习(强化学习) (9)2.5 RBF神经网络 (9)2.5.1 RBF神经网络的发展简史 (9)2.5.2 RBF的数学模型 (9)2.5.3被控对象Jacobian信息的辨识算法 (10)2.5.4 RBF神经网络的学习算法 (11)2.6 本章小结 (13)3 PID控制器 (13)3.1 PID控制器简介 (13)3.2 经典PID控制原理 (13)3.3 现有PID控制器参数整定方法 (15)3.4 PID控制的局限 (15)3.5本章小结 (16)4 基于RBF神经网络整定的PID控制器设计 (17)4.1 RBF神经网络的PID整定原理 (17)4.2 神经网络PID控制器的设计 (17)4.3 本章小结 (18)5 仿真分析 (19)5.1 系统的稳定性分析 (19)5.2 系统抗干扰能力分析 (20)5.3 系统鲁棒性分析 (22)5.4 本章小结 (23)结论 (24)参考文献 (25)致谢 (26)附录仿真程序 (27)1 绪论1.1 课题研究背景及意义PID控制器(按比例、积分和微分进行控制的调节器)是最早发展起来的应用经典控制理论的控制策略之一,是工业过程控制中应用最广泛,历史最悠久,生命力最强的控制方式,在目前的工业生产中,90%以上的控制器为PID控制器。

RBF神经网络

RBF神经网络

的权向量为:W = [w , w
1
b j为节点的基宽度参数 , 且为大于零的数 。 网络 为节点的基宽度参数, 且为大于零的数。
2
⋯wj ⋯wm ]
k时刻网络的输出为: 时刻网络的输出为:
y m ( k )=wh = w1h1+w 2 h2+ ⋯⋯ +w m hm
设理想输出为y(k), 设理想输出为y(k),则性能指标函数为:
∂y (k ) ∂ym (k ) ≈ = ∂u (k ) ∂u (k )
m
∑w h
j =1
c1 j − x1 b2 j
j j
其中取 x1 = u(k) 。
6 RBF网络逼近仿真实例 RBF网络逼近仿真实例
使用RBF网络逼近下列对象:
y (k ) = u (k ) +
3
y ( k − 1) 1 + y ( k − 1)
Ii
wij
I
j
I1
. . .
R1
. . .
. .u .
u ..
R
j
. . .
1
1
.
V1
C1
. . .
j
j
.
Vj
.
u ..
Cj
i
i
.V
i
Ri
.
Ci
Hopfield网络模型 Hopfield网络模型
RBF神经网络 RBF神经网络
信息工程学院 Alen Fielding
1 RBF神经网络 RBF神经网络
径向基函数(RBF径向基函数(RBF-Radial Basis Function)神经网络 Function)神经网络 是由J Moody和 Darken在80年代末提出的一种神经 是由J.Moody和C.Darken在80年代末提出的一种神经 网络,它是具有单隐层的三层前馈网络。 网络,它是具有单隐层的三层前馈网络。由于它模拟 了人脑中局部调整、相互覆盖接收域(或称感受野了人脑中局部调整、相互覆盖接收域(或称感受野Receptive Field)的神经网络结构,因此,RBF网络 Field)的神经网络结构,因此,RBF网络 是一种局部逼近网络, 是一种局部逼近网络 , 它能够以任意精度逼近任意 连续函数,特别适合于解决分类问题。 连续函数,特别适合于解决分类问题。

基于遗传算法的RBF神经网络设计

基于遗传算法的RBF神经网络设计

1998年3月重庆大学学报 (自然科学版)V ol.21,№.2第21卷第2期J o urnal o f Ch ongqing U niv er sity(N atura l Science Editio n)M ar.1998基于遗传算法的RBF神经网络设计黄席樾 刘菡萏 石为人(重庆大学自动化系,重庆,400044;第一作者54岁,男,教授) 摘 要 采用了遗传算法自动构造RBF网络,把网络结构的形式作为一个子集选择问题来解决,并提出了新的遗传操作算子来改进遗传算法,加快了收敛速度,提高了算法的实用性。

文中介绍了遗传算法的结构与优化原理,并给出了RBF网络结构的生成方法,用仿真结果证明了本算法的可行性。

关键词 系统辩识/遗传算法;RBF网络;网络结构 中国图书资料分类法分类号 TP273.220 引 言非线性系统的控制是人们面临的一大难题。

神经网络以其逼近非线性函数的能力而被广泛用于解决非线性系统的控制问题。

对于连续系统,由于径向基函数(Radial basis Func-tion,简称RBF)神经网络的可调参数与网络的输出呈线性关系而用作非线性系统的模型,用于非线性连续系统的自动控制系统中。

然而,如何设计RBF神经网络结构,至今没有系统的规则可循。

目前训练RBF网络的方法大致分为两类:1)学习隐层的中心向量和宽度;2)学习隐层到输出层的连接权重。

在这些学习算法中,网络结构或隐层结点数目是基于先验知识预定的[1]。

但是,RBF网络结构是关于隐层结点数、中心向量和连接权的最小化问题。

由于隐层结点数是不连续和不可微的,而传统优化方法需要对象函数的导数信息,当对象函数是多模态时,存在很多局部极小,传统优化方法很可能陷入这些局部极小。

而且,当考虑网络结构和参数时,搜索空间实际上是无限的,对传统优化方法来说在计算上是不可能实现的。

由于这些原因,许多传统优化方法,例如随机法、梯度下降法、仿真退火法等,应用于完成搜索时都存在着很多问题。

Python实现的径向基(RBF)神经网络示例

Python实现的径向基(RBF)神经网络示例

Python实现的径向基(RBF)神经⽹络⽰例本⽂实例讲述了Python实现的径向基(RBF)神经⽹络。

分享给⼤家供⼤家参考,具体如下:from numpy import array, append, vstack, transpose, reshape, \dot, true_divide, mean, exp, sqrt, log, \loadtxt, savetxt, zeros, frombufferfrom numpy.linalg import norm, lstsqfrom multiprocessing import Process, Arrayfrom random import samplefrom time import timefrom sys import stdoutfrom ctypes import c_doublefrom h5py import Filedef metrics(a, b):return norm(a - b)def gaussian (x, mu, sigma):return exp(- metrics(mu, x)**2 / (2 * sigma**2))def multiQuadric (x, mu, sigma):return pow(metrics(mu,x)**2 + sigma**2, 0.5)def invMultiQuadric (x, mu, sigma):return pow(metrics(mu,x)**2 + sigma**2, -0.5)def plateSpine (x,mu):r = metrics(mu,x)return (r**2) * log(r)class Rbf:def __init__(self, prefix = 'rbf', workers = 4, extra_neurons = 0, from_files = None):self.prefix = prefixself.workers = workersself.extra_neurons = extra_neurons# Import partial modelif from_files is not None:w_handle = self.w_handle = File(from_files['w'], 'r')mu_handle = self.mu_handle = File(from_files['mu'], 'r')sigma_handle = self.sigma_handle = File(from_files['sigma'], 'r')self.w = w_handle['w']self.mu = mu_handle['mu']self.sigmas = sigma_handle['sigmas']self.neurons = self.sigmas.shape[0]def _calculate_error(self, y):self.error = mean(abs(self.os - y))self.relative_error = true_divide(self.error, mean(y))def _generate_mu(self, x):n = self.nextra_neurons = self.extra_neurons# TODO: Make reusablemu_clusters = loadtxt('clusters100.txt', delimiter='\t')mu_indices = sample(range(n), extra_neurons)mu_new = x[mu_indices, :]mu = vstack((mu_clusters, mu_new))return mudef _calculate_sigmas(self):neurons = self.neuronsmu = self.musigmas = zeros((neurons, ))for i in xrange(neurons):dists = [0 for _ in xrange(neurons)]for j in xrange(neurons):if i != j:dists[j] = metrics(mu[i], mu[j])sigmas[i] = mean(dists)* 2# max(dists) / sqrt(neurons * 2))return sigmasdef _calculate_phi(self, x):C = self.workersneurons = self.neuronsmu = self.musigmas = self.sigmasphi = self.phi = Nonen = self.ndef heavy_lifting(c, phi):s = jobs[c][1] - jobs[c][0]for k, i in enumerate(xrange(jobs[c][0], jobs[c][1])):for j in xrange(neurons):# phi[i, j] = metrics(x[i,:], mu[j])**3)# phi[i, j] = plateSpine(x[i,:], mu[j]))# phi[i, j] = invMultiQuadric(x[i,:], mu[j], sigmas[j]))phi[i, j] = multiQuadric(x[i,:], mu[j], sigmas[j])# phi[i, j] = gaussian(x[i,:], mu[j], sigmas[j]))if k % 1000 == 0:percent = true_divide(k, s)*100print(c, ': {:2.2f}%'.format(percent))print(c, ': Done')# distributing the work between 4 workersshared_array = Array(c_double, n * neurons)phi = frombuffer(shared_array.get_obj())phi = phi.reshape((n, neurons))jobs = []workers = []p = n / Cm = n % Cfor c in range(C):jobs.append((c*p, (c+1)*p + (m if c == C-1 else 0)))worker = Process(target = heavy_lifting, args = (c, phi))workers.append(worker)worker.start()for worker in workers:worker.join()return phidef _do_algebra(self, y):phi = self.phiw = lstsq(phi, y)[0]os = dot(w, transpose(phi))return w, os# Saving to HDF5os_h5 = os_handle.create_dataset('os', data = os)def train(self, x, y):self.n = x.shape[0]## Initialize HDF5 cachesprefix = self.prefixpostfix = str(self.n) + '-' + str(self.extra_neurons) + '.hdf5'name_template = prefix + '-{}-' + postfixphi_handle = self.phi_handle = File(name_template.format('phi'), 'w')os_handle = self.w_handle = File(name_template.format('os'), 'w')w_handle = self.w_handle = File(name_template.format('w'), 'w')mu_handle = self.mu_handle = File(name_template.format('mu'), 'w')sigma_handle = self.sigma_handle = File(name_template.format('sigma'), 'w') ## Mu generationmu = self.mu = self._generate_mu(x)self.neurons = mu.shape[0]print('({} neurons)'.format(self.neurons))# Save to HDF5mu_h5 = mu_handle.create_dataset('mu', data = mu)## Sigma calculationprint('Calculating Sigma...')sigmas = self.sigmas = self._calculate_sigmas()# Save to HDF5sigmas_h5 = sigma_handle.create_dataset('sigmas', data = sigmas)print('Done')## Phi calculationprint('Calculating Phi...')phi = self.phi = self._calculate_phi(x)print('Done')# Saving to HDF5print('Serializing...')phi_h5 = phi_handle.create_dataset('phi', data = phi)del phiself.phi = phi_h5print('Done')## Algebraprint('Doing final algebra...')w, os = self.w, _ = self._do_algebra(y)# Saving to HDF5w_h5 = w_handle.create_dataset('w', data = w)os_h5 = os_handle.create_dataset('os', data = os)## Calculate errorself._calculate_error(y)print('Done')def predict(self, test_data):mu = self.mu = self.mu.valuesigmas = self.sigmas = self.sigmas.valuew = self.w = self.w.valueprint('Calculating phi for test data...')phi = self._calculate_phi(test_data)os = dot(w, transpose(phi))savetxt('iok3834.txt', os, delimiter='\n')return os@propertydef summary(self):return '\n'.join( \['-----------------','Training set size: {}'.format(self.n),'Hidden layer size: {}'.format(self.neurons),'-----------------','Absolute error : {:02.2f}'.format(self.error),'Relative error : {:02.2f}%'.format(self.relative_error * 100)])def predict(test_data):mu = File('rbf-mu-212243-2400.hdf5', 'r')['mu'].valuesigmas = File('rbf-sigma-212243-2400.hdf5', 'r')['sigmas'].valuew = File('rbf-w-212243-2400.hdf5', 'r')['w'].valuen = test_data.shape[0]neur = mu.shape[0]mu = transpose(mu)mu.reshape((n, neur))phi = zeros((n, neur))for i in range(n):for j in range(neur):phi[i, j] = multiQuadric(test_data[i,:], mu[j], sigmas[j])os = dot(w, transpose(phi))savetxt('iok3834.txt', os, delimiter='\n')return os更多关于Python相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》及《》希望本⽂所述对⼤家Python程序设计有所帮助。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

rbf_simulate_data.dat文件 内容及格式
rbf_train_target_data.dat文件内容及格式
四、RBF网络应用于模式分类
(2)设置径向基函数的分布密度 Spread 为径向基层的分布密度,又称散布常数,默认值为 1 。散布常数是 RBF网络设计过程中一个非常重要的参数。一般情况下,散布常数应该足够大, 使得神经元响应区域覆盖所有输入区间。 (3)调用newrb构建并训练径向基函数神经网络; 在MATLAB中,构建径向基函数网络的函数文件有两个,分别为newrbe( )函数 和newrb()函数。应用newrbe( )函数可以快速设计一个径向基函数网络,并且 使得设计误差为0,调用方式如下: net=newrbe(p,t,spread); 其中,p为输入向量;t为期望输出向量(目标值),spread为径向基层的散布 常数,默认值为1。输出为一个径向基网络,其权值和阈值完全满足输入和期望 值关系要求。 由newrbe( )函数构建的径向基函数网络,其径向基层(第一层)神经元数 目等于输入向量的个数,那么在输入向量较多的情况下,则需要很多的神经元, 这就给网络设计带来一定的难度。函数 newrb( )则可自动增加网络的隐含层神 经元数目,直到均方差满足精度或神经元数目达到最大为止。
四、RBF网络应用于模式分类
基于MATLAB的RBF模式分类程序如下: clear; clc; %网络训练目标 pConvert=importdata('C:\Users\Administrator\Desktop\RBF\rbf_train_sample_dat a.dat'); p=pConvert'; t=importdata('C:\Users\Administrator\Desktop\RBF\rbf_train_target_data.dat'); plot3(p(1,:),p(2,:),p(3,:),'o'); grid;box; for i=1:29,text(p(1,i),p(2,i),p(3,i),sprintf(' %g',t(i))),end hold off f=t'; index1=find(f==1); index2=find(f==2); index3=find(f==3); index4=find(f==4);
基于RBF网络数据分类设计
主 单
讲:周润景 教授 位:电子信息工程学院
目 录
RBF神经网络简介 径向基函数的网络结构 径向基函数网络参数选择
RBF网络应用于模式分类 总结
一. RBF神经网络简介
从对函数的逼近功能而言,神经网络可分为全局逼近和局部逼近。
局部逼近网络具有学习速度快的优点。径向基函数( Radial Basis Function,RBF)就属于局部逼近神经网络。
四、RBF网络应用于模式分类
运行程序后,系统首先输出训练用样本及其类别分类图,如下图a所示。 接着输出RBF网络的训练结果图,如下图b所示。
图a 训练用样本及其类别分类图
图b RBF网络的训练结果图
RBF网络结果与原始数据对比
序 号
4
A
864.45
B
1647.31
C
2665.9
目标结果
1
RBF网络分类结果
输入层到隐含层为非线性映射,基函数是高斯函数:
|| x - ci ||2 Ri x exp 2 2 i
二.径向基函数的网络结构
RBF神经网络的拓扑结构是一种三层前向网络: 输入层由信号源结点构成,仅起到数据信息的传递作用,对输入信
息不进行任何变换;
第二层为隐含层,结点数视需要而定,隐含层神经元的核函数(作 用函数)为高斯函数,对输入信息进行空间映射变换;
径 向 基 函 数 RBF 神 经 网 络 ( 简 称 径 向 基 网 络 ) 是 由 J.Moody 和
C.Darken于20世纪80年代末提出的一种神经网络结构,RBF神经网 络是一种性能良好的前向网络,具有最佳逼近及克服局部极小值问
题的性能。
二.径向基函数的网络结构
径向基函数的网络结构
二.径向基函数的网络结构
1
6
16 25 8 14
877.88
1418.79 1449.58 2352.12 2297.28
2031.66
1775.89 1641.58 2557.04 3340.14
3071.18
2772.9 3405.12 1411.53 535.62
1
1 1 2 2
1
1 1 2 2
15
18 19 22 24 1
四、RBF网络应用于模式分类
24 1 3 7 11 17 20 21 26 2 5 9 10 12 13 23 27 28 29 2063.54 1739.94 1756.77 1803.58 1571.17 1845.59 1692.62 1680.67 1651.52 373.3 222.85 401.3 363.34 104.8 499.85 172.78 341.59 291.02 237.63 3199.76 1675.15 1652 1583.12 1731.04 1918.81 1867.5 1575.78 1713.28 3087.05 3059.54 3259.94 3477.95 3389.83 3305.75 3084.49 3076.62 3095.68 3077.78 1257.21 2395.96 1514.98 2163.05 1735.33 2226.49 2108.97 1725.1 1570.38 2429.47 2002.33 2150.98 2462.86 2421.83 2196.22 2328.65 2438.63 2088.95 2251.96 2 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4
2092.62
2205.36 2949.16 2802.88 2063.54 1739.94
3177.21
3243.74 3244.44 3017.11 3199.76 1675.15
Байду номын сангаас
584.32
1202.69 662.42 1984.98 1257.21 2395.96
2
2 2 2 2 3
2
2 2 2 2 3
四、RBF网络应用于模式分类
将排序后的数据及其类别绘制在三维图中直观地表示出来,作为 RBF网络训练时应达到的目标。排序后的数据及其类别的三维图如下图 所示。
四、RBF网络应用于模式分类
将样本数据及分类结果分别存放到“.dat”文件中。数据文件内容及格式如下图 所示。
rbf_train_sample_data.dat 文件内容及格式
四、RBF网络应用于模式分类
newrb定义为net= newrb(p,t,GOAL,SPREAD,MN,DF),各个参数的定义如下: P——Q个输入向量的R×Q维矩阵。这里Q=29,R=3 T——Q个目标类别向量的S×Q维矩阵。这里S=1 GOAL——期望的均方误差值,默认时为0.0。这里选择默认值 SPREAD——径向基函数的散布常数,默认时为1.0 MN——神经元的最大数目,默认时等于Q。这里设置为28 DF——每次显示时增加的神经元数目,默认时为25,并且返回一个新的径向基 函数网络。这里设置为2。 (4)调用sim,测试RBF网络的训练效果 (5)再次调用sim识别样本所属类别
第三层为输出层,它对输入模式做出响应,输出层神经元的作用函
数为线性函数,对隐含层神经元输出的信息进行线性加权后输出, 作为整个神经网络的输出结果。
三.径向基函数网络参数选择
四、RBF网络应用于模式分类
以酒瓶分类三元色数据为例,希望将数据按照颜色数据所表征的特 点,将数据按各自所属的类别归类。其中,前29组数据已确定类别, 后30组数据待确定类别。 (1)从样本数据库中获取训练数据 取前29组数据作为训练样本。为了编程方便,先对这29组数据按 类别进行升序排序。重新排序后的数据如下表所示。
四、RBF网络应用于模式分类
line(p(1,index1),p(2,index1),p(3,index1),'linestyle','none','marker','*','color','g'); line(p(1,index2),p(2,index2),p(3,index2),'linestyle','none','marker','*','color','r'); line(p(1,index3),p(2,index3),p(3,index3),'linestyle','none','marker','+','color','b'); line(p(1,index4),p(2,index4),p(3,index4),'linestyle','none','marker','+','color','y'); box;grid on;hold on; axis([0 3500 0 3500 0 3500]); title('训练用样本及其类别'); xlabel('A'); ylabel('B'); zlabel('C'); % RBF网络的创建和训练过程 net=newrb(p,t,0,410,28,2); A=sim(net,p) plot3(p(1,:),p(2,:),p(3,:),'r .'),grid;box; axis([0 3500 0 3500 0 3500]) for i=1:29,text(p(1,i),p(2,i),p(3,i),sprintf(' %g',A(i))),end hold off f=A';
相关文档
最新文档