matlab神经网络 误差曲线,matlab实现简单BP神经网络(不使用工具箱),两种求误差方式...

BP网络实现y=1+x+x*x函数模拟,输入层一个节点,隐含层8个节点,输出层1个节点

将数据分为测试集合和训练集合两部分

%% BP算法模拟 y = 1 + x + x*x

%作者:msl 时间:2017-10-07

clc;

clear;

%% step0:定义

TrainCount = 1000;%最大训练次数为2000次

DataNum = 1001;%训练的数据有1001个

Hide_Out = zeros(1,8);%初始化隐含层输出

Hide_OutTest = zeros(1,8);

Rata_H = 0.2;%隐含层学习速率

Rata_O = 0.1;%输出层学习速率

%% step1:取数据

x = -5:0.01:6;%x的训练数据

y = 1 + x + x.*x;%y对应于x的数据

%% step2:训练数据归一化和初始化权值

x_Nor = (x -(-5) + 1)/(5 - (-5) + 1);%x归一化后得到的数据

y_Nor = (y - 0.75 + 1)/(31 - 0.75 + 1);%y归一化后得到的数据

w = 2*(rand(1,8)-0.5);%得到输入层到隐含层的8个权值初始化

v = 2*(rand(1,8)-0.5);%得到隐含层到输出层的8个权值初始化

dw = zeros(1,8);%隐含层权值调整量初始化 0

dv = zeros(1,8);%输出层权值调整量初


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部