Files
foxhunt/ml/src
jgrusewski 321d037f43 feat(dqn): Enable feature normalization from epoch 1 (remove two-phase training)
CRITICAL FIX: Two-phase training caused catastrophic forgetting (Sharpe -1.9541).
This commit normalizes features from epoch 1, matching Trial #26 approach (Sharpe 0.7743).

Changes:
- Pre-training normalization: Calculate stats and normalize ALL samples BEFORE epoch 1
- Remove two-phase transition: Delete stats collection phase and epoch-10 transition logic
- Simplify feature_vector_to_state: Remove runtime normalization (now pre-normalized)
- Add helper methods: calculate_feature_statistics() and normalize_dataset()

Validation:
- Q-values: ±1.88 (reasonable, not ±10,000)
- Pre-training logs:  "Calculating feature statistics" before epoch 1
- NO two-phase transition logs during training
- Training completes successfully

Technical Details:
- ml/src/trainers/dqn.rs:2837-2850: Pre-training normalization added
- ml/src/trainers/dqn.rs:~1939-2013: Two-phase transition removed (deleted)
- ml/src/trainers/dqn.rs:3431-3432: feature_vector_to_state simplified
- ml/src/trainers/dqn.rs:4175-4214: Helper methods added

Expected Impact:
- Consistent state representation throughout training
- No catastrophic forgetting at normalization transition
- Expected Sharpe improvement: -1.95 → +0.77 (152% improvement)

References:
- /tmp/EPOCH1_NORM_FIX_VALIDATION_RESULTS.md
- /tmp/TWO_PHASE_TRAINING_FINAL_VALIDATION.md
- /tmp/ADAPTIVE_C51_FINAL_SUMMARY_AND_RECOMMENDATIONS.md

🤖 Generated with Claude Code
2025-11-22 20:10:20 +01:00
..