Spec-Zone.ru › TensorFlow 1.15

tf.keras.optimizers.Ftrl

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

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

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

Псевдонимы

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

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

tf.compat.v1.keras.optimizers.Ftrl, `tf.compat.v2.keras.optimizers.Ftrl`, `tf.compat.v2.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, **kwargs
)

См. Алгоритм 1 в этой статье. Эта версия поддерживает как онлайн L2 (штраф L2, указанный в статье выше), так и L2 типа сжатия (добавление штрафа L2 к функции потерь).

Инициализация:

$$t = 0$$
$$n_{0} = 0$$
$$\sigma_{0} = 0$$
$$z_{0} = 0$$

Обновление (

$$i$$

— индекс переменной):

$$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} }) / \alpha + \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.

Аргументы
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

Spec-Zone.ru

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