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


Python tf.keras.optimizers.Ftrl用法及代碼示例


實現 FTRL 算法的優化器。

繼承自:Optimizer

用法

tf.keras.optimizers.Ftrl(
    learning_rate=0.001, learning_rate_power=-0.5, initial_accumulator_value=0.1,
    l1_regularization_strength=0.0, l2_regularization_strength=0.0,
    name='Ftrl', l2_shrinkage_regularization_strength=0.0, beta=0.0,
    **kwargs
)

參數

  • learning_rate Tensor 、浮點值或作為 tf.keras.optimizers.schedules.LearningRateSchedule 的計劃。學習率。
  • learning_rate_power 浮點值,必須小於或等於零。控製在訓練期間學習率如何降低。使用零表示固定的學習率。
  • initial_accumulator_value 累加器的起始值。隻允許零值或正值。
  • l1_regularization_strength 浮點值,必須大於或等於零。默認為 0.0。
  • l2_regularization_strength 浮點值,必須大於或等於零。默認為 0.0。
  • name 應用漸變時創建的操作的可選名稱前綴。默認為 "Ftrl"
  • l2_shrinkage_regularization_strength 浮點值,必須大於或等於零。這與上麵的 L2 不同,因為上麵的 L2 是一個穩定懲罰,而這個 L2 收縮是一個幅度懲罰。當輸入稀疏時,收縮隻會發生在活動權重上。
  • beta 一個浮點值,代表論文中的 beta 值。默認為 0.0。
  • **kwargs 關鍵字參數。允許是 "clipnorm""clipvalue" 之一。 "clipnorm" (float) 按標準裁剪漸變; "clipvalue" (float) 按值裁剪漸變。

拋出

  • ValueError 在任何無效論點的情況下。

“Follow The Regularized Leader”(FTRL)是穀歌在 2010 年代初為click-through 速率預測開發的優化算法。它最適合具有大而稀疏的特征空間的淺層模型。該算法由 McMahan 等人在 2013 年進行了說明。Keras 版本支持在線 L2 正則化(上述論文中說明的 L2 正則化)和shrinkage-type L2 正則化(在損失中添加 L2 懲罰)函數)。

初始化:

n = 0
sigma = 0
z = 0

一個變量 w 的更新規則:

prev_n = n
n = n + g ** 2
sigma = (sqrt(n) - sqrt(prev_n)) / lr
z = z + g - sigma * w
if abs(z) < lambda_1:
  w = 0
else:
  w = (sgn(z) * lambda_1 - z) / ((beta + sqrt(n)) / alpha + lambda_2)

符號:

  • lr 是學習率
  • g 是變量的梯度
  • lambda_1是L1正則化強度
  • lambda_2是L2正則化強度

查看 l2_shrinkage_regularization_strength 參數的文檔以了解啟用收縮時的更多詳細信息,在這種情況下,漸變將替換為帶有收縮的漸變。

參考:

相關用法


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