⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 netrual_net_02.m

📁 采用matlab语言实现的三层BP神经网络算法
💻 M
字号:
%
input_count=1;%输入层节点数
hidden_count1=3;%隐含层1节点数
hidden_count2=4;%隐含层2节点数
output_count=1;%输出层节点数
%
x0=[-2*pi:4*pi/9999:2*pi];%输入样本
d2=abs(cos(x0));%网络输出
%
w0=ones(hidden_count1,input_count);%输入层与隐含层1的初始连接权值
w1=ones(hidden_count2,hidden_count1);%隐含层1与隐含层2的初始连接权值
w2=ones(output_count,hidden_count2);%隐含层2与输出层的初始连接权值
%进行训练
for i=1:10000
    n1=w0*x0(i);%计算隐含层1
    x1=1./(1+exp(-n1));
    n2=w1*x1;%计算隐含层2;
    x2=1./(1+exp(-n2));
    n3=w2*x2;%计算输出层
    y(i)=1./(1+exp(-n3));
    E(i)=((d2(i)-y(i)).^2)./2;%计算误差
    %调整权系数
    u=8;%设定学习率
    %对于输出层
    D2=(d2(i)-y(i)).*exp((-n3))./(1+exp((-n3))).^2.*x2';
    w2=w2+u*D2;
    %对于隐含层2
    D1=(d2(i)-y(i)).*exp((-n3))./(1+exp((-n3))).^2.*exp((-n2))./(1+exp((-n2))).^2.*w2'*x1';
    w1=w1+u*D1;
    %对于隐含层1
    D0=(((d2(i)-y(i)).*exp((-n3))./(1+exp((-n3))).^2.*exp((-n2))./(1+exp((-n2))).^2.*w2')'*w1)'.*exp((-n1))./(1+exp((-n1))).^2.*x0(i);
    w0=w0+u*D0;       
end
%查看结果
plot(x0,d2,x0,y,x0,E)



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -