【问题标题】:FTRL optimizer in tensorflow seems not work well张量流中的 FTRL 优化器似乎效果不佳
【发布时间】:2018-12-08 08:42:32
【问题描述】:

尝试通过带有 FTRL 优化器的 tensorflow 在大规模数据集上训练 LR 模型,用于 ctr 任务。 tensorflow/sklearn auc 和培训/评估 auc 都可以。但产品性能不好。我试图降低分布式级别,但问题无法完全解决。有什么建议?

【问题讨论】:

    标签: tensorflow distributed logistic-regression


    【解决方案1】:

    找到至少两个原因:

    首先是底层实现与原论文不完全相同。我不知道他们为什么这样做,需要解释。

    其次,用于更新权重的梯度是批梯度,这意味着每批更新一次 ps 权重(在现代分布式系统中非常微不足道,但不适合原始论文中的场景),总结起来它没有利用训练数据记录方式。个人认为第二个才是重点。

    【讨论】:

    • 我观察到的两个区别:1) beta 参数是通过累加器的初始化实现的;2) lambda 2 部分乘以常数 2。第一个区别可以看作有点像1+x^0.5 和 (1+x)^0.5 之间的差异及其影响需要进一步实验。
    • 你能提供一些关于非记录训练的见解吗?
    • 你可以使用小数据集的 tf.gradients api 来查看优化器中使用的梯度。并且可以参考自动微分,就是tf计算其梯度的方式
    • 此外,我正在研究分布式宽模型。就我而言,批量大小似乎对收敛有很大影响。
    • 抱歉回复晚了,请了病假。我也在做分布式 WDL 的工作,个人觉得官方的例子不如预期的好。不确定是否完全是由渐变问题引起的。
    猜你喜欢
    • 1970-01-01
    • 2017-09-22
    • 2017-01-29
    • 1970-01-01
    • 1970-01-01
    • 2016-08-14
    • 1970-01-01
    • 2015-01-21
    • 1970-01-01
    相关资源
    最近更新 更多