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