实现 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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。