DL学习笔记1—BP算法的matlab代码学习
来源:互联网 发布:淘宝哪家杂货铺好 编辑:程序博客网 时间:2024/06/08 14:59
声明:文中的两个案例matlab源码引用自网络,并非本人所写,在此感谢原作者。原链接http://wenku.baidu.com/view/d8df1821aaea998fcc220e03.html?from=search
1)traingd——梯度下降反向传播
traingd Gradient descent backpropagation.
traingd is a network training function that updates weight and
bias values according to gradient descent.
根据梯度下降法更新权值和偏置。
2)newff :前馈网络创建函数
newff Create a feed-forward backpropagation network.
3) train:训练网络
train Train a neural network.
[NET,TR] = train(NET,X,T) takes a network NET, input data X and target data T and returns the network after training it, and a a training record TR.
返回训练后的网络和训练记录TR
4)sim:利用网络进行仿真
sim Simulate a neural network.
sim(NET,X) takes a network NET and inputs X and returns the outputs Y generated by the network. This syntax is equivalent to NET(X).
返回由网络产生的输出。
5)matlab神经网络工具
设置隐藏层的神经元个数:
Matlab实例1:
%BP算法训练:监督学习%clear;x=-4:0.01:4; %产生[-4,4]之间的行向量y1=sin((1/2)*pi*x)+sin(pi*x);%期望输出%step1:newff前馈网络创建函数%minmax(x)获取输入x的取值范围,min和max,第一个隐藏层其实相当于对输入进行归一化%第1个隐藏层含1个神经元,激活函数是tansig,第2个隐藏层含15个,激活函数是tansig,输出层含1个,激活函数是线性函数%训练函数是梯度下降函数traingdnet=newff(minmax(x),[1,15,1],{'tansig','tansig','purelin'},'traingd'); net.trainparam.epochs=6000; %设置最大迭代次数net.trainparam.goal=0.00001; %设置神经网络训练的目标误差net=train(net,x,y1); %step2:训练神经网络,返回训练好的网络和误差记录y2=sim(net,x); %step3:获取BP训练后的实际输出%Pause %绘图,原图(蓝色光滑线)和仿真效果图(红色+号点线) plot(x,y1);%画出期望图像 hold on plot(x,y2,'r+'); %画出训练得到的图像
1)训练误差出现振荡:
可以看到,神经网络训练的目标误差0.00001,10的负5次方,迭代500次的时候,误差达到了一个最小值即best值,由于没有达到目标误差,所以继续迭代,之后误差逐渐增加,迭代到2000次时,迭代停止。
这里有一个疑问:发生这种情况时,迭代完成之后,采用的结果是Best值还是最后一次迭代的结果。
2)训练误差再最大迭代次数内收敛到目标误差
%利用BP算法监督学习2clear;clc;%以每3个月的销售量经过归一化处理后作为输入X=1:1:6;Y1=[0.5152 0.8173 1; 0.8173 1 0.7380; 1 0.7380 0.1390; 0.7308 0.1309 0.1087; 0.1309 0.1087 0.3520; 0.1087 0.3520 0;]';%以要预测的第4个月的销售量归一化处理后作为目标向量T=[0.7308 0.1309 0.1087 0.3520 0 0.3761];net=newff([0 1;0 1;0 1],[5,1],{'tansig','logsig'},'traingd');net.trainParam.epochs=10000;%设置迭代次数net.trainParam.goal=0.01;LP.lr=0.1;net=train(net,Y1,T);%开始训练Y2=sim(net,Y1);%获取实际输出scatter(X,T,'fill');hold onscatter(X,Y2,'r','fill');
- DL学习笔记1—BP算法的matlab代码学习
- 【机器学习】BP算法学习笔记
- matlab BP神经网络学习
- BP学习算法的实现
- BP网络的学习算法
- 斯坦福机器学习-week5 学习笔记(1)——神经网络训练BP算法与Gradient checking
- 深度学习笔记一:BP神经网络的介绍和Python代码实现(1)
- matlab建立BP神经网络中train函数的参数及学习算法参数
- BP算法学习
- BP神经网络算法学习
- BP神经网络算法学习
- BP神经网络算法学习
- BP神经网络算法学习
- BP算法学习
- 语音学习笔记9------Matlab R2015a实现BP神经网络的嗓音识别
- BP神经网络学习笔记
- BP神经网络学习笔记
- 深度学习框架Caffe学习笔记(8)-BP神经网络算法
- MagicalRecord,一个简化CoreData操作的工具库
- 关于MYSQL Innodb 锁行还是锁表
- 黑马程序员——异常
- excel表格数据的操作
- 为什么你应该深入Github?
- DL学习笔记1—BP算法的matlab代码学习
- 【C#】反射基本用法
- 使用www加载的坑
- Android之项目推荐使用的第三方库
- android4.4系统源码编译(三)_编译
- 磁盘槽位和盘符绑定方案
- weblogic.net.http.SOAPHttpsURLConnection cannot be cast to javax.net.ssl.HttpsURLConnection
- Android之日期/时间选择对话框
- 百宝云Json与数组命令教程