多循环中的MATLAB神经网络权重初始化

时间:2014-09-05 10:24:57

标签: matlab optimization neural-network cross-validation

首先查看此链接:

http://www.mathworks.com/matlabcentral/newsreader/view_thread/331830#911882

这是一种用train/test/validation数据集创建神经网络的方法。我有一个优化算法来优化神经网络输入,神经元和层数(最多2个),这个结构在这里呈现:

http://www.mathworks.com/matlabcentral/answers/152947-finding-best-neural-network-structure-using-optimization-algorithms-and-cross-validation

如您所见,这是主循环结构:

 *Position_1(for weight initialization)*

 for i=1:num_of_loops
 *Position_2(for weight initialization)* 

 - repeating cross validation
 for i=1:num_of_kfolds
 *Position_3(for weight initialization)*
 - Cross validation loop

 end
  end

第一个问题:我应该在哪里初始化权重(使用configure神经网络的patternent函数(我有二元分类问题)。位置1,位置2或位置3 ?

第二个问题:我应该把rng(0)放在哪里。在第一个链接中,我们在交叉验证循环之前有这个功能。我为什么要使用这个函数?我应该在哪里为我提出的结构设置它?

Ps。我正在使用外循环(i=1:num_of_loops)来获得更可靠的输出。在找到最佳模型后,我将使用所有最佳模型结构的神经网络(num_of_loops*num_of_kfolds),将样本数据插入其中并在输出之间取平均值。

感谢。

1 个答案:

答案 0 :(得分:1)

似乎问题在MathsWorks的主题中得到了很好的回答。

问题1:关于第一个问题,您之前的问题hereMathsWorks的问题都表明位置3适合初始化权重。

问题2:如上所述here' rng在外循环之前只使用一次'