• 大小: 2KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-02
  • 语言: Matlab
  • 标签: matla  神经网  

资源简介

matlab当中使用循环进行bp神经网络的编程,不使用工具箱加深对于神经网络的理解

资源截图

代码片段和文件信息

clc                          
clear all; 
close all;

%定义相关参数
Epochs=300;           %最多训练次数                                    
u1=0.001;                 %学习速率


%生成训练样本
for i=1:10
    u(i)=logsig(i);
end
yd(1)=0.5;
for i=2:10
    yd(i)=yd(i-1)/(1+yd(i-1)^2)+u(i)^3;
    yd(i)=logsig(yd(i));
end
    
ErrorMatrix=[];          %误差矩阵
OutlayerOut=[];          %测试输出矩阵

%生成各层权值和阈值
w1=0.5*rands(23);       %隐藏层权重    
b11=0.5*rands(21);   
b12=0.5*rands(21);
b13=0.5*rands(21);       %隐藏层阈值
w2=0.5*rands(13);      %输出层权重
b2=0.5*rands(13);          %输出层阈值

yo(1)=0.5;
for i=1:Epochs
    ErrorHistory=[];
    for j=2:10
        f11=yo(j-1)*w1(1)+u(j)*w1(2)+b11(1);
        f12=yo(j-1)*w1(1)+u(j)*w1(2)+b11(2);
        f1=logsig(f11+f12);                           %隐层第1个节点输出
        f21=yo(j-1)*w1(3)+u(j)*w1(4)+b12(1);
        f22=yo(j-1)*w1(3)+u(j)*w1(4)+b12(2);
        f2=logsig(f21+f22);                           %隐层第2个节点输出
        f31=yo(j-1)*w1(5)+u(j)*w1(6)+b13(1);
        f32=yo(j-1)*w1(5)+u(j)*w1(6)+b13(2);
        f3=logsig(f31+f32);                           %隐层第3个节点输出
        
        g1=f1*w2(1)+b2(1);

评论

共有 条评论