【问题标题】:How do I properly tune parameters for a neural network? [closed]如何正确调整神经网络的参数? [关闭]
【发布时间】:2020-08-15 19:04:29
【问题描述】:
如何调整神经网络的参数,例如层数、层类型、宽度等?现在我只是猜测好的参数。这对我来说变得非常昂贵和耗时,因为我将调整网络然后发现它并没有比以前的模型做得更好。有没有更好的方法来调整模型以获得良好的测试和验证分数?
【问题讨论】:
标签:
python-3.x
machine-learning
optimization
【解决方案1】:
这完全是命中和跟踪方法。你必须玩它。没有特定的方法可以做到这一点。尝试使用 GPU 而不是 CPU 来快速计算,例如 “Google Colab”。我的建议是记下所有可以调整的参数。
例如:
-
优化器:尝试使用不同的优化器,例如 Adam、SGD 等等
-
学习率:这是一个非常关键的参数,尝试将其从 0.0001 更改为 0.001,步长为 0.0001。
-
隐藏层数:尝试增加no。隐藏层数。
- 如果需要,请尝试使用 Batch Normalization 或 Drop out 或两者兼用。
- 使用正确的损失函数。
- 更改批量大小和Epoch。
【解决方案2】:
隐藏层、Epochs、batch-size:尝试不同的数字。
优化器:Adam(提供更好的结果)、Rmsprop
Dropout:0.2 在大多数情况下效果很好
此外,您还应该尝试不同的激活函数(例如,您可以在隐藏层使用 ReLu,在输出层使用 sigmoid 进行二元类分类,使用 softmax 进行多类分类。