我一直在寻找一种自动方式来决定我应该将多少层应用于我的网络,这取决于数据和计算机配置。我在网上搜索,但我找不到任何东西。也许我的关键字或寻找方式是错误的。

你有什么主意吗?

最佳答案

神经网络的层数或深度是其超参数之一。

这意味着它是一个无法从数据中学习到的数量,但是您应该在 尝试拟合您的数据集之前选择它 。根据 Bengio



有三种主要方法可以找出超参数的最佳值。前两个在我链接的论文中得到了很好的解释。

  • 手动搜索。研究人员使用众所周知的黑魔法,通过试错来选择最佳值。
  • 自动搜索。研究人员依靠自动化程序来加快搜索速度。
  • Bayesian optimization

  • 更具体地说,向深度神经网络添加更多层可能会提高性能(减少泛化误差),当它过度拟合训练数据时,性能会提高到一定数量。

    所以,在实践中,你应该用 4 层训练你的 ConvNet,尝试添加一个隐藏层并再次训练,直到你看到一些过度拟合。当然,需要一些强正则化技术(例如 dropout )。

    关于machine-learning - 如何在卷积神经网络中动态找到网络的深度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29545897/

    10-11 22:22
    查看更多