神经网络问题汇总大全
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1最近看神经网络的书籍时,看了论坛的一些相关帖子,可是还是有些地方不太明白,感觉很多训练函数参数的解释都是一笔带过,我这个初学者有点难理解,
epochs是最大训练次数,能否说也是迭代次数,即重复循环次数。
lr学习率怎么理解呢?特别是它的数字代表的什么意思呢?能否举例说明,谢谢。
min_grad最小梯度要求,针对的是所有函数的梯度?关于梯度这里也有点迷糊,网上把梯度当成导数理解,这样合适吗?还有梯度的计算,为什么要计算梯度呢?这里的梯度指的是所有传递函数的梯度?
show显示训练迭代过程,50就代表每隔50次训练,显示一次训练进程,这样理解合适吗?以怎样的方式显示呢?是不是performance每隔50取一个点再连接起来?
问题比较基础,也比较多,因为小弟初学者,还请多多理解。谢谢耐心的你,回答我的问题
1.epochs理解为最大迭代次数是没问题的
2.lr是学习率,这是权值调整过程中用到的一个参数,具体含义还需从权值调整的原理说起
3.梯度和学习率一样,如果对算法原理不了解,很难解释清楚
4.关于show你的理解是正确的
对于梯度下降可以理解为每次权值和阀值的修改量大小,改动太小了,就可以认为网络收敛,可以停止训练了
2
请问:用matlab初始化PSO算法的v、x时,一下这两种方式应该都差不多吗?
1.v=rand(N,D,1)
2. 用for循环赋值:x(i,j)=rand 我在程序中试过最后结果都是N*D 的随机矩阵,是不是方法2用for略显繁琐些呢?曾经看过帖子,有人说在matlab下乱用for 循环是没有充分利用matlab的矩阵功能,所以我想,是不是在matlab下用1更好些呢?
两种方法是完全一样的,第一种没有用循环,所以效果更好点,用循环会增加程序的运行时间
3
请教个问,要得急下图是两类样本,红色的是一类,蓝色的是一类,这样的样本能用吗?
楼主能具体解释下数据不,神经网络预测的精确与否与数据有比较大的关系,简单来说,就是输入数据和输出数据存在关联性,因为网络本身可以看成是一个函数的
4
发表于 2009-11-6 09:07:31 |只看该作者|倒序浏览
您好史老师,我以前用的是工具箱中newff,train,sim。样本就是这些,训练精度达人满意的效果。现在自已写程序能否达到这个效果?我的样本是实际测量得出的。而且样本的数目根据实际情况已经不可能再增加.谢谢
中午回去给你试下,不过你的数据里面只有训练数据了,没有测试数据了,一般工具箱函数
精度高很多,我自己做的BP程序也存在预测效果稍差的问题
楼主的问题解决了,应该是加上阀值,不是减阀值,正好反了,另外,建议楼主把输入数据归一化,输出归一不归一无所谓
5 L=[1 2 3 4;5
6
7 8;9 10 11 12]
L =
1 2 3 4
5 6 7 8
9 10 11 12
>> std=corrcoef(L)%相关系数
std =
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
>> covL=cov(L)%协方差
covL =
16 16 16 16
16 16 16 16
16 16 16 16
16 16 16 16
[本帖最后由niuniuyun 于2009-10-26 17:27 编辑]
6很多自变量,一个因变量,如何用神经网络进行变量选择,找出和因变量最相关的几个自变量?用哪些神经网络好呢?
原帖由史峰于 2009-10-15 17:32 发表
你好,BP和RBF等都应该可以,各种网络间差异应该不是很大,楼主的问题的具体是怎样的呢,能详细描述一下吗,比如数据的输入输出,训练集等等
一共有644个自变量,一个因变量。要在这644个自变量中选择和因变量最相关的。问题就是这样。 pca好像能做。神经网络也可以,可是不知道如何下手。
这个得具体问题具体分析,大体的思路是将所有自变量进行分组,所有分组的组合构成搜索空间,利用遗传算法找到最优的分组组合,对应的自变量就是筛选出来的输入变量
7 for i=1:nRept
net = newff(p_z,t_z,n,{'tansig','purelin'},'traingdx');
%net = newff(minmax(p_z),[n,1],{'tansig','purelin'},'traingdx');
% 初始化网络
%网络设置
yers{1}.initFcn = 'initnw';
net.inputWeights{1,1}.initFcn = 'rands';
net.biases{1,1}.initFcn = 'rands';
net = init(net);
% 训练网络
net.trainParam.show=100;
net.trainParam.mc=0.3;
net.trainParam.epochs=2000;
net.trainParam.goal=1e-5;
[net,tr]=train(net,p_z,t_z);
%调用TRAINGDX算法训练BP网络
%对BP网络进行仿真
temp=sim(net,p_sim_z);
re = mapminmax('reverse',temp,TS);
sum=re;
%echo off
end;
例子如上,请问如何保存所有神经网络模型,好做为以后预测用?
采用元胞数组,比如训练好一个网络net,设定一个元胞数组a=cell(1,5),a{1}=net,用该网络预测用sim(a{1},-)就可以
8 用PSO优化BP网络似乎效果比单纯用BP也没有太大改观啊,不知道大家仿真后效果如何?有的时候好像还不如bp训练的效果呀,该怎么调整呢?