如何动态找到最佳学习率和衰减率?
像tf.train.exponential_decay这样的函数不能根据不同情况动态改变,因为起始速率和衰减速率是预先定义的。
这是一个开放的研究问题,但在大批量回溯线搜索可能是有用的。
请注意,对于足够小的邻域,您的损失函数近似为线性,因此如果您采取足够小的步长,您可以预测您的损失减少量。
因此,我们的想法是,您可以预测实际减少的预期减少量。如果它太近了,你太保守了,你增加了步长。如果它太过分,那就相反了。
在TensorFlow中没有内置的原语可以执行此操作,但您可以使用较低级别的操作来实现它。这是关于MNIST自动编码器的端到端示例:https://github.com/yaroslavvb/stuff/tree/master/line_search_example
学习速度很快就会达到0.05,然后在你收敛后它无法取得进展,所以它会降到零。