by 狐狐的鹿鹿
-
RBF理解:
RBF网络为径向基网络。
基本结构:一般为两层网络,n-N-m结构。其中n为预测变量X的特征数,m为响应变量Y的特征数。即X是一个n维向量,Y是一个m维向量。如果把一个向量看作一个节点,实际上就是1-N-1。N是中心点的个数,可以从训练集中分布均匀的选取一些X作为中心点。隐层到输出则使用权值连接。基本思想:RBF网络可以逼近任意曲线或曲面或超曲面。方法是认为任何曲线都可以表示为多个正态分布的叠加。中心点的个数就是正态分布的个数。
RBF网络学习分为两个阶段:- 隐层中心点的确定。使用K-means算法,经过多次迭代后,找出N个X的聚类中心。这里不详细记录,详见K-means算法。
- 权值的调整。类似于普通的感知网络,如何修正权值W可以使用以下公式:
t为迭代轮数,eita为学习率。
2.下面给出matlab中rbf的实现:
使用newrb函数创建一个径向基网络实现函数拟合。共有21对样本,输入P = −1 : 0.1 : 1,输出
T = (−0.9602 − 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)
clear all;
P=-1:0.1:1;
T=[-0.9602 -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];
eg = 0.002 #均方误差
sc=1; # 扩展速度
net=newrb(P,T,eg,sc);
NEWRB, neurons = 0, MSE = 0.176192X21=-1:0.01:1;
A=sim(net,X21);
plot(P,T,’+’,X21,A,’-’);
title(‘Training Vectors’);