RSS
热门关键字:  数据挖掘  人工智能  数据仓库  搜索引擎  数据挖掘导论
当前位置 :| 首页>人工智能>神经网络>

【原创】自己编的BP算法(工具:matlab)

来源: 作者: 时间:2008-01-14 点击:

很多人还是在求BP算法,我传一个三层的简单程序。如果谁想要VC或C++版的,我也有!

%BP neural network
clear
inputNums=3;
outputNums=3;
hideNums=10;
maxcount=2000;
samplenum=3;
precision=0.001;

alpha=0.5;%设定值
a=0.5;%设定值
count=1;
error=zeros(1,count);
errorp=zeros(1,samplenum);

v=rand(inputNums,hideNums);
deltv=zeros(inputNums,hideNums);
dv=zeros(inputNums,hideNums);
st1=zeros(1,hideNums);

w=rand(hideNums,outputNums);
deltw=zeros(hideNums,outputNums);
dw=zeros(hideNums,outputNums);
st2=zeros(1,outputNums);

samplelist=[1,0,0;0,1,0;0,0,1];
expectlist=[1,0,0;0,1,0;0,0,1];

while (count<=maxcount)
    c=1;
    while (c<=samplenum)
      for k=1:outputNums
        d(k)=expectlist(c,k);%获得期望输出的向量
end
    
      for i=1:inputNums


        x(i)=samplelist(c,i);%获得输入的向量(数据)
end

%Forward();
   for j=1:hideNums
     net=0.0;
     for i=1:inputNums
       net=net+x(i)*v(i,j);
end
net=net-st1(j);
     y(j)=1/(1+exp(-net));
end
   for k=1:outputNums
     net=0.0;
     for j=1:hideNums
       net=net+y(j)*w(j,k);
end
net=net-st2(k);
     o(k)=1/(1+exp(-net));
end

%BpError(c);
errortmp=0.0;
   for k=1:outputNums
     errortmp=errortmp+(d(k)-o(k))^2;
end

数据挖掘研究院


   errorp(c)=0.5*errortmp;
%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(j,k);
end
     yitay(j)=tem*y(j)*(1-y(j));
end

   %调整各层权值
   for j=1:hideNums
     for k=1:outputNums
       deltw(j,k)=alpha*yitao(k)*y(j);
       w(j,k)=w(j,k)+deltw(j,k)+a*dw(j,k);
       dw(j,k)=deltw(j,k);
end
end
for k=1:outputNums

数据挖掘实验室


st2(k)=st2(k)+alpha*yitao(k);
end
   for i=1:inputNums
     for j=1:hideNums
       deltv(i,j)=alpha*yitay(j)*x(i);
       v(i,j)=v(i,j)+deltv(i,j)+a*dv(i,j);
       dv(i,j)=deltv(i,j);
end
end
for j=1:hideNums
st1(j)=st1(j)+alpha*yitay(j);
end
%end

c=c+1;
end
    
    double tmp;
    tmp=0.0;
    for i=1:samplenum
      tmp=tmp+errorp(i)*errorp(i);
end
    tmp=tmp/c;
    error(count)=sqrt(tmp);

    if (error(count)<precision)
      break;

数据挖掘研究院


end
    count=count+1;%训练次数加1
end

p=1:count;
plot(p,error(p),"-");

不错,能说明一下该程序做什么的,解释一下相关的变量吗?

我想要个VC编写的,可以吗,我已经给你发短消息了,那里面有我的邮件地址,谢谢了 .

在VC里面怎么保存权值和阈值

我也需要,很急,能给我发一份VC版的吗?你的短消息里有我的地址,谢谢!

万分感谢楼主!

我也想要
VC版本的

刚看到这个帖子,麻烦楼主发个vc的好吗
email:onlywygis123@sina.com

多谢,俺需要vc的,my emai:onlywygis123@sina.com
万分感谢。l

我现在也在此方向得研究,我得程序训练总是不很理想,麻烦你发给我一个c++得,我对比下问题出在哪?
wp6017175@yahoo.com.cn

楼主,也想要个c版本的,
jianing826@163.com
thx

请问楼主用的速度快吧,根据我的经验,自己编的程序都慢的不能忍受

"Smile"若楼主方便,请与我一份VC的,谢过!



qishengwen@mail.iggcas.ac.cn

请问一下sistor2004,你这个程序是不是编的加入动量项的BP

还有个问题
下面两个定义的是什么,他们的作用是什么呀?
st1=zeros(1,hideNums);
st2=zeros(1,outputNums);

for k=1:outputNums
st2(k)=st2(k)+alpha*yitao(k);
end

for j=1:hideNums
st1(j)=st1(j)+alpha*yitay(j);
end

楼主,用matlab不用这么麻烦的吧,都有神经网络工具箱的
我现在用c++开发,写的头都大了,如果方便的话,给我发一份吧,谢谢!
邮箱:lpchouxiaoya@yahoo.com.cn

看不太懂,能解释一下功能么,多谢啦 "Tongue""Smile""Smile"

版主能给我一份VC或C++版本的么,跪谢拉

给我传个vc和c++版本吧,跪谢拉.我的邮箱liyan299@163.com

给我传个vc和c++版本吧,跪谢拉.我的邮箱liyan299@163.com

给我传个vc和c++版本吧,跪谢拉.我的邮箱liyan299@163.com

太好了,呵呵。

虽然神经网络有了历史,但是本人刚接触,是不是起步晚了点。现在对编程还有点畏惧感,看到大家贴出现成的东东,就有想copy下来的冲动,但是又不知道自己需要什么。

楼主,麻烦你给我发一份VC版本的或C++的也行, 数据挖掘研究院
谢谢了
luoyhgfkd@gmail.com

麻烦您给我发个VC和C++版的。谢谢!谢谢!
green8282@126.com

麻烦您给我传个vc和c++版本吧,谢谢啦.我的邮箱dlutdavy@sina.com

麻烦您给我传个vc和c++版本吧,谢谢啦.我的邮箱zwpcug@163.com
十分感谢并希望进一步交流和请教!QQ380347467

谢谢!先下了!

需求VC++的啊
楼主帮忙传一份吧,谢谢啦
interkenny@163.com

楼主,也给我传一份C++和VC++的吧,谢谢了!

我现在有一个VB版的,c和c++版的我都想要,麻烦给发个吧,在此先谢谢楼主了
我的邮箱是:yitianwh@yahoo.com.cn

Thanks
Studying......

烦劳楼主发个C++的版本,小生谢过了~~
fjk_a3@yahoo.com.cn

Thank you very much!!!!

我想知道怎么用S-function编BP算法,有人知道吗

good thanks for sharing
~

麻烦楼主了。我的邮箱:lele_double@163.com
我想要用VC实现的BP算法。不胜感激!!!

传一个给我,谢谢!
zhengligang97@163.com

麻烦楼主送一个,不胜感激!


xiaobs_2008@yahoo.com.cn

现在还有吗,能不能给我发一下啊,先谢谢了
real-zr5201@163.com

谢谢给我发份,hnzhbin@163.com

给我发份,偶也想学习一下,谢谢了先
webbus@263.net

多谢,俺需要vc的,xinwilliam@126.com

xiexie

这个程序当我把输出神经原改为1时,怎么都运行不出来。是什么问题啊?sistor2004,麻烦指导一下

能不能给更多的训练算法代码,谢谢了

给我发份,偶也想学习一下,谢谢了
www6625@126.net

谢谢le
c的能否给份。多谢了

dylan999@126.com

麻烦楼主给传个C++和VC的,非常感谢

benq2001@126.com

我刚来,我 也想要份C++版本的

Create By Any-Extract(WL-AE)

最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
匿名?