首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >神经网络隐神经元选择策略

神经网络隐神经元选择策略
EN

Data Science用户
提问于 2014-12-25 10:13:16
回答 2查看 506关注 0票数 1

我正试图确定MATLAB神经网络中隐藏神经元的最佳数量。我正在考虑采取以下战略:

  • 隐藏神经元的一些值的循环,例如1到40;
  • 对于每个神经元数目固定的神经网络,都要进行一定数量的训练(例如40次,由于时间原因限制时代性:我考虑这样做是因为网络似乎很难训练,一些时期之后的MSE非常高)。
  • 存储由不同数目的隐神经元组成的所有网络获得的MSE。
  • 执行前面的步骤超过1次,例如4次,以考虑初始随机权重,并考虑到最小均方的平均值。
  • 选择并执行具有许多隐藏神经元的NN上的“真实”训练,以使先前计算的MSE最小化。

我指的MSE是验证MSE:我的样本在培训、测试和验证中分裂以避免过度拟合,分别为70%、15%和15% )

其他与我的问题有关的资料包括:

拟合问题

9个输入神经元

2个输出神经元

1630个样本

这个策略能奏效吗?是否有更好的准则可采用?谢谢

编辑:测试完成了,所以结果建议我采用12个神经元?(低验证MSE和低于2*个数的神经元数目?)但18岁也可能是好事..。

EN

回答 2

Data Science用户

发布于 2014-12-25 15:40:43

经验法则是:

  • 从多个隐神经元开始,数量相等(或稍高),即特征数。
  • 如果是9,我的建议是从9*2 = 18开始,以涵盖更广泛的可能性。
  • 确保您的测试和验证集被选中“公平”:随机选择和更改种子的次数,以测试不同的配置将是可以的。

一般来说,每一个特征数相等的神经元数会使每个隐神经元试图学习每个特征所添加的特殊事物,因此可以说它是“学习每一个特征”。虽然这听起来不错,但可能会显得过于合适。

由于输入的数量和数据集的大小都很小,所以可以从双(18)的隐藏层大小开始,然后开始降低。当训练误差和测试误差稳定在低于阈值的差值时,就可以找到一个更好的泛化模型。

神经网络在寻找局部最优解方面有很强的优势,它是从一个起点深入探索一个解的方法。但是,起点也是非常重要的。如果你没有得到一个很好的推广,你可以尝试寻找良好的初始起点的混合神经网络方法。例如,一种常见的方法是使用遗传算法找到初始的权重组合,然后从这一点开始进行神经处理。考虑到您的搜索空间将被更好地覆盖(如果您的问题确实需要的话)。

对于机器学习中的每一个问题,在将数据引入神经网络之前,对数据进行清理是非常重要的。尽量做到非常详细,以避免神经网络学习你已经知道的东西。例如,如果您知道两个特性是如何关联的,那么通过显式地显示这个相关性来改进输入数据,从而减少给NN的工作量(这实际上可能会给您带来麻烦)。

票数 2
EN

Data Science用户

发布于 2014-12-25 18:10:13

顶级:

原则是选择最简单、性能最好的网络。参见本出版物及其PDF格式

方法:

因此,您的建议测试(在每一个隐藏节点上培训多个网络)并绘制结果。在最少的节点数下,您将看到最差的性能。随着节点数量的增加,您将看到性能的提高(减少错误)。在N点,您将看到性能似乎达到了一个上限,超过这一点的节点数量将停止提供显着的性能提升。随着训练变得更加困难,进一步的增加可能会对表现造成轻微的伤害)。这一点N是你想要的节点数。

它是如何为我工作的:

我第一次使用这个方法的时候,它创建了一个漂亮的几乎乙状结肠的功能,它有一个非常清楚的节点数量,这些节点都是为了获得好的结果而需要的。我希望这对你有用,也对我有用。

票数 0
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/3760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档