Expand description
Differentially private hyperparameter optimization.
§Module layout
| module | responsibility |
|---|---|
types | configuration and the search-component data types |
budget_manager | privacy budget allocation and accounting |
optimizer | the PrivateHyperparameterOptimizer driver |
results | private aggregation and the selection report |
selection | the private selection mechanisms and noisy statistics |
gaussian_process | the GP surrogate and acquisition function |
random_search | NoisyOptimizer for random search |
bayesian_optimization | NoisyOptimizer for Bayesian optimization |
functions | the NoisyOptimizer trait and function aliases |
trait_impls | the Default impls |
§0.3.2 notes
Hyperparameter selection is now differentially private. Previously
HyperparameterNoiseMechanism was stored and never matched on: the choice
was the exact argmax over utilities computed from the private data, which is
precisely what private HPO exists to avoid.
Behavioural and API changes:
optimizer::PrivateHyperparameterOptimizer::newrejects a configuration withprivate_model_selection: truethat declares no objective sensitivity.types::PrivateHPOResultsgainedselection, which records whether the returned configuration was chosen privately, by which mechanism, and at what cost.types::SelectionParametersgaineddelta(needed to calibrate Gaussian selection).PrivateResultsAggregator::aggregate_resultstakes&mut self, because selecting now spends budget.- The 16
*_traits.rsshells were collapsed intotrait_impls; the two that held realNoisyOptimizerimplementations were renamed torandom_searchandbayesian_optimization.
Re-exports§
pub use budget_manager::AdaptiveBudgetController;pub use budget_manager::HPOBudgetManager;pub use budget_manager::DEFAULT_SELECTION_BUDGET_FRACTION;pub use gaussian_process::encode_configuration;pub use gaussian_process::ConfigurationEncoding;pub use gaussian_process::ExpectedImprovement;pub use gaussian_process::GaussianProcessFit;pub use optimizer::PrivateHyperparameterOptimizer;pub use results::PrivateResultsAggregator;pub use results::SelectionReport;pub use results::PRIVATE_TOP_K;pub use selection::exponential_mechanism_index;pub use selection::exponential_mechanism_probabilities;pub use selection::gaussian_sigma;pub use selection::laplace_sample;pub use selection::mechanism_name;pub use selection::noisy_summary_statistics;pub use selection::report_noisy_max_gaussian;pub use selection::report_noisy_max_gumbel;pub use selection::report_noisy_max_laplace;pub use selection::summary_mean_noise_scale;pub use selection::NoisySummary;pub use selection::SelectionOutcome;pub use selection::OBJECTIVE_SENSITIVITY_KEY;pub use selection::SUMMARY_QUANTILES;pub use functions::*;pub use types::*;
Modules§
- bayesian_
optimization NoisyOptimizerfor private Bayesian optimization.- budget_
manager - Privacy budget accounting for hyperparameter optimization.
- functions
- Auto-generated module
- gaussian_
process - Gaussian-process surrogate and acquisition function for private Bayesian optimization.
- optimizer
- The private hyperparameter optimizer driver.
- random_
search NoisyOptimizerfor private random search.- results
- Private aggregation and reporting of hyperparameter search results.
- selection
- Differentially private selection of hyperparameter configurations.
- trait_
impls Defaultimplementations for the private-HPO components.- types
- Auto-generated module