Spec-Zone.ru › TensorFlow 2.9

tf.keras.optimizers.Ftrl

Просмотреть исходный код на GitHub

Оптимизатор, реализующий алгоритм FTRL.

Наследуется от: Optimizer

Просмотр псевдонимов

Псевдонимы для миграции

См. Руководство по миграции для получения более подробной информации.

tf.compat.v1.keras.optimizers.Ftrl

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
)

«Следуй за регулярным лидером» (FTRL) — алгоритм оптимизации, разработанный в Google для прогнозирования показателей кликов в начале 2010-х годов. Он наиболее подходит для мелкомасштабных моделей с большими и разреженными пространствами признаков. Алгоритм описан в работе McMahan et al., 2013. Версия Keras поддерживает онлайн-регуляризацию L2 (регуляризацию L2, описанную в упомянутой статье) и регуляризацию 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, чтобы получить подробности при включенном сжатии, в котором случае градиент заменяется градиентом со сжатием.

Args
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 ключевые аргументы. Разрешённые аргументы — clipvalue, clipnorm, global_clipnorm. Если clipvalue (с плавающей точкой) задано, градиент каждого веса ограничен значением, не превышающим это значение. Если clipnorm (с плавающей точкой) задано, градиент каждого веса индивидуально ограничивается так, чтобы его норма не превышала это значение. Если global_clipnorm (с плавающей точкой) задано, градиент всех весов ограничивается так, чтобы их глобальная норма не превышала это значение.

Ссылка:

  • McMahan et al., 2013
Исключения
ValueError в случае любого некорректного аргумента.

© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.9/api_docs/python/tf/keras/optimizers/Ftrl

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API