tf.contrib.constrained_optimization.find_best_candidate_index
Stay organized with collections
Save and categorize content based on your preferences.
Heuristically finds the best candidate solution to a constrained problem.
tf.contrib.constrained_optimization.find_best_candidate_index(
objective_vector, constraints_matrix, rank_objectives=False
)
This function deals with the constrained problem:
minimize f(w)
s.t. g_i(w) <= 0 for all i in {0,1,...,m-1}
Here, f(w) is the "objective function", and g_i(w) is the ith (of m)
"constraint function". Given a set of n "candidate solutions"
{w_0,w1,...,w{n-1} }, this function finds the "best" solution according
to the following heuristic:
- Across all models, the ith constraint violations (i.e. max{0, g_i(0)})
are ranked, as are the objectives (if rank_objectives=True).
- Each model is then associated its MAXIMUM rank across all m constraints
(and the objective, if rank_objectives=True).
- The model with the minimal maximum rank is then identified. Ties are
broken using the objective function value.
- The index of this "best" model is returned.
The objective_vector
parameter should be a numpy array with shape (n,), for
which objective_vector[i] = f(w_i). Likewise, constraints_matrix
should be a
numpy array with shape (m,n), for which constraints_matrix[i,j] = g_i(w_j).
For more specifics, please refer to:
Cotter, Jiang and Sridharan. "Two-Player Games for Efficient Non-Convex
Constrained Optimization".
https://arxiv.org/abs/1804.06500
This function implements the heuristic used for hyperparameter search in the
experiments of Section 5.2.
Args |
objective_vector
|
numpy array of shape (n,), where n is the number of
"candidate solutions". Contains the objective function values.
|
constraints_matrix
|
numpy array of shape (m,n), where m is the number of
constraints and n is the number of "candidate solutions". Contains the
constraint violation magnitudes.
|
rank_objectives
|
bool, whether the objective function values should be
included in the initial ranking step. If True, both the objective and
constraints will be ranked. If False, only the constraints will be ranked.
In either case, the objective function values will be used for
tiebreaking.
|
Returns |
The index (in {0,1,...,n-1}) of the "best" model according to the above
heuristic.
|
Raises |
ValueError
|
If objective_vector and constraints_matrix have inconsistent
shapes.
|
ImportError
|
If we're unable to import scipy.stats .
|
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2020-10-01 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2020-10-01 UTC."],[],[],null,["# tf.contrib.constrained_optimization.find_best_candidate_index\n\n\u003cbr /\u003e\n\n|-----------------------------------------------------------------------------------------------------------------------------------------------------------|\n| [View source on GitHub](https://github.com/tensorflow/tensorflow/blob/v1.15.0/tensorflow/contrib/constrained_optimization/python/candidates.py#L224-L319) |\n\nHeuristically finds the best candidate solution to a constrained problem. \n\n tf.contrib.constrained_optimization.find_best_candidate_index(\n objective_vector, constraints_matrix, rank_objectives=False\n )\n\nThis function deals with the constrained problem:\n\u003e minimize f(w)\n\u003e s.t. g_i(w) \\\u003c= 0 for all i in {0,1,...,m-1}\n\nHere, f(w) is the \"objective function\", and g_i(w) is the ith (of m)\n\"constraint function\". Given a set of n \"candidate solutions\"\n{w_0,w*1,...,w*{n-1} }, this function finds the \"best\" solution according\nto the following heuristic:\n\n1. Across all models, the ith constraint violations (i.e. max{0, g_i(0)}) are ranked, as are the objectives (if rank_objectives=True).\n2. Each model is then associated its MAXIMUM rank across all m constraints (and the objective, if rank_objectives=True).\n3. The model with the minimal maximum rank is then identified. Ties are broken using the objective function value.\n4. The index of this \"best\" model is returned.\n\nThe `objective_vector` parameter should be a numpy array with shape (n,), for\nwhich objective_vector\\[i\\] = f(w_i). Likewise, `constraints_matrix` should be a\nnumpy array with shape (m,n), for which constraints_matrix\\[i,j\\] = g_i(w_j).\n\nFor more specifics, please refer to:\n\u003e Cotter, Jiang and Sridharan. \"Two-Player Games for Efficient Non-Convex\n\u003e Constrained Optimization\".\n\u003e \u003chttps://arxiv.org/abs/1804.06500\u003e\n\nThis function implements the heuristic used for hyperparameter search in the\nexperiments of Section 5.2.\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Args ---- ||\n|----------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `objective_vector` | numpy array of shape (n,), where n is the number of \"candidate solutions\". Contains the objective function values. |\n| `constraints_matrix` | numpy array of shape (m,n), where m is the number of constraints and n is the number of \"candidate solutions\". Contains the constraint violation magnitudes. |\n| `rank_objectives` | bool, whether the objective function values should be included in the initial ranking step. If True, both the objective and constraints will be ranked. If False, only the constraints will be ranked. In either case, the objective function values will be used for tiebreaking. |\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Returns ------- ||\n|---|---|\n| The index (in {0,1,...,n-1}) of the \"best\" model according to the above heuristic. ||\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Raises ------ ||\n|---------------|--------------------------------------------------------------------------|\n| `ValueError` | If `objective_vector` and `constraints_matrix` have inconsistent shapes. |\n| `ImportError` | If we're unable to import `scipy.stats`. |\n\n\u003cbr /\u003e"]]