_tmp_cspo_model / claim1_cell.md
jomasego's picture
logbook
2e739de
|
Raw
History Blame Contribute Delete
1.92 kB

Numerical audit of Claim 1

Claim: CSPO incorporates local constraint sensitivity into policy updates by scaling the constraint correction using $w_k = 1/|\nabla g(\theta_k)|^2$, derived from the shortest signed distance $g(\theta)/|\nabla g(\theta)|$ to the linearized safety boundary (Section 3).

Verification: We performed an independent numerical audit of the mathematical derivation:

  1. Minimal-norm update (Eq. 9-10): Verified that $\Delta\theta^* = -g(\theta_k)/|\nabla g(\theta_k)|^2 \cdot \nabla g(\theta_k)$ correctly solves $\min \frac{1}{2}|\Delta\theta|^2$ s.t. $g(\theta_k) + \nabla g(\theta_k)^\top \Delta\theta = 0$. Tested across dimensions $d \in {2,5,10,50}$ with random gradients — all passed.

  2. Shortest signed distance (Eq. 10): Verified $|\Delta\theta^*| = |g(\theta_k)|/|\nabla g(\theta_k)|$. Tested across $d \in {2,5,10}$ — all passed.

  3. Weight formula (Eq. 12): Verified $w_k = 1/|\nabla g(\theta_k)|^2$ correctly scales the update. Tested across $d \in {2,5,10,50,100}$ — all passed.

  4. Code implementation: Confirmed the CSPO implementation at https://github.com/serval-uni-lu/CSPO/tree/962e696 matches the paper:

    • _compute_w() computes $w = 1/(|\nabla g|^2 + \epsilon)$ (line 81 of cspo.py)
    • _loss_pi_cost() computes $\lambda_{\text{eff}} = \lambda + \alpha \cdot w \cdot [g(\theta)]_+$ (line 114-119)
    • EMA smoothing is applied with $\beta = 0.9$ (line 83)
  5. Geometric intuition: Confirmed flat gradients ($|\nabla g| = 0.32$) produce $w = 10.0$ (strong correction), while steep gradients ($|\nabla g| = 31.62$) produce $w = 0.001$ (cautious correction).

Result: Claim 1 is supported — the derivation is mathematically sound and the implementation faithfully follows the paper.

Code: verify_claim1.py Repo: https://github.com/serval-uni-lu/CSPO/tree/962e696