Files
foxhunt/WAVE_16C_QUICK_REF.txt
jgrusewski 8ce7c52586 fix(dqn): Update evaluation script feature dimension from 125 to 128
- Fixed feature dimension mismatch in evaluate_dqn_main_orchestrator.rs
- Updated all 5 occurrences: state_dim, input comments, feature vector type
- Aligned with Wave 16D training (128 features: 125 market + 3 portfolio)

Issue: Validation backtest reveals 100% HOLD action collapse - requires reward
system investigation and redesign per latest RL research.
2025-11-08 18:28:56 +01:00

100 lines
3.3 KiB
Plaintext

WAVE 16C SMOKE TEST - QUICK REFERENCE
=====================================
STATUS: ❌ NO-GO - Critical Integration Failures
FAILURES
--------
1. Feature Count Mismatch (CATASTROPHIC)
- Declared: 125 features (Wave 16A)
- Actual: 225 features extracted
- Model expects: 125 inputs
- Result: Shape mismatch → crash at first layer
- Impact: Cannot train, cannot validate Polyak averaging
2. Preprocessing Crash (CRITICAL)
- Error: "Failed to preprocess prices"
- Location: ml/src/trainers/dqn.rs:1195
- Details: Vague error, no diagnostic info
- Impact: Cannot use log returns + normalization
TRIAL OUTCOMES
--------------
Trial 1: CRASHED (0/3 completed, 0%)
- With preprocessing: Crashes immediately
- Without preprocessing: Shape mismatch crash
- Gradient norms: N/A (no training occurred)
- Duration: ~14 seconds (setup only, 0s training)
CONFIGURATION STATUS
-------------------
✅ Wave 16 startup logs: PASS (correct config displayed)
✅ Polyak averaging logs: PASS (tau=0.001, 692-step half-life)
❌ Feature extraction: FAIL (still extracting 225, not 125)
❌ Preprocessing: FAIL (crashes with vague error)
ROOT CAUSES
-----------
1. extract_full_features() still generates 225 features
- Location: ml/src/trainers/dqn.rs:1224
- Wave 16A feature reduction was declared but NOT implemented
- Model architecture updated to 125 inputs, data pipeline was not
2. preprocess_prices() crashes silently
- Location: ml/src/preprocessing.rs:340+
- Likely causes: NaN/Inf in data, zero division, tensor shape issues
- No diagnostic logging to identify root cause
REQUIRED FIXES
--------------
Priority 1: Fix Feature Count Mismatch (1-2h)
- Implement extract_reduced_features() with 125-feature subset
- Update 3 call sites in dqn.rs
- Test with --no-preprocessing to isolate preprocessing crash
Priority 2: Fix Preprocessing Crash (1-2h)
- Add detailed error logging to preprocessing.rs
- Test log returns + normalization in isolation
- Add input validation (NaN/Inf checks, positive price checks)
Priority 3: Rerun Smoke Test (15min)
- Execute 3-trial, 5-epoch smoke test
- Verify 1+ trials complete
- Validate gradient norms <500 (vs 1,742 baseline)
NEXT AGENT TASKS
----------------
Wave 16D Agent 40: Fix feature count mismatch (1-2h)
Wave 16D Agent 41: Fix preprocessing crash (1-2h)
Wave 16D Agent 42: Rerun smoke test (15min)
VALIDATION CRITERIA (POST-FIX)
------------------------------
GO to Wave 16E (10-trial full campaign) IF:
✅ Feature extraction logs show "125 features"
✅ No shape mismatch errors
✅ Preprocessing completes without crashes
✅ 1-3 trials complete all 5 epochs
✅ Average gradient norm <500
NO-GO (escalate) IF:
❌ Feature count still 225
❌ Preprocessing still crashes
❌ 0/3 trials complete AND gradient norms >1,000
SAVED OUTPUTS
-------------
Report: /home/jgrusewski/Work/foxhunt/WAVE_16C_SMOKE_TEST_REPORT.md
Logs: /tmp/dqn_wave16c_smoke_test_final.log
/tmp/dqn_wave16c_no_preproc.log
/tmp/dqn_wave16c_debug.log
KEY INSIGHT
-----------
Wave 16A-B implemented the ARCHITECTURE changes (model layer sizes,
Polyak tau, preprocessing config) but did NOT wire the feature
extraction changes into the data loading code. Classic integration
failure - components work in isolation but fail when combined.
ESTIMATED TIME TO FIX: 2-4 hours total (Priorities 1+2+3)