资源简介
BP 神经网络程序BP 神经网络程序BP 神经网络程序BP 神经网络程序BP 神经网络程序BP 神经网络程序BP 神经网络程序BP 神经网络程序BP 神经网络程序BP 神经网络程序BP 神经网络程序BP 神经网络程序BP 神经网络程序

代码片段和文件信息
%严格按照BP网络计算公式来设计的一个matlab程序,对BP网络进行了设计
%yyy,即在o(k)计算公式时,当网络进入平坦区时(<0.0001)学习率加大,出来后学习率又还原
%v(ij)=v(ij)+deltv(ij)+a*dv(ij);动量项
clear all
inputnums=1;%输入层节点
outputnums=1;%输出层节点
hidenums=7;%隐层节点
maxcount=50000;%最大迭代次数
samplenum=19;%一个计数器,无意义
precision=0.00001;%预设精度
yyy=1.3;%yyy是帮助网络加速走出平坦区
alpha=0.02;%学习率设定值
a=0.9;%BP优化算法的一个设定值,对上组训练的调整值按比例修改
error=zeros(1maxcount+1);%error数组初始化;目的是预分配内存空间
errorp=zeros(1samplenum);%同上
v=rand(inputnumshidenums);%1*10;v初始化为一个1*10的随机归一矩阵;v表输入层到隐层的权值
deltv=zeros(inputnumshidenums);%1*10;内存空间预分配
dv=zeros(inputnumshidenums);%1*10;
w=rand(hidenumsoutputnums);%10*1
deltw=zeros(hidenumsoutputnums);%10*1
dw=zeros(hidenumsoutputnums);%10*1
samplelist=1:0.5:10;%样本输入值
expectlist=samplelist.^(-1);%期望输出值
%expectlist=exp(-samplelist);
[samplelistminpmaxp]=premnmx(samplelist);
%[expectlistmintmaxt]=premnmx(expectlist);
count=1;
while(count<=maxcount)%结束条件1迭代20000次
c=1;
while(c<=samplenum)
for k=1:outputnums
d(k)=expectlist(c);%获得期望输出的向量
end
for i=1:inputnums
x(i)=samplelist(c);%获得输入的向量数据
end
%forward();
for j=1:hidenums
net=0.0;
for i=1:inputnums
net=net+x(i)*v(ij);%输入层到隐层的加权和
end
y(j)=1/(1+exp(-net));%输出层处理f(x)=1/(1+exp(-x)),单极性sigmiod函数
%y(j)=1/net;%输出层处理f(x)=1/(1+exp(-x)),单极性sigmiod函数
end
for k=1:outputnums
net=0.0;
for j=1:hidenums
net=net+y(j)*w(jk);
end
if count>=2&&error(count)-error(count-1)<=0.0001
o(k)=1/(1+exp(-net)/yyy);%平坦区加大学习率
%o(k)=1/(net/yyy);%平坦区加大学习率
else o(k)=1/(1+exp(-net));%同上
%else o(k)=1/net;%同上
end
end
%BpError(c)反馈/修改
errortmp=0.0;
for k=1:outputnums
errortmp=errortmp+(d(k)-o(k))^2;%第一组训练后的误差计算
end
errorp(c)=0.5*errortmp;%误差E=∑(d(k)-o(k))^2 * 1/2
%end
%backward();
for k=1:outputnums
yitao(k)=(d(k)-o(k))*o(k)*(1-o(k));%输出层误差偏导
end
for j=1:hidenums
tem=0.0;
for k=1:outputnums
tem=tem+yitao(k)*w(jk);%为了求隐层偏导,而计算的求和
end
yitay(j)=tem*y(j)*(1-y(j));%隐层偏导
end
%调整各层权值
for j=1:hidenums
for k=1:outputnums
deltw(jk)=alpha*yitao(k)*y(j);%权值w的调整量deltw(已乘学习率)
w(jk)=w(jk)+deltw(jk)+a*dw(jk);%权值调整,这里的dw=deltw(t-1),实际是对BP算法的一个改进措施--增加动量项目的是提高训练速度
dw(jk)=deltw(jk);
end
end
for i=1:inputnums
for j=1:hidenums
deltv(ij)=alpha*yitay(j)*x(i);%同上deltw
v(ij)=v(ij)+deltv(ij)+a*dv(ij);
dv(ij)=deltv(ij);
end
end
c=c+1;
end%第二个while结束;表示一次BP训练结束
double tmp;
tmp=0.0;
for i=1:samplenum
tmp=tmp+error
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 751104 2008-01-05 16:01 神经网络程序1\M.doc
文件 4419 2008-01-04 16:57 神经网络程序1\xfenzhiyibp.m
文件 225 2007-12-20 09:31 神经网络程序1\人工神经网络要求.txt
目录 0 2009-10-01 14:23 神经网络程序1
----------- --------- ---------- ----- ----
755748 4
- 上一篇:.net机票预订系统源码
- 下一篇:MEF模块解耦WCF Rest 扩展 基础
相关资源
- bp神经网络源代码,可直接运行
-
imx6qSBP的jli
nk初始化脚本 - BCG帮助手册,完整版_修正
- 改进的BP神经网络算法
- 基于bp神经网络的表情识别
- BFSK/BPSK-BER 蒙特卡洛仿真程序
-
UnityWebPla
yer及UnityWebPla yerFull -
UnityWebPla
yerFull - 带电粒子的横向动量高达100 GeV / c在
- PbPb碰撞中D介子的核修饰因子
- N = 4 $$ \\ mathcal {N} = 4 $$ Chern-Simons-ma
- FABP2基因54位点多态性与结直肠癌易感
- 佳能canon lbp3000激光打印机驱动 for w
- BPMN2.0 Modeler for Visio
- Rademacher和BPS混合黑洞
- 基于熵权法的PHC管桩承载力组合预测
- 基于ARIMA、BP神经网络与GM的组合模型
- 基于BP人工神经网络的SmFeN永磁材料工
- rtl8191s 802.11n 150m/300mbps无线网卡驱动程
- bpsk 计算误码率
- SAR成像BP算法仿真
- 基于双隐含层BP神经网络的预测
- 基于PSO优化BP神经网络的水质预测研究
- 一种基于LBP和CNN的人脸识别算法
- BP神经网络算法逼近一个正弦函数
- 读卡器集成明泰mt8南天bp8903-d源码
- 基于主成分分析与BP神经网络的雾天能
- 基于BP神经网络的挖掘机液压系统故障
- BPS多中心状态的完整空
- BPS状态,守恒电荷和对
评论
共有 条评论