如何在卷积神经网络中动态找到网络的深度

时间:2015-04-09 18:10:59

标签: machine-learning neural-network convolution deep-learning conv-neural-network

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

你有什么想法吗?

1 个答案:

答案 0 :(得分:1)

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

这意味着它是一个无法从数据中学习的数量,但您应该选择之前尝试适合您的数据集。根据{{​​3}},

  

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

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

  • 手动搜索。使用着名的黑魔法,研究人员通过“尝试错误”选择最佳值。
  • 自动搜索。研究人员依靠自动程序来加速搜索。
  • Bengio

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

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