首页 > 解决方案 > 深度神经网络 - 要调整的参数顺序

问题描述

我是这个 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.

标签: machine-learningneural-networkdeep-learningconv-neural-networkrecurrent-neural-network

解决方案


简短的回答:你应该做很多实验!

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


推荐阅读