Approximately projects lattice weights to strictly satisfy all constraints.
tfl.lattice_lib.finalize_constraints(
weights,
lattice_sizes,
monotonicities,
edgeworth_trusts=None,
trapezoid_trusts=None,
output_min=None,
output_max=None
)
This projeciton guarantees that constraints are strictly met, but it is not
an exact projection w.r.t. the L2 norm. The computationally cost is
O((num_monotonic_dims + num_trust_constraints) * num_lattice_weights)
.
See helper functions _approximately_project_*
for details of the individual
projection algorithms for each set of constraints. They are designed to be
applied sequentially: monotonicity, then edgeworth, trapezoid, and bounds if
necessary. This is because the projection algorithms are guaranteed to not
violate previous constraints, though they may lead to violations of later
constraints.
Args |
weights
|
Lattice weights tensor of shape: (prod(lattice_sizes), units) .
|
lattice_sizes
|
List or tuple of integers which represents lattice sizes.
which correspond to weights.
|
monotonicities
|
List or tuple of same length as lattice_sizes of {0, 1}
which represents monotonicity constraints per dimension. 1 stands for
increasing (non-decreasing in fact), 0 for no monotonicity constraints.
|
edgeworth_trusts
|
None or iterable of three-element tuples. First element is
the index of the main (monotonic) feature. Second element is the index of
the conditional feature. Third element is the direction of trust set to 1
if higher values of the conditional feature should increase trust in the
main feature and -1 otherwise.
|
trapezoid_trusts
|
None or iterable of three-element tuples. First element is
the index of the main (monotonic) feature. Second element is the index of
the conditional feature. Third element is the direction of trust set to 1
if higher values of the conditional feature should increase trust in the
main feature and -1 otherwise.
|
output_min
|
None or minimum possible output.
|
output_max
|
None or maximum possible output.
|
Returns |
Projected weights tensor of same shape as weights .
|