tf.keras.optimizers.Ftrl
| Просмотреть исходный код на GitHub |
Оптимизатор, реализующий алгоритм 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
)
См. Алгоритм 1 в этой статье. Эта версия поддерживает как онлайн L2 (штраф L2, указанный в статье выше), так и L2 типа усадки (добавление штрафа L2 к функции потерь).
Инициализация:
$$t = 0$$
$$n_{0} = 0$$
$$\sigma_{0} = 0$$
$$z_{0} = 0$$
Обновление (
$$i$$
индекс переменной,
$$\alpha$$
скорость обучения):
$$t = t + 1$$
$$n_{t,i} = n_{t-1,i} + g_{t,i}^{2}$$
$$\sigma_{t,i} = (\sqrt{n_{t,i} } - \sqrt{n_{t-1,i} }) / \alpha$$
$$z_{t,i} = z_{t-1,i} + g_{t,i} - \sigma_{t,i} * w_{t,i}$$
$$w_{t,i} = - ((\beta+\sqrt{n_{t,i} }) / \alpha + 2 * \lambda_{2})^{-1} * (z_{i} - sgn(z_{i}) * \lambda_{1}) if \abs{z_{i} } > \lambda_{i} else 0$$
См. документацию параметра l2_shrinkage_regularization_strength для получения более подробной информации, когда включена усадка, в этом случае градиент заменяется на gradient_with_shrinkage.
| Args | |
|---|---|
learning_rate | Значение скорости обучения, значение с плавающей точкой или расписание, являющееся tf.keras.optimizers.schedules.LearningRateSchedule. Скорость обучения. |
learning_rate_power | Значение с плавающей точкой, должно быть меньше или равно нулю. Определяет, как скорость обучения уменьшается во время обучения. Используйте ноль для фиксированной скорости обучения. |
initial_accumulator_value | Начальное значение для аккумуляторов. Допускаются только нулевые или положительные значения. |
l1_regularization_strength | Значение с плавающей точкой, должно быть больше или равно нулю. |
l2_regularization_strength | Значение с плавающей точкой, должно быть больше или равно нулю. |
name | Необязательный префикс имени для операций, созданных при применении градиентов. По умолчанию "Ftrl". |
l2_shrinkage_regularization_strength | Значение с плавающей точкой, должно быть больше или равно нулю. Отличается от L2 выше тем, что L2 выше — это штраф стабилизации, а эта усадка L2 — штраф по величине. При разреженной входной информации усадка будет происходить только на активных весах. |
beta | Значение с плавающей точкой, представляющее значение бета из статьи. |
**kwargs | Дополнительные аргументы. Допускается один из "clipnorm" или "clipvalue". "clipnorm" (с плавающей точкой) ограничивает градиенты по норме; "clipvalue" (с плавающей точкой) ограничивает градиенты по значению. |
Ссылка:
| Возбуждает | |
|---|---|
ValueError | в случае любого неверного аргумента. |
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/keras/optimizers/Ftrl