当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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