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, **kwargs
)
См. Алгоритм 1 в этой статье. Эта версия поддерживает как онлайн L2 (штраф L2, указанный в статье выше), так и L2 типа сжатия (добавление штрафа L2 к функции потерь).
Инициализация:
Обновление (
— индекс переменной):
См. документацию параметра l2_shrinkage_regularization_strength для получения подробной информации, когда включено сжатие, где градиент заменяется на gradient_with_shrinkage.
| Аргументы | |
|---|---|
learning_rate | Вещественное значение или константа. |
learning_rate_power | Вещественное значение, должно быть меньше или равно нулю. Управляет тем, как скорость обучения уменьшается во время обучения. Используйте ноль для фиксированной скорости обучения. |
initial_accumulator_value | Начальное значение для аккумуляторов. Разрешены только нулевые или положительные значения. |
l1_regularization_strength | Вещественное значение, должно быть больше или равно нулю. |
l2_regularization_strength | Вещественное значение, должно быть больше или равно нулю. |
name | Необязательный префикс имени для операций, созданных при применении градиентов. По умолчанию "Ftrl". |
l2_shrinkage_regularization_strength | Вещественное значение, должно быть больше или равно нулю. Отличается от L2 выше тем, что L2 выше — это штраф стабилизации, а L2 сжатия — штраф за величину. Формула FTRL может быть записана как: w_{t+1} = argminw(\hat{g}{1:t}w + L1||w||_1 + L2||w||_2^2), где \hat{g} = g + (2L2_shrinkagew), а g — градиент функции потерь относительно весов w. В частности, при отсутствии регуляризации L1 она эквивалентна следующему правилу обновления: w_{t+1} = w_t - lr_t / (1 + 2L2lr_t) * g_t - 2L2_shrinkagelr_t / (1 + 2L2lr_t) * w_t где lr_t — скорость обучения в момент t. При входных данных sparse сжатие произойдет только для активных весов. |
**kwargs | Дополнительные ключевые аргументы. Разрешено использовать {clipnorm, clipvalue, lr, decay}. clipnorm — ограничение градиентов по норме; clipvalue — ограничение градиентов по значению, decay включено для обратной совместимости, чтобы разрешить обратную временную затухающую скорость обучения. lr включено для обратной совместимости, рекомендуется использовать learning_rate вместо него. |
| Возможные ошибки | |
|---|---|
ValueError | Если какой-либо из аргументов неверен. |
| Атрибуты | |
|---|---|
iterations | Переменная. Количество шагов обучения, выполненных этим оптимизатором. |
weights | Возвращает переменные этого оптимизатора в порядке их создания. |
Методы
add_slot
add_slot(
var, slot_name, initializer='zeros'
)
Добавляет новую переменную-слот для var.
add_weight
add_weight(
name, shape, dtype=None, initializer='zeros', trainable=None,
synchronization=tf.VariableSynchronization.AUTO,
aggregation=tf.VariableAggregation.NONE
)
apply_gradients
apply_gradients(
grads_and_vars, name=None
)
Применяет градиенты к переменным.
Это вторая часть minimize(). Возвращает Operation, который применяет градиенты.
| Аргументы | |
|---|---|
grads_and_vars | Список пар (градиент, переменная). |
name | Необязательное имя возвращаемой операции. По умолчанию имя, переданное конструктору Optimizer. |
| Возвращает | |
|---|---|
Operation для применения указанных градиентов. Значение iterations автоматически увеличится на 1. |
| Возможные ошибки | |
|---|---|
TypeError | Если grads_and_vars имеет неправильный формат. |
ValueError | Если ни у одной из переменных нет градиента. |
from_config
@classmethod
from_config(
config, custom_objects=None
)
Создаёт оптимизатор по его конфигурации.
Этот метод — обратный к get_config, способный восстановить тот же оптимизатор по словарю конфигурации.
| Аргументы | |
|---|---|
config | Словарь Python, обычно результат вызова get_config. |
custom_objects | Словарь Python, сопоставляющий имена дополнительным объектам Python, используемым для создания этого оптимизатора, например, функции, используемой для гиперпараметра. |
| Возвращает | |
|---|---|
| Экземпляр оптимизатора. |
get_config
get_config()
Возвращает конфигурацию оптимизатора.
Конфигурация оптимизатора — словарь Python (сериализуемый), содержащий конфигурацию оптимизатора. Этот же оптимизатор можно позже восстановить (без сохранённого состояния) по этой конфигурации.
| Возвращает | |
|---|---|
| Словарь Python. |
get_gradients
get_gradients(
loss, params
)
Возвращает градиенты loss по отношению к params.
| Аргументы | |
|---|---|
loss | Тензор потерь. |
params | Список переменных. |
| Возвращает | |
|---|---|
| Список тензоров градиентов. |
| Возможные ошибки | |
|---|---|
ValueError | В случае невозможности вычисления градиента (например, если функция градиента не реализована). |
get_slot
get_slot(
var, slot_name
)
get_slot_names
get_slot_names()
Список имён слотов этого оптимизатора.
get_updates
get_updates(
loss, params
)
get_weights
get_weights()
minimize
minimize(
loss, var_list, grad_loss=None, name=None
)
Минимизирует loss путём обновления var_list.
Этот метод просто вычисляет градиент с помощью tf.GradientTape и вызывает apply_gradients(). Если вы хотите обработать градиент перед применением, то вызовите tf.GradientTape и apply_gradients() явно, вместо использования этой функции.
| Аргументы | |
|---|---|
loss | Вызываемая функция без аргументов, которая возвращает значение для минимизации. |
var_list | Список или кортеж объектов Variable для обновления, чтобы минимизировать loss, или вызываемая функция, возвращающая список или кортеж объектов Variable. Используйте вызываемую функцию, когда список переменных иначе был бы неполным до minimize, так как переменные создаются в первый раз, когда вызывается loss. |
grad_loss | Необязательно. Объект Tensor, содержащий градиент, вычисленный для loss. |
name | Необязательное имя для возвращаемой операции. |
| Возвращаемые значения | |
|---|---|
Операция, которая обновляет переменные в var_list. Если global_step не был None, эта операция также увеличивает global_step. |
| Исключения | |
|---|---|
ValueError | Если некоторые из переменных не являются объектами Variable. |
set_weights
set_weights(
weights
)
variables
variables()
Возвращает переменные этого оптимизатора в порядке их создания.
© 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/r1.15/api_docs/python/tf/keras/optimizers/Ftrl