


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、径向基函数(RBF)神经网络RBF 简单说明一下为什么 RBF 网络学习收敛得比较快。当网络的一个或多个可调参数(权值或阈值对任何一个输出都有影响时,这样的网络称为全局逼近网络。由于对于每次输入,网络上的每一个权 值都要调整,从而导致全局逼近网络的学习速度很慢。BP网络就是一个典型的例子。如果对于输入空间的某个局部区域只有少数几个连接权值影响输出,则该网络称为局部逼近网络。常见的局部逼近网络有 RBF 网络、小脑模型(CMAC)网络、B 样条网络等。径向基函数解决插值问题完全内插法要求插值函数经过每个样本点,即。样本点总共有P个。RBF 的方法是要选择 P 个基函数,每个基函数对应一个训练数据
2、,各基函数形式为者叫 2 范数。,由于距离是径向同性的,因此称为径向基函数。|X-Xp|表示差向量的模,或基于为径向基函数的插值函数为:X m P,PmXp p m P,低维线性不可分的情况到高维就线性可分了。将插值条件代入:写成向量的形式为显然是个规模这P对称矩阵且与X的维度无关当可逆时有。对于一大类函数,当输入的 X 各不相同时, 就是可逆的。下面的几个函数就属于这“一大类”函数:Gauss(高斯)函数Reflected Sigmoidal(S型)函数Inverse multiquadrics(拟多二次)函数 称为径向基函数的扩展常数,它反应了函数图像的宽度, 完全内插存在一些问题:使泛化
3、能力下降。由于输入样本中包含噪声,所以我们可以设计隐藏层大小为 K,KP,从样本中选取 K 个(假设不包含噪声)作为 函数的中心。超定的,插值矩阵求逆时可能导致不稳定。拟合函数 F 的重建问题满足以下 3 个条件时,称问题为适定的:解的存在性解的唯一性解的连续性不适定问题大量存在,为解决这个问题,就引入了正则化理论。正则化理论正则化的基本思想是通过加入一个含有解的先验知识的约束来控制映射函数的光滑性,这样相似的输入就对应着相似的输出。寻找逼近函数 F(x)通过最小化下面的目标函数来实现: 是一个线性微分算子,代表了对F(x) 的先验知识。曲率过大(光滑度过低)的 F(x)通常具有较大的|DF|
4、值,因此将受到较大的惩罚。直接给出(1)式的解:权向量*(2)G(X,Xp)称为 Green 函数,G 称为 Green 矩阵。Green 函数与算子 D 的形式有关,当 D 具有旋转不变性和平移不变性时, 多元 Gauss 函数:。这类 Green 函数的一个重要例子是。正则化RBF 网络P p 的扩展常数 1,层的权值是需要训练得到的:逐一输入所有的样本,计算隐藏层上所有的Green (2)式计算权值。广义RBF 网络Cover 分。RBF 网络:从输入层到隐藏层相当于是把低维空间的数据映射到高维空间,输入层细胞个数为据进行线性分类的过程,可以采用单层感知器常用的那些学习规则,参见神经网络
5、基础和感知器。注意广义 RBF 实际上它比样本数目要少得多。因为在标准 RBF 网络中,当样本数目很大时,就需要很多基函数, RBF RBF 网相比,还有以下不同:径向基函数的中心不再限制在输入数据点上,而由训练算法确定。各径向基函数的扩展常数不再统一,而由训练算法确定。差别。因此广义 RBF 网络的设计包括: 结构设计-参数设计-各基函数的数据中心及扩展常数、输出节点的权值。下面给出计算数据中心的两种方法:数据中心从样本中选取。样本密集的地方多采集一些。各基函数采用统一的偏扩展常数:x 径向基函数太尖或太平。确定以后,根据各中心之间的距离确定对应径向基函数的扩展常数。 是重叠系数。3.W 伪
6、逆。了,因为对于广义 RBF 网络,其行数大于列数,此时数据中心的监督学习算法BP 网络的学习原理一样。同样采用梯度下降法,定义目标函数为ei为输入第 i 个样本时的误差信号。上式的输出函数中忽略了阈值。为使目标函数最小化,各参数的修正量应与其负梯度成正比,即具体计算式为本输入一轮后调整一次。目标函数也可以为瞬时值形式,即当前输入引起的误差此时参数的修正值为:下面我们就分别用本文最后提到的聚类的方法和数据中心的监督学习方法做一道练习题。考虑 Hermit 多项式的逼近问题P=100 xi 且服从xieii 为添加00.1 的正态分布。用聚类方法求数据中心和扩展常数,输出权值和阈值用伪逆法求解。
7、隐藏节点数 M=10=110个训练样本。+ View Code?#include #include #include #include #include #include #include #include #include #includematrix.husing namespace std;const int P=100;/输入样本的数vector X(P);/输入样本Matrix Y(P,1);/输入样本对应的期望输const int M=10;/隐藏层节点数目vector center(M);/M个Green函数的数据中心vector delta(M);/M个Green函数的扩展常数
8、Matrix Green(P,M);/Green矩阵Matrix Weight(M,1);/权值矩阵/*Hermit 多项式函数*/inline double Hermit(double x)return 1.1*(1-x+2*x*x)*exp(-1*x*x/2);/*产生指定区间上均匀分布的随机数*/inline double uniform(double floor,double ceil) return floor+1.0*rand()/RAND_MAX*(ceil-floor);/*产生区间floor,ceil上服从正态分布 Nmu,sigma的随机数*/inline double R
9、andomNorm(double mu,double sigma,double floor,double ceil) double x,prob,y;dox=uniform(floor,ceil);prob=1/sqrt(2*M_PI*sigma)*exp(-1*(x-mu)*(x-mu)/(2*sigma*sigma); y=1.0*rand()/RAND_MAX;while(yprob); return x;/*产生输入样本*/void generateSample() for(int i=0;iP;+i)double in=uniform(-4,4); Xi=in;Y.put(i,0,H
10、ermit(in)+RandomNorm(0,0.1,-0.3,0.3);/*寻找样本离哪个中心最近*/int nearest(const vector& center,double sample) int rect=-1;double dist=numeric_limits:max(); for(int i=0;icenter.size();+i)dist=fabs(sample-centeri); rect=i;return rect;/*计算簇的质心*/double calCenter(const vector &g) int len=g.size();double sum=0.0; f
11、or(int i=0;ilen;+i)sum+=gi; return sum/len;/*KMeans 聚类法产生数据中心*/ void KMeans()assert(P%M=0);vectorvector group(M);/记录各个聚类中包含哪些样double gap=0.001;/聚类中心的改变量小于为个值时,迭代终止for(int i=0;iM;+i)/PP个作为初始聚类中心centeri=X10*i+3;/输入是均匀分布的,所以我们均匀地选取while(1)for(int i=0;iM;+i) groupi.clear();/for(int i=0;iP;+i)/int c=near
12、est(center,Xi); groupc.push_back(Xi);vector new_center(M);/for(int i=0;iM;+i)vector g=groupi; new_centeri=calCenter(g);bool flag=false;for(int i=0;igap)flag=true; break;center=new_center; if(!flag)break;/*生成 Green 矩阵*/ void calGreen()for(int i=0;iP;+i) for(int j=0;jM;+j)Green.put(i,j,exp(-1.0*(Xi-ce
13、nterj)*(Xi-centerj)/(2*deltaj*deltaj);/*求一个矩阵的伪逆*/Matrix getGereralizedInverse(const Matrix &matrix)return (matrix.getTranspose()*matrix).getInverse()*(matrix.getTranspose();/*利用已训练好的神经网络,由输入得到输出*/ double getOutput(double x)double y=0.0; for(int i=0;iM;+i)y+=Weight.get(i,0)*exp(-1.0*(x-centeri)*(x-c
14、enteri)/(2*deltai*deltai); return y;int main(int argc,char *argv)generateSample();/产生输入和对应的期望输出样本KMeans();/对输入进行聚类,产生聚类中心sort(center.begin(),center.end();/对聚类中心(一维数据)进行排序/根据聚类中心间的距离,计算各扩展常数delta0=center1-center0; deltaM-1=centerM-1-centerM-2; for(int i=1;iM-1;+i)double d1=centeri-centeri-1; double d
15、2=centeri+1-centeri; deltai=d1d2?d1:d2;calGreen();/Green矩阵Weight=getGereralizedInverse(Green)*Y;/计算权值矩阵/根据已训练好的神经网络作几组测试for(int x=-4;x5;+x) coutxt;coutsetprecision(8)setiosflags(ios:left)setw(15); coutgetOutput(x)Hermit(x)endl;/return 0;RBF =0.001 ,M=10,初始权值为-0.1,0.1内的随机数,初始数据中心为-4,4内的随机数,初始扩展常数取0.1
16、,0.3内的随机数,目标误差为 0.9,最大训5000。+ View Code?#include #include #include #include #include #include #includeusing namespace std;const int P=100;/输入样本的数量vector X(P);/ 输 入 样 本 vector Y(P);/输入样本对应的期望输const int M=10;/隐藏层节点数目vector center(M);/M个Green函数的数据中心vector delta(M);/M个Green函数的扩展常数double GreenPM;/Green矩阵
17、vector Weight(M);/权值矩const double eta=0.001;/学习率const double ERR=0.9;/目标误差const int ITERATION_CEIL=5000;/最大训练次vector error(P);/单个样本引起的误差/*Hermit 多项式函数*/inline double Hermit(double x)return 1.1*(1-x+2*x*x)*exp(-1*x*x/2);/*产生指定区间上均匀分布的随机数*/inline double uniform(double floor,double ceil) return floor+1
18、.0*rand()/RAND_MAX*(ceil-floor);/*产生区间floor,ceil上服从正态分布 Nmu,sigma的随机数*/inline double RandomNorm(double mu,double sigma,double floor,double ceil) double x,prob,y;dox=uniform(floor,ceil);prob=1/sqrt(2*M_PI*sigma)*exp(-1*(x-mu)*(x-mu)/(2*sigma*sigma); y=1.0*rand()/RAND_MAX;while(yprob); return x;/*产生输入
19、样本*/void generateSample() for(int i=0;iP;+i)double in=uniform(-4,4); Xi=in;Yi=Hermit(in)+RandomNorm(0,0.1,-0.3,0.3);/*给向量赋予floor,ceil上的随机值*/void initVector(vector &vec,double floor,double ceil)for(int i=0;ivec.size();+i) veci=uniform(floor,ceil);/*根据网络,由输入得到输出*/ double getOutput(double x)double y=0.0; for(int i=0;iM;+i)y+=Weighti*exp(-1.0*(x-centeri)*(x-centeri)/(2*deltai*deltai); return y;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江苏省南通市如皋市2025年高三2月网上月考(开学)生物试题含解析
- 建筑材料采购合同资料
- 新疆维吾尔乌鲁木齐市沙依巴克区2024-2025学年四年级数学第二学期期末质量检测模拟试题含解析
- 企业人力资源服务合同外包协议2025
- 版云存储仓库租赁合同
- 河南省濮阳市清丰县2024-2025学年八年级下学期4月期中地理试题(含答案)
- 二手住宅式房屋买卖合同
- 小学政治 (道德与法治)人教部编版四年级上册7 健康看电视获奖第一课时教案设计
- 初中数学现实中的变量教学课件 2024-2025学年七年级数学下册(北师大版2024)
- 中国古典舞身段训练
- 7.3 重力(课件)2024-2025学年人教版八年级物理下册
- 现代物流园区的应急物资储备与调配
- 2025年河南省高职单招计算机类职业技能测试题库及答案(供参考)
- 气管切开拔管指征及护理
- DB11-T 1390.4-2018 环卫车辆功能要求 第4部分:餐厨废弃油脂运输车辆
- 化工生产基础知识习题库
- 2024年医疗大数据分析与应用项目合同
- 2025风电机组无人机巡检技术方案
- 大学武术知到智慧树章节测试课后答案2024年秋浙江大学
- 2025年中移铁通限公司公开招聘工作人员100名高频重点提升(共500题)附带答案详解
- 2025年度学院学术委员会专家聘用合同3篇
评论
0/150
提交评论