refactor(F7): remove dead iqn/cql/ens_grad_budget config fields — superseded by adaptive budgets (B4/G5)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
jgrusewski
2026-04-20 21:16:52 +02:00
parent edaa078a17
commit 3fa9923a39
4 changed files with 0 additions and 33 deletions

View File

@@ -323,12 +323,6 @@ pub struct GpuDqnTrainConfig {
/// market features from portfolio+MTF+OFI features in the state vector.
/// OFI features (8 dims, when enabled) bypass the bottleneck via portfolio_dim.
pub market_dim: usize,
/// Gradient budget fraction for IQN. Default 0.40.
pub iqn_grad_budget: f32,
/// Gradient budget fraction for CQL. Default 0.10.
pub cql_grad_budget: f32,
/// Gradient budget fraction for ensemble. Default 0.05.
pub ens_grad_budget: f32,
}
impl Default for GpuDqnTrainConfig {
@@ -377,9 +371,6 @@ impl Default for GpuDqnTrainConfig {
enable_gradient_vaccine: true, // always on
bottleneck_dim: 16,
market_dim: 42, // Default: 42 base features. Overridden to 50 when OFI (MBP-10) enabled.
iqn_grad_budget: 0.40,
cql_grad_budget: 0.10,
ens_grad_budget: 0.05,
}
}
}

View File

@@ -932,17 +932,6 @@ pub struct DQNHyperparameters {
/// L_total = L_c51 + iqn_lambda * L_iqn
/// Range [0.0, 2.0]: 0.0 = C51 only, 0.5 = balanced, 1.0 = equal weight
pub iqn_lambda: f64,
/// Gradient budget fraction for IQN auxiliary objective.
/// Controls how much of the total gradient norm IQN consumes.
/// Range [0.1, 0.8]. Default 0.40. Higher = IQN dominates (good for magnitude sizing).
/// At 0.75, IQN starves C51 — directional learning flatlines.
pub iqn_grad_budget: f64,
/// Gradient budget fraction for CQL regularization.
/// Range [0.0, 0.3]. Default 0.10.
pub cql_grad_budget: f64,
/// Gradient budget fraction for ensemble diversity.
/// Range [0.0, 0.2]. Default 0.05. C51 gets the remainder.
pub ens_grad_budget: f64,
/// Spectral norm σ_max — constrains ||W||_σσ_max.
/// Range [1.0, 10.0]. Default 3.0 (permits Xavier scaling, prevents Q-explosion).
pub spectral_norm_sigma_max: f64,
@@ -1554,9 +1543,6 @@ impl DQNHyperparameters {
num_quantiles: 32, // Default: 32 quantiles
qr_kappa: 1.0, // Default: 1.0 (standard quantile Huber loss)
iqn_lambda: 0.25, // Default: mild IQN regularization alongside C51
iqn_grad_budget: 0.40, // Default: balanced — was 0.75 (starved C51 directional learning)
cql_grad_budget: 0.10, // Default: mild CQL regularization
ens_grad_budget: 0.05, // Default: ensemble diversity. C51 gets remainder (0.45)
spectral_norm_sigma_max: 3.0, // Default: permits Xavier scaling [1.0, 10.0]
spectral_decoupling_lambda: 0.01, // Default: mild logit magnitude penalty (Pezeshki 2021)

View File

@@ -139,7 +139,6 @@ unsafe impl Sync for ParentGraph {}
/// Per-component gradient norm budget fractions for auxiliary objectives.
/// C51 gets whatever remains: `1.0 - sum(active_auxiliary_budgets)`.
/// Configurable via DQNHyperparameters (iqn_grad_budget, cql_grad_budget, ens_grad_budget).
/// Default: IQN=40%, CQL=10%, ENS=5%, C51=45%.
/// Old hardcoded: IQN=75% — starved C51 directional learning (grad_norm frozen at 0.655).
pub(crate) struct GradBudget {
@@ -410,9 +409,6 @@ impl FusedTrainingCtx {
enable_gradient_vaccine: true,
bottleneck_dim: hyperparams.bottleneck_dim,
market_dim: 42, // Always 42 base market features — OFI features bypass bottleneck via portfolio_dim
iqn_grad_budget: hyperparams.iqn_grad_budget as f32,
cql_grad_budget: hyperparams.cql_grad_budget as f32,
ens_grad_budget: hyperparams.ens_grad_budget as f32,
};
// Create weight set pointer views AFTER GpuDqnTrainer is constructed below.

View File

@@ -399,9 +399,6 @@ pub struct SearchSpaceSection {
pub branch_hidden_dim: Option<[f64; 2]>,
pub gradient_accumulation_steps: Option<[f64; 2]>,
pub iqn_lambda: Option<[f64; 2]>,
pub iqn_grad_budget: Option<[f64; 2]>,
pub cql_grad_budget: Option<[f64; 2]>,
pub ens_grad_budget: Option<[f64; 2]>,
/// Spectral norm sigma max bounds.
pub spectral_norm_sigma_max: Option<[f64; 2]>,
/// C51 warmup epochs bounds.
@@ -571,9 +568,6 @@ impl HyperoptProfile {
"branch_hidden_dim" => ss.branch_hidden_dim,
"gradient_accumulation_steps" => ss.gradient_accumulation_steps,
"iqn_lambda" => ss.iqn_lambda,
"iqn_grad_budget" => ss.iqn_grad_budget,
"cql_grad_budget" => ss.cql_grad_budget,
"ens_grad_budget" => ss.ens_grad_budget,
"spectral_norm_sigma_max" => ss.spectral_norm_sigma_max,
"c51_warmup_epochs" => ss.c51_warmup_epochs,
"c51_alpha_max" => ss.c51_alpha_max,