Expand description
Differentiable combinatorial optimization via perturbed optimizers.
Implements the Perturbed Optimizer framework (Berthet et al., 2020) for making any black-box combinatorial solver differentiable through additive Gaussian noise perturbations.
Given a combinatorial optimizer y*(θ) = argmax_y θᵀ y (or argmin),
the perturbed optimizer computes:
ŷ(θ) = E[y*(θ + σZ)] where Z ~ N(0, I)
The gradient is estimated as:
∇_θ L ≈ (1/σ) E[L(y*(θ + σZ)) · Z] (REINFORCE)
or via the reparameterized covariance estimator:
∇_θ L ≈ (1/σ) Cov[y*(θ + σZ), Z] · ∇_y L
Also includes SparseMap for structured prediction on the marginal
polytope via QP.
§References
- Berthet et al. (2020). “Learning with Differentiable Perturbed Optimizers.” NeurIPS.
- Niculae & Blondel (2017). “A regularized framework for sparse and structured neural attention.” NeurIPS.
Structs§
- Perturbed
Optimizer - A differentiable wrapper around any black-box combinatorial optimizer.
- Perturbed
Optimizer Config - Configuration for the perturbed optimizer.
- Sparse
Map - A SparseMap layer: structured prediction with sparse marginals.
- Sparse
MapConfig - Configuration for the SparseMap structured prediction layer.