當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python mxnet.optimizer.Ftrl用法及代碼示例


用法:

class mxnet.optimizer.Ftrl(lamda1=0.01, learning_rate=0.1, beta=1, **kwargs)

參數

  • lamda1(float, optional) - L1 正則化係數。
  • learning_rate(float, optional) - 初始學習率。
  • beta(float, optional) - Per-coordinate 學習率相關參數。

基礎:mxnet.optimizer.optimizer.Optimizer

Ftrl 優化器。

引用自 Ad Click Prediction: a View from the Trenches ,可在 http://dl.acm.org/citation.cfm?id=2488200 獲得。

埃塔:

優化器通過以下方式更新權重:

rescaled_grad = clip(grad * rescale_grad, clip_gradient)
z += rescaled_grad - (sqrt(n + rescaled_grad**2) - sqrt(n)) * weight / learning_rate
n += rescaled_grad**2
w = (sign(z) * lamda1 - z) / ((beta + sqrt(n)) / learning_rate + wd) * (abs(z) > lamda1)

如果 weight 、 state 和 grad 的存儲類型都是row_sparse,稀疏更新申請者:

for row in grad.indices:
    rescaled_grad[row] = clip(grad[row] * rescale_grad, clip_gradient)
    z[row] += rescaled_grad[row] - (sqrt(n[row] + rescaled_grad[row]**2) - sqrt(n[row])) * weight[row] / learning_rate
    n[row] += rescaled_grad[row]**2
    w[row] = (sign(z[row]) * lamda1 - z[row]) / ((beta + sqrt(n[row])) / learning_rate + wd) * (abs(z[row]) > lamda1)

稀疏更新僅更新其 row_sparse 梯度索引出現在當前批次中的權重的 z 和 n,而不是為所有索引更新它。與原始更新相比,它可以為某些應用程序提供模型訓練吞吐量的較大改進。但是,它提供的語義與原始更新略有不同,並可能導致不同的經驗結果。

有關更新算法的詳細信息,請參閱 ftrl_update

除了 Optimizer 接受的參數之外,此優化器還接受以下參數。

相關用法


注:本文由純淨天空篩選整理自apache.org大神的英文原創作品 mxnet.optimizer.Ftrl。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。