feat(ml): complete all algorithm gaps — TFT, Mamba2, PPO, CPCV, FDR
TFT training completeness:
- Fix mod.rs::train() stub backward → real AdamW optimizer + gradient flow
- Fix TFTTrainer optimizer init, backward pass, LR scheduling, checkpointing
- Fix temporal_attention weight tracking (RwLock, stores per-head means)
Mamba2 discretization:
- Replace raw continuous-time state transition with proper discretization
- SSD layer now uses softplus(delta) step size with 2nd-order Taylor
approximation of matrix exponential: A_bar ≈ I + A*dt + (A*dt)²/2
- Correct dtype handling (F64 SSM matrices, F32 output)
PPO entropy fix:
- Fix LSTM training path: was using constant entropy (coeff * 0.5),
now computes real entropy from log-probabilities
Circuit breaker consolidation:
- Move canonical implementation to ml/src/common/circuit_breaker.rs
- DQN and PPO circuit_breaker.rs now re-export from common
Validation stack additions:
- Add CPCV (Combinatorial Purged Cross-Validation) with purging/embargo
- Add FDR correction (Benjamini-Hochberg + Benjamini-Yekutieli)
1922 lib tests pass, 0 failures.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>