【问题标题】:Deep Neural Network - Order of the Parameters to tune深度神经网络 - 要调整的参数顺序
【发布时间】:2020-02-01 19:40:51
【问题描述】:

我是这个 DNN 领域的新手,我厌倦了在 DNN 中调整超参数和其他参数,因为要调整很多参数,这就像没有计算机帮助的多变量分析。由于 DNN 中存在大量变量,人类如何朝着使用 DNN 的任务所能达到的最高精度迈进。我们如何知道使用 DNN 可以获得什么准确度,还是我必须放弃 DNN?我迷路了。感谢您的帮助。

我遇到的主要问题:

1. What are the limits of DNN / when we have to give up on DNN

2. What is the proper way of tunning without missing good parameter values

这是我通过学习这个领域的理论得到的总结。如果我错了或被误解,我们将不胜感激。您可以添加我错过的任何内容。根据我的知识按重要性排序。

过拟合-

1. reduce the number of layers
2. reduce the number of nodes of layers
3. add regularizers (l1/ l2/ l1-l2) - have to decide the factors
4. add dropout layers and -have to decide the dropout factor
5. reduce batch size
6. stop earlier

欠拟合

1. increase the number of layers
2. increase number of nodes of layers
3. Add different types of layers (Conv, LSTM, ...)
4. add learning rate decay (decide the type and parameters for the type)
5. reduce the learning rate

除了我们通常可以做的以外,

1. number of epochs (by seeing what is happening while model training)
2. Adjust Learning Rate
3. batch normalization -for fast learning
4. initializing techniques (zero/ random/ Xavier / he)
5. different optimization algorithms

自动调整方法

- Gridsearchcv - but for this, we have to choose what we want to change and it takes a lot of time.

【问题讨论】:

  • 您忘记了在我看来最重要的参数:学习率!如果您的学习速度太慢,请增加它。如果您觉得自己的最终表现不够好,请降低它。
  • 先生,您是对的,我忘了添加它。我的观点是,可以通过查看模型在任务上的表现来改变学习率,如果学习太慢,增加 lr,学习过度,减少 lr。

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


【解决方案1】:

简短回答:您应该进行大量实验

长答案:起初,您可能会因拥有大量可以调整的旋钮而不知所措,但您会逐渐变得有经验。获得一些关于如何调整模型的超参数的直觉的非常快速的方法是尝试复制其他研究人员发表的内容。通过复制结果(并尝试改进最先进的技术),您可以获得关于深度学习的直觉。
我个人在调整模型的超参数时没有遵循特定的顺序。相反,我尝试实现一个肮脏的模型并尝试改进它。例如,如果我看到验证准确度出现过冲,这可能表明模型在最佳点附近反弹,我将学习率除以 10,然后看看它是如何进行的。如果我看到模型开始过拟合,我会在过拟合之前使用提前停止来保存最佳参数。我还使用辍学率和权重衰减来找到它们的最佳组合,以便在保持正则化效果的同时使模型足够适合。等等。
为了纠正您的一些假设,添加不同类型的层不一定有助于您的模型不过度拟合。此外,有时(尤其是在使用迁移学习时,这是当今的一种趋势),您不能简单地将卷积层添加到您的神经网络中。
假设您正在处理计算机视觉任务,数据增强是另一种有用的方法,可以增加可用数据量来训练您的模型并执行其性能。
另外,请注意,Batch Normalization 也具有正则化效果。权重衰减是另一种被广泛使用的 l2 正则化实现。
另一种可以改进神经网络训练的有趣技术是用于学习率和动量的 One Cycle 策略(如果适用)。看看这篇论文:https://doi.org/10.1109/WACV.2017.58

【讨论】:

  • 非常感谢,先生...你能给我一个想法,我可以在哪里放弃 DNN...这意味着我的火车 acc 是 99.9%(通过过度拟合)和我的 val_acc是 80%……如果我更努力地工作,我可能得到的 val_acc 的极限是多少。 (对于具有人为错误 -> 0 的任务)。我怎么知道与 DNN 无关,我不得不换一种方法(SVM/Randomforest /...)
  • 对此没有明确的答案。我唯一能告诉你的是,对于计算机视觉,你可能不需要切换到 SVM 或随机森林。相反,你应该改变你的 DNN 架构,看看它是否有帮助。此外,我无法预测您在任务中可以达到的准确度。没有人可以。祝你好运
猜你喜欢
  • 2020-09-29
  • 1970-01-01
  • 2018-05-22
  • 2013-09-22
  • 2016-12-09
  • 2019-12-02
  • 1970-01-01
  • 1970-01-01
  • 2016-09-24
相关资源
最近更新 更多