Two changes enabling IQN and Branching DQN to complement each other:
1. Optimizer fix: IQN vars excluded from optimizer when branching is the
primary loss path. Previously, IQN weights would silently decay to
zero via weight_decay with zero gradients.
2. Confidence coexistence in select_action_with_confidence():
When both use_iqn and use_branching are enabled, branching handles
action decomposition (per-branch greedy selection) while IQN provides
distributional risk assessment (CVaR-based confidence scoring).
This is the "complement" design: branching = what to do, IQN = how
risky.
Tests: ml-dqn=416, 0 failures
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>