【问题标题】:MATLAB neural network weight initialization in multiple loops多个循环中的 MATLAB 神经网络权重初始化
【发布时间】:2014-10-30 06:44:47
【问题描述】:

首先检查这个链接:

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

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

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

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

谢谢。

【问题讨论】:

    标签: matlab optimization neural-network cross-validation


    【解决方案1】:

    您在 MathsWorks 的帖子中似乎已经回答了很多问题。

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

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

    【讨论】:

    • 感谢您的回答。所以我们应该保存'rng'并通过优化算法在每次调用这些代码时调用它作为成本函数,或者只在我们的循环之前使用'rng'并且在所有循环中使用随机数并且在每次调用成本函数时都不同?
    • 我对 rng 的理解是它会初始化随机数生成器,以供以后在模型开发中使用。这样,您可以为可预测的数字序列定义特定数字(重复相同的实验两次)。希望这会有所帮助!
    猜你喜欢
    • 2011-12-09
    • 2020-02-08
    • 2021-06-25
    • 2019-10-09
    • 1970-01-01
    • 2019-04-10
    • 1970-01-01
    • 2020-03-28
    • 1970-01-01
    相关资源
    最近更新 更多