Commit 72a3a58
Fix incorrect hypervolume reference point for minimization objectives with inferred thresholds (#4970)
Summary:
Pull Request resolved: #4970
`get_hypervolume_trace_of_outcomes_multi_objective` negates metric values for minimization objectives to convert them to maximization convention (line 784). However, when inferring objective thresholds from data, the code branched on `obj.minimize` to pick `max()` vs `min()` — not accounting for the already-negated data. This caused the inferred reference point to be the *best* observed value (not the worst), placing it above all data points and yielding a hypervolume of 0 for every trial.
The fix separates the two cases:
- **Explicit thresholds**: bound is in the original metric space, so negate for minimization (unchanged).
- **Inferred thresholds**: data is already in maximization convention, so the worst value is simply `min()` — no further sign flip needed.
Additionally, this diff changes how the reference point is inferred in `get_hypervolume_trace_of_outcomes_multi_objective`. Previously, the reference point was set to the worst observed objective values. Now, we use `infer_reference_point` from BoTorch to compute a scaled nadir point from the Pareto frontier of feasible observations. This approach scales the nadir by a factor (default 0.1) to ensure the reference point lies slightly below (worse than) the Pareto front, providing a more robust and theoretically grounded reference point for hypervolume computation.
This bug affected `UtilityProgressionAnalysis` (and any caller of `get_trace`) for MOO experiments with minimization objectives that lack explicit objective thresholds.
Reviewed By: mpolson64
Differential Revision: D94783465
fbshipit-source-id: c06209e10afadc562fb221dcae3a19019f7d4bdc1 parent 1145c41 commit 72a3a58
File tree
3 files changed
+115
-14
lines changed- ax/service
- tests
- utils
3 files changed
+115
-14
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
90 | 90 | | |
91 | 91 | | |
92 | 92 | | |
93 | | - | |
| 93 | + | |
94 | 94 | | |
95 | 95 | | |
96 | 96 | | |
97 | | - | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
98 | 106 | | |
99 | 107 | | |
100 | 108 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
168 | 168 | | |
169 | 169 | | |
170 | 170 | | |
171 | | - | |
| 171 | + | |
| 172 | + | |
172 | 173 | | |
173 | 174 | | |
174 | 175 | | |
175 | 176 | | |
176 | 177 | | |
177 | 178 | | |
178 | 179 | | |
179 | | - | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
180 | 215 | | |
181 | 216 | | |
182 | 217 | | |
| |||
318 | 353 | | |
319 | 354 | | |
320 | 355 | | |
321 | | - | |
| 356 | + | |
322 | 357 | | |
323 | 358 | | |
324 | 359 | | |
325 | 360 | | |
326 | 361 | | |
327 | 362 | | |
328 | | - | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
329 | 366 | | |
330 | 367 | | |
331 | 368 | | |
332 | 369 | | |
333 | 370 | | |
334 | 371 | | |
335 | 372 | | |
336 | | - | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
337 | 376 | | |
338 | 377 | | |
339 | 378 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
53 | 53 | | |
54 | 54 | | |
55 | 55 | | |
| 56 | + | |
56 | 57 | | |
57 | 58 | | |
58 | 59 | | |
| |||
738 | 739 | | |
739 | 740 | | |
740 | 741 | | |
741 | | - | |
| 742 | + | |
| 743 | + | |
| 744 | + | |
| 745 | + | |
742 | 746 | | |
743 | 747 | | |
744 | 748 | | |
| |||
754 | 758 | | |
755 | 759 | | |
756 | 760 | | |
| 761 | + | |
| 762 | + | |
| 763 | + | |
| 764 | + | |
| 765 | + | |
| 766 | + | |
| 767 | + | |
| 768 | + | |
| 769 | + | |
| 770 | + | |
| 771 | + | |
| 772 | + | |
| 773 | + | |
| 774 | + | |
757 | 775 | | |
758 | | - | |
759 | 776 | | |
760 | 777 | | |
761 | 778 | | |
| |||
788 | 805 | | |
789 | 806 | | |
790 | 807 | | |
| 808 | + | |
| 809 | + | |
791 | 810 | | |
792 | 811 | | |
793 | 812 | | |
| |||
798 | 817 | | |
799 | 818 | | |
800 | 819 | | |
| 820 | + | |
| 821 | + | |
801 | 822 | | |
| 823 | + | |
802 | 824 | | |
803 | | - | |
804 | | - | |
805 | | - | |
806 | | - | |
| 825 | + | |
| 826 | + | |
| 827 | + | |
| 828 | + | |
| 829 | + | |
| 830 | + | |
| 831 | + | |
| 832 | + | |
| 833 | + | |
| 834 | + | |
| 835 | + | |
| 836 | + | |
| 837 | + | |
| 838 | + | |
| 839 | + | |
| 840 | + | |
| 841 | + | |
| 842 | + | |
| 843 | + | |
| 844 | + | |
| 845 | + | |
| 846 | + | |
| 847 | + | |
| 848 | + | |
| 849 | + | |
| 850 | + | |
| 851 | + | |
| 852 | + | |
807 | 853 | | |
808 | | - | |
| 854 | + | |
| 855 | + | |
| 856 | + | |
| 857 | + | |
| 858 | + | |
| 859 | + | |
| 860 | + | |
| 861 | + | |
| 862 | + | |
809 | 863 | | |
810 | 864 | | |
811 | 865 | | |
| |||
0 commit comments