Campaign configuration for systematic multi-trial optimization: - DQN: 50 trials, SHA η=3, 81 max epochs - PPO: 30 trials, Hyperband, 81 max epochs - Batch size clamped at 230 (RTX 3050 Ti 4GB VRAM) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
68 lines
2.2 KiB
Rust
68 lines
2.2 KiB
Rust
//! Hyperparameter Optimization Module
|
|
//!
|
|
//! Production-ready hyperparameter optimization using argmin (Nelder-Mead).
|
|
//!
|
|
//! This module provides:
|
|
//! - **Argmin Optimization**: Derivative-free optimization using Nelder-Mead simplex
|
|
//! - **Latin Hypercube Sampling**: Smart initialization for exploration
|
|
//! - **Multi-restart**: Escape local minima with strategic restarts
|
|
//! - **Model Adapters**: MAMBA-2, DQN, PPO, TFT support
|
|
//!
|
|
//! ## Features
|
|
//!
|
|
//! - **Fast Convergence**: Finds optimal hyperparameters in 20-50 trials
|
|
//! - **Log-Scale Support**: Proper handling of learning rates and weight decay
|
|
//! - **Production Ready**: Integrates with existing training pipelines
|
|
//! - **GPU Accelerated**: Leverages CUDA for fast evaluations
|
|
//!
|
|
//! ## Example
|
|
//!
|
|
//! ```rust,no_run
|
|
//! use ml::hyperopt::{ArgminOptimizer, HyperparameterOptimizable};
|
|
//! use ml::hyperopt::adapters::mamba2::Mamba2Trainer;
|
|
//!
|
|
//! # fn example() -> anyhow::Result<()> {
|
|
//! // Create trainer
|
|
//! let trainer = Mamba2Trainer::new("test_data/ES_FUT_180d.parquet", 50)?;
|
|
//!
|
|
//! // Run optimization
|
|
//! let optimizer = ArgminOptimizer::builder()
|
|
//! .max_trials(30)
|
|
//! .n_initial(5)
|
|
//! .seed(42)
|
|
//! .build();
|
|
//!
|
|
//! let result = optimizer.optimize(trainer)?;
|
|
//! println!("Best loss: {:.6}", result.best_objective);
|
|
//! # Ok(())
|
|
//! # }
|
|
//! ```
|
|
|
|
pub mod adapters;
|
|
pub mod campaign;
|
|
pub mod early_stopping;
|
|
pub mod egobox_tuner; // Deprecated - kept for backward compatibility
|
|
pub mod observer;
|
|
pub mod optimizer;
|
|
pub mod paths;
|
|
pub mod sensitivity;
|
|
pub mod traits;
|
|
|
|
#[cfg(test)]
|
|
mod tests; // Old egobox tests (deprecated)
|
|
|
|
#[cfg(test)]
|
|
mod tests_argmin; // New argmin tests
|
|
|
|
// Re-exports for convenience
|
|
pub use observer::TrialBudgetObserver;
|
|
pub use optimizer::{ArgminOptimizer, ArgminOptimizerBuilder, TwoPhaseObjective};
|
|
pub use optimizer::{EgoboxOptimizer, EgoboxOptimizerBuilder}; // Backward compatibility
|
|
pub use traits::{HyperparameterOptimizable, OptimizationResult, ParameterSpace, TrialResult};
|
|
|
|
// Deprecated egobox exports
|
|
pub use egobox_tuner::{
|
|
optimize_mamba2, BestHyperparameters, HyperparameterSpace,
|
|
OptimizationResult as EgoboxOptimizationResult, TrialResult as EgoboxTrialResult,
|
|
};
|