BP神经网络学习

BP神经网络结构框图

 

函数信号正向传播:输入——隐层——输出,最终得到估算出来的误差

误差信号反向调整:输出——隐层——输入,通过代价函数J(误差的平方和),采用梯度下降法对于权值进行逐一调整

隐层输入in=输入层输入X*输入与隐层间的权值W1-阈值theta

隐层输出out=f(隐层输入),其中f为sigmoid函数=(1/(1+exp(-β*in)))

输出层y=w2*out

 例题:

训练样本:

input=[0,0.1,0.2,0.3,0.4]

output=[4,2,2,2,2]

clear all;
close all;
%训练样本
NUM=5;
input=[0,0.1,0.2,0.3,0.4];%输入
output=[4,2,2,2,2];%期望输出
w1=rand(1,5);
w2=rand(1,5);
theta=rand(1,5);
beta=rand(1,5);

learn_rate1=0.0015;
learn_rate2=0.0015;
learn_rate3=0.0015;
learn_rate4=0.0015;
j=[];

for k=1:200000
    %清空输出存储值
    for i=1:NUM
        yout(i)=0;%网络输出
    end
     %正向传播
    for i=1:NUM
        z(i)=w1(i)*input(i)-theta(i);%隐层输入
        fz(i)=1/(1+exp(-beta(i)*z(i)));%隐层输出
        yout(i)=w2(i)*fz(i);%输出层输出
    end
    for i=1:NUM
        error(i)=0;%清空误差
    end
   
    for i=1:NUM
        error(i)=output(i)-yout(i);%计算误差=样本值-网络输出值
    end
    
    J=0;
    for i=1:NUM
          J=J+error(i)^2/2;%计算目标函数
    end
    j(end+1)=J;
    if J<0.001
        break;
    end
    %反向调整
    %目标函数对w2求偏导
    for i=1:NUM
        J_w2(i)=-error(i)*fz(i);
    end
    
     %目标函数对w1求偏导
    for i=1:NUM
        J_w1(i)=-error(i)*w2(i)*beta(i)*exp(-beta(i)*z(i))*fz(i)^2*input(i);
    end
    
    %目标函数对beta求偏导
    for i=1:NUM
        J_beta(i)=-error(i)*w2(i)*z(i)*exp(-beta(i)*z(i))*fz(i)^2;
    end
    
    %目标函数对theta求偏导
    for i=1:NUM
        J_theta(i)=error(i)*w2(i)*beta(i)*exp(-beta(i)*z(i))*fz(i)^2;
    end
    
    %参数调整
    for i=1:NUM
        w1(i)=w1(i)-learn_rate1*J_w1(i);%逐一调整参数
        w2(i)=w2(i)-learn_rate2*J_w2(i);
        beta(i)=beta(i)-learn_rate3*J_beta(i);
        theta(i)=theta(i)-learn_rate4*J_theta(i);
    end
end
% times
figure(1) ;
hold on;
plot(input,yout,'b');
plot(input,output,'r');
figure(2);
plot((1:k),j,'b');


        
    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值