当我们训练一个 CNN 模型时,我们经常尝试过滤器的数量、卷积层的数量、FC 层、过滤器大小,有时还有步幅、激活函数等。通常在训练模型一次之后,这只是一个试验&错误过程。
有没有一种方法可以帮助我在训练之前从根本上构建我的模型?
一旦我训练了模型,我怎么知道这些变量(过滤器的数量、大小、卷积层的数量、FC 层)应该改变——增加还是减少?
PS这个问题假设数据量足够并且注释正确,但准确性仍然达不到标准。因此,我已经排除了该问题存在非架构缺陷的可能性。
当我们训练一个 CNN 模型时,我们经常尝试过滤器的数量、卷积层的数量、FC 层、过滤器大小,有时还有步幅、激活函数等。通常在训练模型一次之后,这只是一个试验&错误过程。
有没有一种方法可以帮助我在训练之前从根本上构建我的模型?
一旦我训练了模型,我怎么知道这些变量(过滤器的数量、大小、卷积层的数量、FC 层)应该改变——增加还是减少?
PS这个问题假设数据量足够并且注释正确,但准确性仍然达不到标准。因此,我已经排除了该问题存在非架构缺陷的可能性。
请参阅卷积神经网络架构的分析和优化(我的硕士论文)。
- 有没有一种方法可以帮助我在训练之前从根本上构建我的模型?
是的,但是架构学习方法是计算密集型的。当我写硕士论文时,运行 Google 实验大约需要 250,000 美元。同时,似乎有更有效的方法,例如https://autokeras.com/
见第 3 章。
- 一旦我训练了模型,我怎么知道这些变量(过滤器的数量、大小、卷积层的数量、FC 层)应该改变——增加还是减少?
有关一些方法,请参见第 2.5 章。但是这个问题没有灵丹妙药/没有明确的答案。