tf.contrib.constrained_optimization.MultiplicativeSwapRegretOptimizer
Оптимизатор, основанный на минимизации сожаления от перестановки.
Этот оптимизатор использует заданные оптимизаторы tf.compat.v1.train.Optimizer для совместной минимизации по параметрам модели и максимизации по весовой матрице ограничений/цели (аналог множителей Лагранжа), при этом последняя максимизация выполняется с помощью мультипликативных обновлений и алгоритма, минимизирующего сожаление от перестановки.
Для получения более подробной информации, пожалуйста, обратитесь к:
Cotter, Jiang и Sridharan. "Игры двух игроков для эффективной оптимизации невыпуклых ограниченных задач". https://arxiv.org/abs/1804.06500
Формулировка, используемая этим оптимизатором, представлена в определении 2 и обсуждается в разделе 4. Она наиболее похожа на алгоритм 2 в разделе 4, за исключением того, что для внутренних обновлений используются оптимизаторы tf.compat.v1.train.Optimizer, а не SGD.
| Аргументы | |
|---|---|
optimizer | tf.compat.v1.train.Optimizer, используемый для оптимизации цели и части proxy_constraints в ConstrainedMinimizationProblem. Если constraint_optimizer не указан, он также будет использоваться для оптимизации аналогов множителей Лагранжа. |
constraint_optimizer | необязательный tf.compat.v1.train.Optimizer, используемый для оптимизации аналогов множителей Лагранжа. |
minimum_multiplier_radius | число с плавающей точкой, каждый элемент матрицы будет ограничен снизу значением minimum_multiplier_radius , делённым на единицу плюс количество ограничений. |
initial_multiplier_radius | число с плавающей точкой, начальное значение каждого элемента матрицы, связанной с ограничением (т.е. за исключением элементов, связанных с целевой функцией), будет равно initial_multiplier_radius , делённому на единицу плюс количество ограничений. По умолчанию принимает значение minimum_multiplier_radius. |
| Исключения | |
|---|---|
ValueError | Если два параметра радиуса несовместимы. |
| Атрибуты | |
|---|---|
constraint_optimizer | Возвращает оптимизатор tf.compat.v1.train.Optimizer, используемый для матрицы. |
optimizer | Возвращает оптимизатор tf.compat.v1.train.Optimizer, используемый для оптимизации. |
Методы
minimize
Возвращает операцию Operation для минимизации ограниченной задачи.
Этот метод объединяет функциональность 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
Возвращает операцию Operation для минимизации ограниченной задачи.
В отличие от 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
Возвращает операцию 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/MultiplicativeSwapRegretOptimizer