2017-05-08 115 views
1

如何动态地找到最佳学习率和衰减率?有没有内置功能?
像tf.train.exponential_decay这样的函数不能根据不同的情况动态地改变,因为起始速率和衰减速率是预定义的。 谢谢!优化Tensorflow学习率

+0

你能够在每个时代暂停训练并改变学习速度吗? –

+0

是的,我可以。但关键是我怎么能决定这个速度在某个点上是最好的价值。 –

+0

@迎潮雄这是一个尚未解决的AI研究问题 –

回答

1

这是一个开放的研究问题,但对于大批量的回溯行搜索可能很有用。

请注意,您的损失函数对于足够小的邻域是近似线性的,所以如果采取的步骤足够小,则可以预测损失减少量。

所以这个想法是,你看看预计损失减少与实际减少。如果它太接近了,你太保守了,你会增加步长。如果太远,则相反。

在TensorFlow中没有内置原语来完成此操作,但是您可以使用较低级别的操作来实现它。以下是MNIST自动编码器的端到端示例:https://github.com/yaroslavvb/stuff/tree/master/line_search_example

学习速度快速上升到0.05,然后在收敛后无法取得进展,因此它降为零。

enter image description here