【发布时间】: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