我是DNN领域的新手,我厌倦了DNN中的Tunning超参数和其他参数,因为要调整的参数很多,就像多变量分析一样,不需要计算机的帮助。由于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.
答案 0 :(得分:0)
简短答案:您应该尝试很多!
长答案:起初,您可能会因拥有大量可以调整的旋钮而感到不知所措,但是您逐渐变得经验丰富。一种获得关于如何调整模型超参数的直觉的快速方法是尝试复制其他研究人员已发表的内容。通过复制结果(并尝试改进最新技术),您可以获得有关深度学习的直觉。
我个人在调整模型的超参数时没有遵循特定的顺序。相反,我尝试实现一个肮脏的模型并尝试对其进行改进。例如,如果我发现验证准确性存在过冲现象,这可能表明该模型在最佳点附近反弹,那么我将学习率除以十,然后观察其发展趋势。如果我看到模型开始过度拟合,则可以在过度拟合之前使用尽早停止以保存最佳参数。我还研究了辍学率和权重衰减,以找到它们的最佳组合,以使模型足够拟合,同时保持正则化效果。依此类推。
要更正您的某些假设,添加不同类型的图层不一定会帮助您的模型不会过拟合。而且,有时(尤其是在使用迁移学习时,这是当今的一种趋势),您不能简单地在神经网络中添加卷积层。
假设您要处理计算机视觉任务,则数据增强是增加有用数据量以训练模型并执行其性能的另一种有用方法。
另外,请注意,批量标准化还具有正则化效果。权重衰减是广泛使用的l2正则化的另一种实现方式。
可以改善神经网络训练的另一种有趣的技术是用于学习速率和动量的“单周期”策略(如果适用)。查看本文:https://doi.org/10.1109/WACV.2017.58