【发布时间】:2016-09-24 20:36:48
【问题描述】:
我有一个非常简单的 ANN,它使用 Tensorflow 和 AdamOptimizer 来解决回归问题,我现在可以调整所有超参数。
目前,我看到了许多需要调整的不同超参数:
- 学习率:初始学习率、学习率衰减
- AdamOptimizer 需要 4 个参数(学习率、beta1、beta2、epsilon),因此我们需要调整它们 - 至少是 epsilon
- 批量大小
- nb 次迭代
- Lambda L2-正则化参数
- 神经元数量,层数
- 对于输出层,隐藏层使用什么样的激活函数
- 辍学参数
我有两个问题:
1) 你有没有看到我可能忘记的其他超参数?
2) 目前,我的调音是相当“手动”的,我不确定我是否以正确的方式进行所有操作。 是否有特殊的顺序来调整参数?例如,首先是学习率,然后是批量大小,然后...... 我不确定所有这些参数都是独立的——事实上,我很确定其中一些不是。哪些明显独立,哪些明显不独立?然后我们应该把它们调到一起吗? 是否有任何论文或文章讨论以特殊顺序正确调整所有参数?
编辑: 这是我得到的不同初始学习率、批量大小和正则化参数的图表。紫色曲线对我来说完全很奇怪......因为成本下降的速度比其他曲线慢,但它被困在较低的准确率上。模型是否有可能陷入局部最小值?
对于学习率,我使用了衰减: LR(t) = LRI/sqrt(epoch)
感谢您的帮助! 保罗
【问题讨论】:
-
嗨,保罗,我想知道你为什么使用
LRI/sqrt(epoch)作为学习率衰减?我正在使用LRI/max(epoch_0, epoch),我已将epoch_0设置为我希望衰减开始的时期,但如果你像你一样取分母的平方根,也许你会得到更快的收敛。您对学习率衰减有任何参考,还是您自己或多或少地想出了它? -
嗨@HelloGoodbye!在介绍 Adam 优化器 (arxiv.org/pdf/1412.6980.pdf) 的文章中,他们使用学习率的平方根衰减来证明定理 4.1 的收敛性。
标签: neural-network tensorflow hyperparameters