實現 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
參數的文檔以了解啟用收縮時的更多詳細信息,在這種情況下,漸變將替換為帶有收縮的漸變。
參考:
相關用法
- Python tf.keras.optimizers.Optimizer.set_weights用法及代碼示例
- Python tf.keras.optimizers.schedules.serialize用法及代碼示例
- Python tf.keras.optimizers.Adam用法及代碼示例
- Python tf.keras.optimizers.Adamax用法及代碼示例
- Python tf.keras.optimizers.SGD用法及代碼示例
- Python tf.keras.optimizers.Optimizer用法及代碼示例
- Python tf.keras.optimizers.schedules.ExponentialDecay用法及代碼示例
- Python tf.keras.optimizers.schedules.PiecewiseConstantDecay用法及代碼示例
- Python tf.keras.optimizers.Nadam用法及代碼示例
- Python tf.keras.optimizers.RMSprop用法及代碼示例
- Python tf.keras.optimizers.schedules.deserialize用法及代碼示例
- Python tf.keras.optimizers.schedules.CosineDecay用法及代碼示例
- Python tf.keras.optimizers.schedules.CosineDecayRestarts用法及代碼示例
- Python tf.keras.optimizers.Optimizer.apply_gradients用法及代碼示例
- Python tf.keras.optimizers.Optimizer.get_weights用法及代碼示例
- Python tf.keras.optimizers.schedules.PolynomialDecay用法及代碼示例
- Python tf.keras.optimizers.serialize用法及代碼示例
- Python tf.keras.optimizers.schedules.InverseTimeDecay用法及代碼示例
- Python tf.keras.applications.inception_resnet_v2.preprocess_input用法及代碼示例
注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.keras.optimizers.Ftrl。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。