4

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

你有什么主意吗?

4

1 回答 1

1

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

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

我们将学习算法 A 的超参数定义为在将 A 实际应用于数据之前设置的变量,该变量不是由学习算法本身直接选择的。

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

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

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

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

于 2015-09-02T19:05:37.943 回答