神经网络试验演示文稿

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

以输入向量为横坐标,期望值为纵坐标, 绘制训练用样本的数据点,如图:
目的找到一个函数能够满足这21个数据点 的输入/输出关系。本例通过构建径向基函 数网络来进行曲线拟合。 三.网络设计 . 设计一个径向基函数网络,网络有两层, 隐层为径向基神经元,输出层为线形性神 经元。 绘制隐层神经元径向基传递函数的曲线, 如图:
输入样本数据
实验结果
程序代码
include<iostream> #include<fstream> using namespace std; int main() { double d[3]={-1,-1,1}; double w[4][1]={{0.5},{1},{-1},{0}};//初始权向量 double anta=0.1; double netj; double x[5][4],o[3]; int i,j,k; ifstream infile("f1.txt",ios::in); if(!infile) { cerr<<"open error!"<<endl; exit(1); } for(j=0;j<3;j++) { for(i=0;i<4;i++) { infile>>x[i][j]; infile.ignore(); } }
for(i=0;i<4;i++) { w[i][0]=w[i][0]+anta*(d[k]-o[k])*x[i][k]; cout<<w[i][0]<<','; } cout<<endl; ++k; }
if((d[0]==o[0])&&(d[1]==o[1])&&(d[2]==o[2])) { cout<<"(d[0]==o[0])&&(d[1]==o[1])&&(d[2]==o[2])"<<endl; break; } } infile.close(); return 0; }
实验二.径向神经网络实验
一.实验目的:
径向基函数网络多用于函数逼近和分类问题的研究,本实验演示如何应用函数构建一 个径向基网络,然后对一系列的数据点进行函数逼近。
二.问题的提出
假设如下的输入/输出样本,输入向量为【-1,1】区间上等间隔的数组成的向量P,相 应的期望值向量为T.
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.5000 -0.3930 -0.1647 0.0988... 0.3072 0.3960 0.3449 0.1816 -0.0312 -0.2189 0.3201];
实验一单层感知器
1.感知器模型
o
W
1
1

W
j
o
j

W
m
o
m
○ ○
x
○ ○
○ ○

x
1
2

x
i

x
n
2.感知器的学习算法
X = ( x1,x2 ,...xi ,...,xn )T
O = (o1,o2 ,...oi ,...,om )T
W j = ( w1 j ,w2 j ,...wij ,...,wnj )
三.网络测试
将网络输出和期望值随输入向量变化的曲线 绘制在一张图上,可以看出网络设计是否能 够做到函数逼近。如图:
其中“+”点为样本数据点,从中可以看出,应用 径向基网络进行函数逼近非常成功。
谢谢!
for(j=0;j<3;j++)//输出的3个样本 { for(i=0;i<4;i++) { cout<<x[i][j]<<" "; } } cout<<endl; while(true) { k=0; while(k<3) { netj=0; for(i=0;i<4;i++) { netj+=w[i][0]*x[i][k]; } cout<<netj<<endl; if(netj>=0) { o[k]=1; } else { o[k]=-1; } cout<<d[k]<<';'<<o[k]<<endl;
T
j=1,2,…,m
净输入: 净输入: net
j
=
n

wiLeabharlann 1ijxin
(2.1)
输出: 输出:
o j = sgn ( net j − T j ) = sgn (

w ij x i ) = sgn (W T X ) j
i=0
(2.2)
式中,当实际输出与期望值相同时, 式中,当实际输出与期望值相同时,权值不需要 调整。感知器学习规则代表一种有导师学习。 调整。感知器学习规则代表一种有导师学习。
每一个隐层神经元的权值和阈值都与径向基函数 的位置和宽度有关系,输出层的线性神经元将这 些径向基函数的权值相加。如果隐层神经元的数 目足够,每一层的权值和阈值正确,那么径向基 函数网络就完全能够精确的逼近任意函数。如图 所示,其中三条实线表示单个径向基函数曲线, 虚线表示三条曲线相加的结果。
从图中可以看出,如果调整权值和阈值,就可以 做到对任何函数曲线的拟合。 应用newrb()可以快速构建一个径向基函数网络, 并且网络自动根据输入向量和期望值进行调整, 从而进行函数逼近,预先设定均为方差精度eg以 及散布常数sc. eg=0.02; sc=1; net=newrb(P,T,eg,sc); NEWRB,neurons=0,SSE=3.69051
相关文档
最新文档