11"""
2- AbstractRegularized{parallel} <: AbstractOptimizationLayer
2+ AbstractRegularized <: AbstractOptimizationLayer
33
4- Convex regularization perturbation of a black box optimizer
4+ Convex regularization perturbation of a black box linear optimizer
55```
66ŷ(θ) = argmax_{y ∈ C} {θᵀy - Ω(y)}
77```
@@ -17,7 +17,29 @@ Convex regularization perturbation of a black box optimizer
1717- [`SparseArgmax`](@ref)
1818- [`RegularizedFrankWolfe`](@ref)
1919"""
20- abstract type AbstractRegularized{O} <: AbstractOptimizationLayer end
20+ abstract type AbstractRegularized <: AbstractOptimizationLayer end
21+
22+ """
23+ AbstractRegularizedGeneralizedMaximizer <: AbstractRegularized
24+
25+ Convex regularization perturbation of a black box **generalized** optimizer
26+ ```
27+ ŷ(θ) = argmax_{y ∈ C} {θᵀg(y) + h(y) - Ω(y)}
28+ with g and h functions of y.
29+ ```
30+
31+ # Interface
32+
33+ - `(regularized::AbstractRegularized)(θ; kwargs...)`: return `ŷ(θ)`
34+ - `compute_regularization(regularized, y)`: return `Ω(y)`
35+
36+ # Available implementations
37+
38+ - [`SoftArgmax`](@ref)
39+ - [`SparseArgmax`](@ref)
40+ - [`RegularizedFrankWolfe`](@ref)
41+ """
42+ abstract type AbstractRegularizedGeneralizedMaximizer <: AbstractRegularized end
2143
2244"""
2345 compute_regularization(regularized, y)
@@ -26,9 +48,16 @@ Return the convex penalty `Ω(y)` associated with an `AbstractRegularized` layer
2648"""
2749function compute_regularization end
2850
51+ @required AbstractRegularized begin
52+ # (regularized::AbstractRegularized)(θ::AbstractArray; kwargs...)
53+ compute_regularization (:: AbstractRegularized , :: AbstractArray )
54+ end
55+
56+ """
57+ TODO
58+ """
2959function get_maximizer end
3060
31- @required AbstractRegularized begin
32- compute_regularization (:: AbstractRegularized , :: Any )
33- get_maximizer (:: AbstractRegularized )
61+ @required AbstractRegularizedGeneralizedMaximizer begin
62+ get_maximizer (:: AbstractRegularizedGeneralizedMaximizer )
3463end
0 commit comments