神经网络中rprop是什么算法

发布网友 发布时间:2022-04-20 01:10

我来回答

3个回答

热心网友 时间:2022-07-12 06:46

对于bp神经网络来说没有固定的标准可以得到最好的bp网络,设计好后只能手动修改参数然后选择最好的。下边是个分类的例子

clc
clear
close all

%---------------------------------------------------
% 产生训练样本与测试样本,每一列为一个样本

P1 = [rand(3,5),rand(3,5)+1,rand(3,5)+2];
T1 = [repmat([1;0;0],1,5),repmat([0;1;0],1,5),repmat([0;0;1],1,5)];

P2 = [rand(3,5),rand(3,5)+1,rand(3,5)+2];
T2 = [repmat([1;0;0],1,5),repmat([0;1;0],1,5),repmat([0;0;1],1,5)];

%---------------------------------------------------
% 归一化

[PN1,minp,maxp] = premnmx(P1);
PN2 = tramnmx(P2,minp,maxp);

%---------------------------------------------------
% 设置网络参数

NodeNum = 10; % 隐层节点数
TypeNum = 3; % 输出维数

TF1 = 'tansig';TF2 = 'purelin'; % 判别函数(缺省值)
%TF1 = 'tansig';TF2 = 'logsig';
%TF1 = 'logsig';TF2 = 'purelin';
%TF1 = 'tansig';TF2 = 'tansig';
%TF1 = 'logsig';TF2 = 'logsig';
%TF1 = 'purelin';TF2 = 'purelin';

net = newff(minmax(PN1),[NodeNum TypeNum],{TF1 TF2});

%---------------------------------------------------
% 指定训练参数

% net.trainFcn = 'traingd'; % 梯度下降算法
% net.trainFcn = 'traingdm'; % 动量梯度下降算法
%
% net.trainFcn = 'traingda'; % 变学习率梯度下降算法
% net.trainFcn = 'traingdx'; % 变学习率动量梯度下降算法
%
% (大型网络的首选算法 - 模式识别)
% net.trainFcn = 'trainrp'; % RPROP(弹性bp)算法,内存需求最小
%
% 共轭梯度算法
% net.trainFcn = 'traincgf'; % Fletcher-Reeves修正算法
% net.trainFcn = 'traincgp'; % Polak-Ribiere修正算法,内存需求比Fletcher-Reeves修正算法略大
% net.trainFcn = 'traincgb'; % Powell-Beal复位算法,内存需求比Polak-Ribiere修正算法略大
% (大型网络的首选算法 - 函数拟合,模式识别)
% net.trainFcn = 'trainscg'; % Scaled Conjugate Gradient算法,内存需求与Fletcher-Reeves修正算法相同,计算量比上面三种算法都小很多
%
% net.trainFcn = 'trainbfg'; % Quasi-Newton Algorithms - BFGS Algorithm,计算量和内存需求均比共轭梯度算法大,但收敛比较快
% net.trainFcn = 'trainoss'; % One Step Secant Algorithm,计算量和内存需求均比BFGS算法小,比共轭梯度算法略大
%
% (中小型网络的首选算法 - 函数拟合,模式识别)
net.trainFcn = 'trainlm'; % Levenberg-Marquardt算法,内存需求最大,收敛速度最快
%
% net.trainFcn = 'trainbr'; % 贝叶斯正则化算法
%
% 有代表性的五种算法为:'traingdx','trainrp','trainscg','trainoss', 'trainlm'

%---------------------%

net.trainParam.show = 1; % 训练显示间隔
net.trainParam.lr = 0.3; % 学习步长 - traingd,traingdm
net.trainParam.mc = 0.95; % 动量项系数 - traingdm,traingdx
net.trainParam.mem_rec = 10; % 分块计算Hessian矩阵(仅对Levenberg-Marquardt算法有效)
net.trainParam.epochs = 1000; % 最大训练次数
net.trainParam.goal = 1e-8; % 最小均方误差
net.trainParam.min_grad = 1e-20; % 最小梯度
net.trainParam.time = inf; % 最大训练时间

%---------------------------------------------------
% 训练与测试

net = train(net,PN1,T1); % 训练

%---------------------------------------------------
% 测试

Y1 = sim(net,PN1); % 训练样本实际输出
Y2 = sim(net,PN2); % 测试样本实际输出

Y1 = full(compet(Y1)); % 竞争输出
Y2 = full(compet(Y2));

%---------------------------------------------------
% 结果统计

Result = ~sum(abs(T1-Y1)) % 正确分类显示为1
Percent1 = sum(Result)/length(Result) % 训练样本正确分类率

Result = ~sum(abs(T2-Y2)) % 正确分类显示为1
Percent2 = sum(Result)/length(Result) % 测试样本正确分类率

热心网友 时间:2022-07-12 06:46

http://wenku.baidu.com/link?url=VlwBloCNZ82-uppgd0YqnqPZR4D20klbOXHLIvIs-USCWifpybpV4E1AOYUEBthe5bcCGIgkUIuXwpJjaggwjljMEwDsCBW1zJFyRfvrfYO

RPRO
P
算法在测井岩性识别中的应用
张治国
,
杨毅恒
,
夏立显
(
吉林大学
综合信息矿产预测研究所
,
吉林
长春

130026
)
摘要
:
为了更好地解决测井岩性识别问题
,
引入一种快速实用的
BP
算法
Resilient
Backpropaga
2
tion
(
RPROP
)
算法

在说明
RPROP
算法的基础上
,
结合某地的实际测井资料
,
建立基于
RPROP
算法的
BP
网络岩性识别模型
,
进行岩性识别的应用研究

结果表明
,
应用
RPROP
算法进行测井资料岩性识别
,
识别的准确率较高
,
与基本
BP
算法及其一些改进算法相比
,
训练速度快
,
具有很好的应用前景

你看看

热心网友 时间:2022-07-12 06:47

RPROP神经网络算法原理
  
  1993年德国Martin Riedmiller和Heinrich Braun在他们的论文“The RPROP Algorithm”中提出了这种方法。
  RPROP算法的基本原理为:首先为各权重变化赋一个初始值,设定权重变化加速因子与减速因子,在网络前馈迭代中当连续误差梯度符号不变时,采用加速策略,加快训练速度;当连续误差梯度符号变化时,采用减速策略,以期稳定收敛。网络结合当前误差梯度符号与变化步长实现BP,同时,为了避免网络学习发生振荡或下溢,算法要求设定权重变化的上下限。
参考文献:http://www.chinake.com/m/s/1483455.html
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com