Add explainers/distributionally-robust-optimization.md.
None of this repo's 56 explainers cover Distributionally Robust Optimization (DRO) as a fairness in-processing technique. Mitigation Strategies already covers this repo's own S3 in-processing strategy (Fairlearn's ExponentiatedGradient, a constraint-based approach: optimize accuracy subject to a fairness constraint like demographic parity). DRO is a genuinely different in-processing philosophy worth its own explainer: instead of constraining to a specific fairness metric, train the model to minimize its worst-case loss over an uncertainty set of possible subgroup distributions - without needing to know group membership as a hard constraint, and without targeting one specific parity metric at all.
Suggested structure (match mitigation-strategies.md's in-processing section, as its own dedicated explainer): one-sentence definition -> why it matters (a constraint-based method like ExponentiatedGradient needs the fairness metric decided up front and group membership at training time; DRO instead hedges against the worst subgroup the training data might be under-representing, which can help even when the actual harmful subgroup isn't the one you thought to check) -> core concept (the min-max objective: minimize the maximum expected loss over a distribution-shift ball around the empirical training distribution, contrasted directly against ExponentiatedGradient's constrained-optimization objective already described in mitigation-strategies.md) -> a concrete example - implement a simple group-DRO training loop (upweighting whichever group currently has the highest loss during training, a standard simplified DRO approach) against one of this repo's real audits, and compare the resulting per-group performance against this repo's own frozen S0/S3 baseline numbers, with real code and real (not invented) results -> detection/implementation code -> limitations (DRO's uncertainty set size is a free parameter - too large and the model over-hedges against implausible worst cases, hurting average-case accuracy for no real benefit; still needs group labels during training even though it doesn't optimize a specific parity metric) -> related concepts (mitigation-strategies, fairness-accuracy-tradeoff, class-imbalance) and projects.
Related: mitigation-strategies, fairness-accuracy-tradeoff, class-imbalance.
Key citation to verify and use: Sagawa, Koh, Hashimoto, Liang (2020), "Distributionally Robust Neural Networks for Group Shifts: On the Importance of Regularization for Worst-Case Generalization" (ICLR) - confirm the exact venue/year/finding yourself before citing, don't trust this issue's paraphrase.
See CONTRIBUTING.md: add explainers/<slug>.md plus a one-line entry in assets/explainers-data.json; the build script generates the page. Per CLAUDE.md, the paper freeze is lifted - if you quote a Fair Code benchmark result, use the current numbers in results/ (or paper/results-frozen/ for the earlier reference snapshot) and say which one.
Add
explainers/distributionally-robust-optimization.md.None of this repo's 56 explainers cover Distributionally Robust Optimization (DRO) as a fairness in-processing technique. Mitigation Strategies already covers this repo's own S3 in-processing strategy (Fairlearn's
ExponentiatedGradient, a constraint-based approach: optimize accuracy subject to a fairness constraint like demographic parity). DRO is a genuinely different in-processing philosophy worth its own explainer: instead of constraining to a specific fairness metric, train the model to minimize its worst-case loss over an uncertainty set of possible subgroup distributions - without needing to know group membership as a hard constraint, and without targeting one specific parity metric at all.Suggested structure (match mitigation-strategies.md's in-processing section, as its own dedicated explainer): one-sentence definition -> why it matters (a constraint-based method like
ExponentiatedGradientneeds the fairness metric decided up front and group membership at training time; DRO instead hedges against the worst subgroup the training data might be under-representing, which can help even when the actual harmful subgroup isn't the one you thought to check) -> core concept (the min-max objective: minimize the maximum expected loss over a distribution-shift ball around the empirical training distribution, contrasted directly againstExponentiatedGradient's constrained-optimization objective already described in mitigation-strategies.md) -> a concrete example - implement a simple group-DRO training loop (upweighting whichever group currently has the highest loss during training, a standard simplified DRO approach) against one of this repo's real audits, and compare the resulting per-group performance against this repo's own frozen S0/S3 baseline numbers, with real code and real (not invented) results -> detection/implementation code -> limitations (DRO's uncertainty set size is a free parameter - too large and the model over-hedges against implausible worst cases, hurting average-case accuracy for no real benefit; still needs group labels during training even though it doesn't optimize a specific parity metric) -> related concepts (mitigation-strategies,fairness-accuracy-tradeoff,class-imbalance) and projects.Related: mitigation-strategies, fairness-accuracy-tradeoff, class-imbalance.
Key citation to verify and use: Sagawa, Koh, Hashimoto, Liang (2020), "Distributionally Robust Neural Networks for Group Shifts: On the Importance of Regularization for Worst-Case Generalization" (ICLR) - confirm the exact venue/year/finding yourself before citing, don't trust this issue's paraphrase.
See CONTRIBUTING.md: add
explainers/<slug>.mdplus a one-line entry inassets/explainers-data.json; the build script generates the page. Per CLAUDE.md, the paper freeze is lifted - if you quote a Fair Code benchmark result, use the current numbers inresults/(orpaper/results-frozen/for the earlier reference snapshot) and say which one.