06 计算机研究生 于淼 2006020049
神经网络
要求:利用 BP 算法及 S 函数逼近函数,其中 f(x)=1/x (1<=x<=100)
1.获得两组数据,一组作为训练集,一组作为测试集
2.利用训练集训练两层网络
3.用测试集检验训练结果,改变隐层单元数,研究结果
4.不使用工具箱,只使用语言编程
5.上交程序及运行曲线
1 程序
按照 BP 网络计算公式来设计的一个 matlab 程序,对 BP 网络进行了设计。其中,训练集
samplelist=1:0.5:10;%样本输入值;expectlist=samplelist.^(-1);%期望输出值。测试集 p=1:1:10。
inputnums=1;%输入层节点
outputnums=1;%输出层节点
hidenums=10;%隐层节点
maxcount=50000;%最大迭代次数
samplenum=19;%一个计数器
precision=0.00001;%预设精度
yyy=1.3;%yyy 是帮助网络加速走出平坦区,即在 o(k)计算公式时,当网络进入平坦区时(<0.0001)学
习率加大,出来后学习率又还原
alpha=0.02;%学习率设定值
a=0.9;%BP 优化算法的一个设定值,对上组训练的调整值按比例修改
error=zeros(1,maxcount+1);%error 数组初始化;目的是预分配内存空间
errorp=zeros(1,samplenum);%同上
v=rand(inputnums,hidenums);%1*10;v 初始化为一个 1*10 的随机归一矩阵;v 表输入层到隐层的权值
deltv=zeros(inputnums,hidenums);%1*10;内存空间预分配
dv=zeros(inputnums,hidenums);%1*10;
w=rand(hidenums,outputnums);%10*1
deltw=zeros(hidenums,outputnums);%10*1
dw=zeros(hidenums,outputnums);%10*1
samplelist=1:0.5:10;%样本输入值
expectlist=samplelist.^(-1);%期望输出值
[samplelist,minp,maxp]=premnmx(samplelist);
count=1;
while(count<=maxcount)%结束条件 1 迭代 20000 次
c=1;
while(c<=samplenum)
- 1
- 2
- 3
- 4
- 5
前往页