武汉绘芯科技有限公司欢迎您!
10余年经验沉淀展览展示运动控制的专家
全国咨询热线:027-87052087
联系我们
武汉绘芯科技有限公司
电话:027-87052087
手机:13329706647
邮箱:956693667@qq.com
地址:武汉市江夏区藏龙岛谭湖一路8号
联系人:黄先生
您的位置: 直播软件|直播系统 > 知识库 >
知识库

BP网络程序

日期:2016-07-28 18:09:47 来源:未知 点击

BP       

1.     算法说明

BP网络算法是用最速下降法进行推导的,是通过

w1= w0+aΔw(t)

v1= v0+bΔv(t)

迭代产生出 w v的值。此分类其进行预测得出的结果;

2.     程序使用说明

matlab环境下把程序代码拷入:

参数设置为:

mid=15;

a=0.95;

b=0.95;

s=0.1;

stop_sum=12;

3.输出:

mid=5;a=0.95;b=0.95;s=0.1;H=1;stop_sum=13;

输出结果为

value = 80

value = 76

value = 79.3333

4.附录

程序清单:

load iris_tr;

train=IRIS_training_data;

[rows,cols]=size(train);

n=4;

q=3;

mid=5;

a=0.95;

b=0.95;

s=0.1;

H=1;

stop_sum=13;

 

w(1:5,:)=rand(5,mid);

v(1:mid+1,:)=rand(mid+1,3); x(1)=1;z(1)=1;

while H==1

for I=1:rows

    for J=1:n

        x(J+1)=train(I,J);

    end

    for J=1:mid

        z(J+1)=1/(1+exp(-x*w(:,J)));

    end

    for J=1:q

        y(J)=1/(1+exp(-z*v(:,J)));

        y1(I,J)=y(J);

        o(J)=train(I,n+J);

        o1(I,J)=o(J);

    end

    for J=1:q

       v(:,J)=v(:,J)+b*((o(J)-y(J))*y(J)*(1-y(J))*z');

    end

    sum=0;

    for J=1:mid

        for K=1:q

         sum=sum+v(J,K)*(o(K)-y(K))*y(K)*(1-y(K));

        end

         w(:,J)=w(:,J)+a*sum*z(J)*(1-z(J))*x';

    end

end

sum_num=0;

for I=1:rows

    for J=1:q

        sum_num=sum_num+(o1(I,J)-y1(I,J))^2/2;

    end

end

if sum_num<stop_sum

    break;

end       

end

clear z;

clear x;

clear rows;

clear cols;

%预测过程

load iris_te;

test=IRIS_testing_data;

[rows,cols]=size(test);

for I=1:rows

    if test(I,6)==1

        test(I,5)=2;

    end

    if test(I,7)==1

        test(I,5)=3;

    end

end

IRIS=test(:,1:5);

IRIS1=IRIS(:,1:4);

One=ones(75,1);

x=[One IRIS1];

for I=1:rows  

   z(1)=1;

   for J=1:mid    

        z(J+1)=1/(1+exp(-(x(I,:)*w(:,J))));        

   end 

   for J=1:q

        y(J)=1/(1+exp(-(z*v(:,J))));

   end  

   clear z;

    [g,t]=max(y);

    if g>=s

        IRIS1(I,5)=t;

    end

end

value=0;

for I=1:rows

    if IRIS(I,5)==IRIS1(I,5)

     value=value+1;

    end

end

value=(value/rows)*100

 

 

 


在线客服
联系方式

热线电话

13329706647

上班时间

周一到周五

公司电话

027-87052087

二维码
线