abstractnn.relaxer
Relaxation des fonctions d’activation non-linéaires Nota : les relaxations proposées dans ce projets sont grossières (nouvelle approximation affines des bornes inf et sup du domaine. Avantage, la propagation dans le réseau se fait à iso périmètre de symboles Inconvénient : bornes du domaine plus larges qu’une méthode par intérpolation (par exemple Chebydchev)
Classes
Gère les relaxations convexes des activations non-linéaires Cette relaxation est grossière car elle fait perdre la relation afine avec l'entrée mais reste très simple |
- class abstractnn.relaxer.NonLinearRelaxer[source]
Gère les relaxations convexes des activations non-linéaires Cette relaxation est grossière car elle fait perdre la relation afine avec l’entrée mais reste très simple
- static relu_relaxation(expr: AffineExpression, relaxation_type: str = 'linear') AffineExpression[source]
Relaxation de ReLU: z = max(0, y)
Si y ∈ [l, u]: - Si u ≤ 0 → z = 0 - Si l ≥ 0 → z = y - Sinon → relaxation linéaire: z ≤ (u/(u-l)) * (y - l)
- static sigmoid_relaxation(expr: AffineExpression) AffineExpression[source]
Relaxation de Sigmoid (approximation linéaire)
- static tanh_relaxation(expr: AffineExpression) AffineExpression[source]
Relaxation de Tanh (approximation linéaire)