Spec-Zone.ru › TensorFlow 1.15

tf.contrib.constrained_optimization.AdditiveExternalRegretOptimizer

Оптимизатор, основанный на минимизации внешнего сожаления.

Этот оптимизатор использует заданные оптимизаторы tf.compat.v1.train.Optimizer для совместной минимизации по параметрам модели и максимизации по множителям Лагранжа, причём последняя максимизация выполняется с использованием аддитивных обновлений и алгоритма, минимизирующего внешнее сожаление.

Для более подробной информации обратитесь к:

Cotter, Jiang и Sridharan. "Two-Player Games for Efficient Non-Convex Constrained Optimization". https://arxiv.org/abs/1804.06500

Используемая этим оптимизатором формулировка — стандартная формулировка с помощью лагранжиана — приведена в определении 1 и обсуждается в разделе 3. Она наиболее похожа на алгоритм 3 в приложении С.3, с двумя отличиями: используются прокси-ограничения (если они предоставлены) при обновлении параметров модели и используются tf.compat.v1.train.Optimizer вместо SGD для «внутренних» обновлений.

Аргументы
optimizer tf.compat.v1.train.Optimizer, используемый для оптимизации целевой функции и части прокси-ограничений задачи ConstrainedMinimizationProblem. Если constraint_optimizer не предоставлен, он также будет использован для оптимизации множителей Лагранжа.
constraint_optimizer необязательный tf.compat.v1.train.Optimizer, используемый для оптимизации множителей Лагранжа.
maximum_multiplier_radius число с плавающей запятой, необязательный верхний предел для суммы множителей Лагранжа.
Исключения
ValueError Если параметр maximum_multiplier_radius неположителен.
Атрибуты
constraint_optimizer Возвращает оптимизатор tf.compat.v1.train.Optimizer, используемый для множителей Лагранжа.
optimizer Возвращает оптимизатор tf.compat.v1.train.Optimizer, используемый для оптимизации.

Методы

minimize

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

minimize(
    minimization_problem, unconstrained_steps=None, global_step=None, var_list=None,
    gate_gradients=train_optimizer.Optimizer.GATE_OP, aggregation_method=None,
    colocate_gradients_with_ops=False, name=None, grad_loss=None
)

Возвращает объект для минимизации заданной ограниченной задачи.

Этот метод объединяет функциональность minimize_unconstrained и minimize_constrained. Если global_step < unconstrained_steps, выполняется неограниченное обновление, а если global_step ≥ unconstrained_steps, выполняется ограниченное обновление.

Это сделано для того, чтобы можно было инициализировать ограниченный оптимизатор с приближенным оптимумом неограниченной задачи.

Аргументы
minimization_problem ConstrainedMinimizationProblem, задача, которую нужно оптимизировать.
unconstrained_steps целое число, количество шагов, на протяжении которых должны выполняться неограниченные обновления, прежде чем перейти к ограниченным обновлениям.
global_step как в методе minimize оптимизатора tf.compat.v1.train.Optimizer.
var_list как в методе minimize оптимизатора tf.compat.v1.train.Optimizer.
gate_gradients как в методе minimize оптимизатора tf.compat.v1.train.Optimizer.
aggregation_method как в методе minimize оптимизатора tf.compat.v1.train.Optimizer.
colocate_gradients_with_ops как в методе minimize оптимизатора tf.compat.v1.train.Optimizer.
name как в методе minimize оптимизатора tf.compat.v1.train.Optimizer.
grad_loss как в методе minimize оптимизатора tf.compat.v1.train.Optimizer.
Возвращает
Operation, объект train_op.
Исключения
ValueError Если unconstrained_steps предоставлен, но global_step нет.

minimize_constrained

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

minimize_constrained(
    minimization_problem, global_step=None, var_list=None,
    gate_gradients=train_optimizer.Optimizer.GATE_OP, aggregation_method=None,
    colocate_gradients_with_ops=False, name=None, grad_loss=None
)

Возвращает объект для минимизации заданной ограниченной задачи.

В отличие от minimize_unconstrained, эта функция пытается найти решение, которое минимизирует objective часть задачи минимизации, удовлетворяя constraints части.

Аргументы
minimization_problem ConstrainedMinimizationProblem, задача для оптимизации.
global_step как в методе minimize в tf.compat.v1.train.Optimizer.
var_list как в методе minimize в tf.compat.v1.train.Optimizer.
gate_gradients как в методе minimize в tf.compat.v1.train.Optimizer.
aggregation_method как в методе minimize в tf.compat.v1.train.Optimizer.
colocate_gradients_with_ops как в методе minimize в tf.compat.v1.train.Optimizer.
name как в методе minimize в tf.compat.v1.train.Optimizer.
grad_loss как в методе minimize в tf.compat.v1.train.Optimizer.
Возвращает
Operation, оператор train_op.

minimize_unconstrained

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

minimize_unconstrained(
    minimization_problem, global_step=None, var_list=None,
    gate_gradients=train_optimizer.Optimizer.GATE_OP, aggregation_method=None,
    colocate_gradients_with_ops=False, name=None, grad_loss=None
)

Возвращает оператор Operation для минимизации неограниченной задачи.

В отличие от minimize_constrained, эта функция полностью игнорирует constraints (и proxy_constraints ) часть задачи минимизации и минимизирует только objective.

Аргументы
minimization_problem ConstrainedMinimizationProblem, задача для оптимизации.
global_step как в методе minimize в tf.compat.v1.train.Optimizer.
var_list как в методе minimize в tf.compat.v1.train.Optimizer.
gate_gradients как в методе minimize в tf.compat.v1.train.Optimizer.
aggregation_method как в методе minimize в tf.compat.v1.train.Optimizer.
colocate_gradients_with_ops как в методе minimize в tf.compat.v1.train.Optimizer.
name как в методе minimize в tf.compat.v1.train.Optimizer.
grad_loss как в методе minimize в tf.compat.v1.train.Optimizer.
Возвращает
Operation, оператор train_op.

© 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/contrib/constrained_optimization/AdditiveExternalRegretOptimizer

Spec-Zone.ru

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