tf.keras.optimizers.legacy.Ftrl
Оптимизатор, реализующий алгоритм FTRL.
Наследуется от: Ftrl, Optimizer
tf.keras.optimizers.legacy.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
)
"Follow The Regularized Leader" (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 для получения более подробной информации, когда включено сжатие, в этом случае градиент заменяется градиентом со сжатием.
| Аргументы | |
|---|---|
learning_rate | Вещественное число с плавающей точкой или расписание, являющееся 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 | Вещественное число, представляющее значение бета из статьи. По умолчанию 0,0. |
**kwargs | Именованные аргументы. Допустимые аргументы: clipvalue, clipnorm, global_clipnorm. Если clipvalue (вещественное число) задано, градиент каждого веса обрезается так, чтобы он не был выше этого значения. Если clipnorm (вещественное число) задано, градиент каждого веса обрезается индивидуально так, чтобы его норма не была выше этого значения. Если global_clipnorm (вещественное число) задано, градиент всех весов обрезается так, чтобы их глобальная норма не была выше этого значения. |
Ссылка:
| Исключения | |
|---|---|
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/legacy/Ftrl