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

本文介绍了如何在MATLAB中不使用工具箱,手动实现BP神经网络来模拟y=1+x+x*x函数。通过将数据分为训练集和测试集,使用BP算法进行训练,并展示了两种误差计算方式,即训练集误差和测试集误差,通过绘制误差曲线进行分析。
摘要由CSDN通过智能技术生成

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);%输出层权值调整量初

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值