diff --git a/config/training/dqn-hyperopt.toml b/config/training/dqn-hyperopt.toml index e7cb50794..478f6ad86 100644 --- a/config/training/dqn-hyperopt.toml +++ b/config/training/dqn-hyperopt.toml @@ -139,7 +139,7 @@ exit_timing_weight = 0.05 ofi_reward_weight = 0.2 kelly_sizing_weight = 0.1 reward_noise_scale = 0.05 -exposure_aux_weight = 0.01 +exposure_aux_weight = 0.1 exposure_aux_warmup_epochs = 5 [fixed] @@ -182,5 +182,5 @@ exit_timing_weight = 0.05 ofi_reward_weight = 0.2 kelly_sizing_weight = 0.1 reward_noise_scale = 0.05 -exposure_aux_weight = 0.01 +exposure_aux_weight = 0.1 exposure_aux_warmup_epochs = 5 diff --git a/config/training/dqn-localdev.toml b/config/training/dqn-localdev.toml index dacb6f82f..7ebd67609 100644 --- a/config/training/dqn-localdev.toml +++ b/config/training/dqn-localdev.toml @@ -131,5 +131,5 @@ exit_timing_weight = 0.05 ofi_reward_weight = 0.2 kelly_sizing_weight = 0.1 reward_noise_scale = 0.05 -exposure_aux_weight = 0.01 +exposure_aux_weight = 0.1 exposure_aux_warmup_epochs = 5 diff --git a/config/training/dqn-production.toml b/config/training/dqn-production.toml index f10e07db7..de179d569 100644 --- a/config/training/dqn-production.toml +++ b/config/training/dqn-production.toml @@ -142,5 +142,5 @@ exit_timing_weight = 0.05 ofi_reward_weight = 0.2 kelly_sizing_weight = 0.1 reward_noise_scale = 0.05 -exposure_aux_weight = 0.01 +exposure_aux_weight = 0.1 exposure_aux_warmup_epochs = 5 diff --git a/config/training/dqn-smoketest.toml b/config/training/dqn-smoketest.toml index 7ad05e31e..a36ea24b9 100644 --- a/config/training/dqn-smoketest.toml +++ b/config/training/dqn-smoketest.toml @@ -138,7 +138,7 @@ exit_timing_weight = 0.05 ofi_reward_weight = 0.2 kelly_sizing_weight = 0.1 reward_noise_scale = 0.05 -exposure_aux_weight = 0.01 +exposure_aux_weight = 0.1 exposure_aux_warmup_epochs = 5 [walk_forward] diff --git a/crates/ml/src/cuda_pipeline/gpu_dqn_trainer.rs b/crates/ml/src/cuda_pipeline/gpu_dqn_trainer.rs index 67db881e8..e0c0ed457 100644 --- a/crates/ml/src/cuda_pipeline/gpu_dqn_trainer.rs +++ b/crates/ml/src/cuda_pipeline/gpu_dqn_trainer.rs @@ -2110,7 +2110,7 @@ impl GpuDqnTrainer { let goff_w_b0out: usize = sizes[..10].iter().sum::(); let aux_params_ptr = self.ptrs.params_f32_ptr + (goff_w_b0out as u64) * 4; - let aux_lr = 0.001_f32; // higher LR for aux (independent from main) + let aux_lr = 0.01_f32; // 10x main LR — aux needs strong signal to break i%3 let aux_beta1 = 0.9_f32; let aux_beta2 = 0.999_f32; let aux_eps = 1e-8_f32; diff --git a/crates/ml/src/trainers/dqn/config.rs b/crates/ml/src/trainers/dqn/config.rs index 247ed1851..eed0f87db 100644 --- a/crates/ml/src/trainers/dqn/config.rs +++ b/crates/ml/src/trainers/dqn/config.rs @@ -1653,7 +1653,7 @@ impl DQNHyperparameters { ofi_reward_weight: 0.2, kelly_sizing_weight: 0.1, reward_noise_scale: 0.05, - exposure_aux_weight: 0.01, + exposure_aux_weight: 0.1, exposure_aux_warmup_epochs: 5, // v8: Dense micro-reward, TD(λ), PopArt, curriculum, hindsight micro_reward_scale: 0.01,