feat(ml): WAVE 29 DQN Codebase Cleanup & Refactoring Campaign
BREAKING CHANGES: - Removed orphaned dqn.rs monolithic trainer (4,975 lines) - Removed orphaned dqn_ensemble.rs module (816 lines) - Removed orphaned tft.rs and tft_complete_int8_integration_test.rs - TFT trainer split into modular directory structure DQN Module Refactoring: - Split trainers/dqn.rs into modular structure (config.rs, statistics.rs, trainer.rs) - Fixed hyperopt 39D search space (continuous params only) - Boolean flags (use_dueling, use_double_dqn, use_per, use_noisy_nets) are now FIXED architectural decisions - use_distributional defaults to false (Candle BUG #36 - scatter_add gradient issues) Clean Module Structure: - ml/src/trainers/dqn/ directory with proper mod.rs exports - ml/src/trainers/tft/ directory with config.rs, types.rs, model.rs, trainer.rs, tests.rs - All P0 features validated: TD-error clamping, batch diversity, LR scheduler, priority staleness Documentation: - Added comprehensive docs in docs/codebase-cleanup/ - ADR-001 for DQN refactoring decisions - Rainbow DQN component matrix and quick reference guides Build Status: Compiles with zero errors 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
163
docs/codebase-cleanup/spectral_norm_visual_summary.txt
Normal file
163
docs/codebase-cleanup/spectral_norm_visual_summary.txt
Normal file
@@ -0,0 +1,163 @@
|
||||
╔══════════════════════════════════════════════════════════════════════════════╗
|
||||
║ SPECTRAL NORMALIZATION RESEARCH SUMMARY ║
|
||||
║ Agent 15 - Complete ║
|
||||
╚══════════════════════════════════════════════════════════════════════════════╝
|
||||
|
||||
┌────────────────────────────────────────────────────────────────────────────┐
|
||||
│ 🎯 OBJECTIVE: Research spectral normalization for DQN anti-overfitting │
|
||||
└────────────────────────────────────────────────────────────────────────────┘
|
||||
|
||||
┌────────────────────────────────────────────────────────────────────────────┐
|
||||
│ ✅ FEASIBILITY VERDICT: YES - CAN BE IMPLEMENTED │
|
||||
│ Complexity: MEDIUM | Time: 5-8 days | Performance: -5-10% │
|
||||
└────────────────────────────────────────────────────────────────────────────┘
|
||||
|
||||
┌─────────────────────────── KEY FINDINGS ───────────────────────────────────┐
|
||||
│ │
|
||||
│ 1. CANDLE SUPPORT │
|
||||
│ ❌ No built-in spectral normalization in candle-nn v0.9.1 │
|
||||
│ ✅ CAN implement using power iteration algorithm │
|
||||
│ ✅ Existing power iteration examples in codebase to adapt │
|
||||
│ │
|
||||
│ 2. IMPLEMENTATION APPROACH │
|
||||
│ Algorithm: Power Iteration (Miyato et al., 2018) │
|
||||
│ ┌────────────────────────────────────────────────────┐ │
|
||||
│ │ for i in 0..n_iters: │ │
|
||||
│ │ v = W^T * u / ||W^T * u|| # Right singular vec │ │
|
||||
│ │ u = W * v / ||W * v|| # Left singular vec │ │
|
||||
│ │ σ = u^T * W * v # Spectral norm │ │
|
||||
│ │ W_norm = W / σ # Normalized weights │ │
|
||||
│ └────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ 3. INTEGRATION POINT │
|
||||
│ Wrap existing NoisyLinear in rainbow_network.rs │
|
||||
│ ┌────────────────────────────────────────────────────┐ │
|
||||
│ │ pub struct SpectralNoisyLinear { │ │
|
||||
│ │ noisy_linear: NoisyLinear, │ │
|
||||
│ │ spectral_norm: Option<SpectralNorm>, │ │
|
||||
│ │ } │ │
|
||||
│ └────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
└──────────────────────────────────────────────────────────────────────────────┘
|
||||
|
||||
┌──────────────────────── COST-BENEFIT ANALYSIS ─────────────────────────────┐
|
||||
│ │
|
||||
│ 💰 COSTS │ 📈 BENEFITS │
|
||||
│ ───────────────────────────────── │ ──────────────────────────────────── │
|
||||
│ • Dev time: 5-8 days │ • Overfitting reduction: 10-20% │
|
||||
│ • Performance: -5-10% speed │ • Better generalization │
|
||||
│ • Complexity: Custom impl needed │ • Training stability │
|
||||
│ • Memory: +0.1% params (minimal) │ • State-of-the-art technique │
|
||||
│ │
|
||||
└──────────────────────────────────────────────────────────────────────────────┘
|
||||
|
||||
┌──────────────────────── IMPLEMENTATION ROADMAP ────────────────────────────┐
|
||||
│ │
|
||||
│ 📅 PHASE 1: Core Implementation (2-3 days) │
|
||||
│ ├─ Create SpectralNorm struct │
|
||||
│ ├─ Implement power iteration │
|
||||
│ ├─ Write unit tests │
|
||||
│ └─ Benchmark performance │
|
||||
│ │
|
||||
│ 📅 PHASE 2: DQN Integration (1-2 days) │
|
||||
│ ├─ Add use_spectral_norm config flag │
|
||||
│ ├─ Wrap NoisyLinear layers │
|
||||
│ ├─ Update initialization │
|
||||
│ └─ Integration tests │
|
||||
│ │
|
||||
│ 📅 PHASE 3: Validation (2-3 days) │
|
||||
│ ├─ Hyperopt with/without spectral norm │
|
||||
│ ├─ Compare validation metrics │
|
||||
│ ├─ Measure overfitting reduction │
|
||||
│ └─ Ablation studies │
|
||||
│ │
|
||||
│ ⏱️ TOTAL: 5-8 days │
|
||||
│ │
|
||||
└──────────────────────────────────────────────────────────────────────────────┘
|
||||
|
||||
┌─────────────────────── RECOMMENDATION MATRIX ──────────────────────────────┐
|
||||
│ │
|
||||
│ 🟢 IMPLEMENT IF: │ 🔴 DON'T IMPLEMENT IF: │
|
||||
│ ───────────────────────────────── │ ──────────────────────────────────── │
|
||||
│ • Validation >> Training loss │ • Current regularization works │
|
||||
│ • Overfitting is critical issue │ • Limited dev resources │
|
||||
│ • Need SOTA anti-overfit tech │ • Performance overhead unacceptable │
|
||||
│ • Can afford 5-8 days + 5-10% │ • Simple alternatives untried │
|
||||
│ │
|
||||
│ 🟡 SIMPLE ALTERNATIVES (try first): │
|
||||
│ ──────────────────────────────────────────────────────────────────────── │
|
||||
│ • Increase dropout: 0.3 → 0.5 (1 line change) │
|
||||
│ • Add weight decay to optimizer (already supported) │
|
||||
│ • Implement early stopping (simple) │
|
||||
│ • Reduce network capacity (config change) │
|
||||
│ │
|
||||
└──────────────────────────────────────────────────────────────────────────────┘
|
||||
|
||||
┌───────────────────────── TECHNICAL DETAILS ────────────────────────────────┐
|
||||
│ │
|
||||
│ 📊 Performance Impact │
|
||||
│ • Training time: +5-10% slower │
|
||||
│ • Memory: +0.1% parameters (2 * hidden_dim per layer) │
|
||||
│ • Power iterations: 1-3 typically sufficient │
|
||||
│ • Convergence: Fast (track ||σ_new - σ_old||) │
|
||||
│ │
|
||||
│ 🔧 Implementation Complexity │
|
||||
│ • Lines of code: ~300 LOC │
|
||||
│ • Dependencies: None (pure candle tensors) │
|
||||
│ • Integration: Wrap existing NoisyLinear │
|
||||
│ • Testing: Unit + integration + validation │
|
||||
│ │
|
||||
│ 📚 References │
|
||||
│ • Miyato et al. (2018) - Spectral Normalization for GANs │
|
||||
│ • Gouk et al. (2021) - Lipschitz Regularization │
|
||||
│ • Yoshida & Miyato (2017) - Spectral Norm for DRL │
|
||||
│ │
|
||||
└──────────────────────────────────────────────────────────────────────────────┘
|
||||
|
||||
┌───────────────────── EXISTING CODE PATTERNS ───────────────────────────────┐
|
||||
│ │
|
||||
│ Found power iteration examples in codebase: │
|
||||
│ ✅ ml/src/regime/transition_matrix.rs:273 │
|
||||
│ └─ Power iteration: π^(k+1) = π^(k) * P │
|
||||
│ │
|
||||
│ ✅ ml/src/checkpoint/enterprise_implementations.rs:308 │
|
||||
│ └─ Simple power iteration for largest eigenvalue │
|
||||
│ │
|
||||
│ Can adapt these patterns for spectral norm calculation! │
|
||||
│ │
|
||||
└──────────────────────────────────────────────────────────────────────────────┘
|
||||
|
||||
┌───────────────────────── DECISION CHECKLIST ───────────────────────────────┐
|
||||
│ │
|
||||
│ Before implementing, confirm: │
|
||||
│ │
|
||||
│ [ ] Overfitting measurably severe (validation >> training) │
|
||||
│ [ ] Team approved 5-8 days development time │
|
||||
│ [ ] Performance overhead (5-10%) acceptable │
|
||||
│ [ ] Current regularization proven insufficient │
|
||||
│ [ ] Alternative simple solutions already tried │
|
||||
│ │
|
||||
│ IF ALL CHECKED → 🟢 IMPLEMENT │
|
||||
│ IF ANY UNCHECKED → 🟡 CONSIDER ALTERNATIVES │
|
||||
│ │
|
||||
└──────────────────────────────────────────────────────────────────────────────┘
|
||||
|
||||
┌──────────────────────────── DELIVERABLES ──────────────────────────────────┐
|
||||
│ │
|
||||
│ 📄 Research Documents Created: │
|
||||
│ 1. spectral_normalization_research.md (full report) │
|
||||
│ 2. spectral_norm_quick_ref.md (decision guide) │
|
||||
│ 3. spectral_norm_visual_summary.txt (this file) │
|
||||
│ │
|
||||
│ 🎯 Next Steps: │
|
||||
│ → Team decision on implementation priority │
|
||||
│ → If approved: Begin Phase 1 (core implementation) │
|
||||
│ → If not: Try simple alternatives first │
|
||||
│ │
|
||||
└──────────────────────────────────────────────────────────────────────────────┘
|
||||
|
||||
╔══════════════════════════════════════════════════════════════════════════════╗
|
||||
║ STATUS: ✅ RESEARCH COMPLETE ║
|
||||
║ Agent 15 - Spectral Normalization ║
|
||||
║ Awaiting Team Decision ║
|
||||
╚══════════════════════════════════════════════════════════════════════════════╝
|
||||
Reference in New Issue
Block a user