# Hyperparameter Tuning Configuration for Foxhunt ML Models # Defines search spaces for Optuna optimization # Global tuning settings global: optimization_direction: maximize # maximize sharpe_ratio pruning_enabled: true median_pruner: n_startup_trials: 5 # No pruning for first 5 trials (establish baseline) n_warmup_steps: 10 # Wait 10 epochs before starting to prune interval_steps: 5 # Check for pruning every 5 epochs sampler: TPE # Tree-structured Parzen Estimator # Model-specific search spaces models: TLOB: epochs: type: int low: 10 high: 100 step: 10 learning_rate: type: float low: 0.00001 high: 0.01 log: true batch_size: type: categorical choices: [32, 64, 128, 256] sequence_length: type: categorical choices: [50, 100, 200] hidden_dim: type: categorical choices: [64, 128, 256, 512] num_heads: type: categorical choices: [4, 8, 16] num_layers: type: int low: 2 high: 8 step: 1 dropout_rate: type: float low: 0.0 high: 0.5 step: 0.05 use_positional_encoding: type: categorical choices: [true, false] MAMBA_2: epochs: type: int low: 30 high: 100 step: 10 learning_rate: type: categorical choices: [0.00001, 0.0001, 0.001] # Conservative range for state-space models batch_size: type: categorical choices: [16, 32, 64] # Memory-intensive due to state propagation (4GB VRAM constraint) hidden_dim: type: categorical choices: [128, 256, 512] # d_model in MAMBA-2 architecture state_size: type: categorical choices: [8, 16, 32] # d_state: Critical for state-space dynamics num_layers: type: categorical choices: [2, 4, 8] # Layer depth affects memory and expressiveness expansion_factor: type: categorical choices: [2, 4] # expand: Controls inner dimension (d_inner = expand * d_model) dropout: type: float low: 0.0 high: 0.3 step: 0.05 # State-space specific parameters dt_min: type: float low: 0.0001 high: 0.01 log: true # Time-step minimum for discrete-time dynamics dt_max: type: float low: 0.01 high: 1.0 log: true # Time-step maximum # Architecture toggles use_ssd: type: categorical choices: [true, false] # Structured State Duality use_selective_state: type: categorical choices: [true, false] # Selective state mechanism hardware_aware: type: categorical choices: [true, false] # Hardware-aware optimizations (RTX 3050 Ti) # Training parameters grad_clip: type: float low: 0.5 high: 2.0 step: 0.25 # Gradient clipping for state-space stability weight_decay: type: float low: 0.0001 high: 0.01 log: true warmup_steps: type: int low: 100 high: 2000 step: 100 DQN: epochs: type: int low: 50 high: 500 step: 50 learning_rate: type: float low: 0.00001 high: 0.01 log: true batch_size: type: categorical choices: [32, 64, 128, 256] replay_buffer_size: type: categorical choices: [10000, 50000, 100000, 500000] epsilon_start: type: float low: 0.9 high: 1.0 step: 0.05 epsilon_end: type: float low: 0.01 high: 0.1 step: 0.01 epsilon_decay_steps: type: int low: 1000 high: 10000 step: 1000 gamma: type: float low: 0.9 high: 0.999 step: 0.01 target_update_frequency: type: int low: 100 high: 1000 step: 100 use_prioritized_replay: type: categorical choices: [true, false] PPO: epochs: type: int low: 50 high: 500 step: 50 learning_rate: type: float low: 0.00001 high: 0.01 log: true batch_size: type: categorical choices: [64, 128, 256, 512] clip_ratio: type: float low: 0.1 high: 0.3 step: 0.05 value_loss_coef: type: float low: 0.1 high: 1.0 step: 0.1 entropy_coef: type: float low: 0.0 high: 0.1 step: 0.01 rollout_steps: type: int low: 128 high: 2048 step: 128 minibatch_size: type: categorical choices: [32, 64, 128, 256] gae_lambda: type: float low: 0.9 high: 0.99 step: 0.01 LIQUID: epochs: type: int low: 20 high: 100 step: 10 learning_rate: type: categorical choices: [0.0001, 0.001, 0.01] # 3 learning rate options for fast convergence batch_size: type: categorical choices: [32, 64, 128] # 3 batch size options hidden_dim: type: categorical choices: [64, 128, 256] # 3 hidden dimension options for LTC/CfC cells # ODE Integration Parameters (Critical for continuous-time dynamics) ode_steps: type: categorical choices: [3, 5, 10, 20] # Number of integration steps per forward pass solver_type: type: categorical choices: ["Euler", "RK4", "Adaptive"] # ODE solver selection # Sparsity and Network Structure sparsity_level: type: categorical choices: [0.5, 0.7, 0.9] # Connection sparsity (0.9 = 90% connections pruned) num_layers: type: categorical choices: [1, 2, 3] # Depth of liquid network # Time Constant Parameters (tau) time_constant_tau: type: categorical choices: [0.01, 0.1, 1.0] # Base time constant for ODE dynamics tau_min: type: float low: 0.001 high: 0.05 log: true tau_max: type: float low: 0.5 high: 5.0 log: true use_adaptive_tau: type: categorical choices: [true, false] # Enable/disable volatility-aware tau adaptation # Activation Functions activation: type: categorical choices: ["Tanh", "Sigmoid", "ReLU"] # Cell activation function output_activation: type: categorical choices: ["Linear", "Tanh", "Sigmoid"] # Output layer activation # Regularization dropout_rate: type: float low: 0.0 high: 0.3 step: 0.05 l2_regularization: type: float low: 0.00001 high: 0.001 log: true # Network Type network_type: type: categorical choices: ["LTC", "CfC", "Mixed"] # Liquid Time-constant, Closed-form Continuous-time, or Mixed # Market Regime Adaptation market_regime_adaptation: type: categorical choices: [true, false] # Enable regime-aware time step adaptation # Early Stopping early_stopping_patience: type: int low: 5 high: 20 step: 5 # Default time step (dt) for ODE integration default_dt: type: float low: 0.001 high: 0.1 log: true TFT: epochs: type: int low: 10 high: 100 step: 10 learning_rate: type: float low: 0.00001 high: 0.01 log: true batch_size: type: categorical choices: [32, 64, 128, 256] hidden_dim: type: categorical choices: [64, 128, 256, 512] num_heads: type: categorical choices: [4, 8, 16] num_layers: type: int low: 2 high: 8 step: 1 lookback_window: type: int low: 10 high: 100 step: 10 forecast_horizon: type: int low: 1 high: 20 step: 1 dropout_rate: type: float low: 0.0 high: 0.5 step: 0.05