没有合适的资源?快使用搜索试试~ 我知道了~
人工神经网络Matlab实现代码.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 65 浏览量
2022-12-17
15:09:59
上传
评论
收藏 115KB PDF 举报
温馨提示
试读
4页
...
资源推荐
资源详情
资源评论
以下是用 Matlab 中的 m 语言编写的 BP 神经网络代码,实现的是一个正弦函数的拟合过程,
包括了初始化、BP 算法、绘制曲线等过程,可以将代码放到一个M 文件中运行,以下是代
码:
defaultpoints=20; %%%%%%%%%隐含层节点数
inputpoints=1; %%%%%%%%%输入层节点数
outputpoints=1; %%%%%%%%%输出层节点数
Testerror=zeros(1,100);%%%%每个测试点的误差记录
a=zeros(1,inputpoints);%%%%输入层节点值
y=zeros(1,outputpoints);%%%样本节点输出值
w=zeros(inputpoints,defaultpoints);%%%%%输入层和隐含层权值
%初始化权重很重要,比如用 rand 函数初始化则效果非常不确定,不如用 zeros 初始化
v=zeros(defaultpoints,outputpoints);%%%%隐含层和输出层权值
bin=rand(1,defaultpoints);%%%%%隐含层输入
bout=rand(1,defaultpoints);%%%%隐含层输出
base1=0*ones(1,defaultpoints);%隐含层阈值,初始化为 0
cin=rand(1,outputpoints);%%%%%%输出层输入
cout=rand(1,outputpoints);%%%%%输出层输出
base2=0*rand(1,outputpoints);%%输出层阈值
error=zeros(1,outputpoints);%%%拟合误差
errors=0;error_sum=0; %%%误差累加和
error_rate_cin=rand(defaultpoints,outputpoints);%%误差对输出层节点权值的导数
error_rate_bin=rand(inputpoints,defaultpoints);%%%误差对输入层节点权值的导数
alfa=0.5; %%%% alfa 是隐含层和输出层权值-误差变化率的系数,影响很大
belt=0.5; %%%% belt 是隐含层和输入层权值-误差变化率的系数,影响较小
gama=5; %%%% gama 是误差放大倍数,可以影响跟随速度和拟合精度,当 gama 大于
2 时误差变大,容易震荡
%%%%规律 100 个隐含节点,当 alfa *gama =1.5 时,效果好,其他值误差变大,belt 基本
不影响效果
%%%%规律 200 个隐含节点,当 alfa *gama =0.7 时,效果好,其他值误差变大,belt 基本
不影响效果,最小误差和 100 个隐含点一样
%%%%规律 50 个隐含节点,当 alfa *gama =3 时,效果好,其他值误差变大,belt 基本不
影响效果,最小误差和 100 个隐含点一样
trainingROUND=200;% 训练次数,有时训练几十次比训练几百次上千次效果要好很多
sampleNUM=361; % 样本点数
x1=zeros(sampleNUM,inputpoints); %样本输入矩阵
y1=zeros(sampleNUM,outputpoints); %样本输出矩阵
x2=zeros(sampleNUM,inputpoints); %测试输入矩阵
资源评论
不吃鸳鸯锅
- 粉丝: 8334
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功