tf.contrib.constrained_optimization.AdditiveSwapRegretOptimizer
Алгоритм, основанный на минимизации сожаления при обмене.
Этот алгоритм использует заданные оптимизаторы для совместной минимизации по параметрам модели и максимизации по весовой матрице ограничений/целевой функции (аналог множителей Лагранжа), при этом максимизация последней выполняется с помощью аддитивных обновлений и алгоритма, минимизирующего сожаление при обмене.
Для более подробной информации, обратитесь к:
Коттер, Цзянь и Сридхаран. «Игры двух лиц для эффективной оптимизации невыпуклых ограниченных задач». https://arxiv.org/abs/1804.06500
Формулировка, используемая этим оптимизатором, приведена в определении 2 и обсуждается в разделе 4. Она наиболее похожа на алгоритм 2 в разделе 4, с отличием, что она использует оптимизаторы, а не SGD, для «внутренних» обновлений и выполняет аддитивные (а не мультипликативные) обновления стохастической матрицы.
| Аргументы | |
|---|---|
optimizer | tf.compat.v1.train.Optimizer, используемый для оптимизации целевой функции и части ограничений proxy_constraints в ConstrainedMinimizationProblem. Если constraint_optimizer не предоставлен, он также будет использован для оптимизации аналогов множителей Лагранжа. |
constraint_optimizer | необязательный tf.compat.v1.train.Optimizer, используемый для оптимизации аналогов множителей Лагранжа. |
| Атрибуты | |
|---|---|
constraint_optimizer | Возвращает оптимизатор, используемый для матрицы. |
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, эта функция пытается найти решение, которое минимизирует часть минимизации задачи, удовлетворяя части ограничений.
| Аргументы | |
|---|---|
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
)
Возвращает оператор для минимизации неограниченной задачи.
В отличие от minimize_constrained, эта функция полностью игнорирует часть ограничения (и 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/AdditiveSwapRegretOptimizer