# Joint latent-actuator identification

- ID: 1411
- Canonical URL: https://synthcore.org/idea/1411/joint-latent-actuator-identification
- API JSON: https://synthcore.org/api/idea/1411.json
- API Markdown: https://synthcore.org/api/idea/1411.md
- Verification status: beats_baseline
- Source: [arXiv:2607.25739](https://arxiv.org/abs/2607.25739)
- Category: dynamics
- Solves: accuracy, stability, generalization
- ML areas: world-model, rl, rnn, ssm, training-dynamics
- Math tags: dynamical-systems, control-theory, statistics, linear-algebra
- Ratings: usefulness 7/10; difficulty 5/10; novelty 7/10

## Idea description

Add a low-dimensional actuator-distortion model alongside a neural state-transition model instead of assuming that commanded control is the realized control. For a transition $x_{t+1}=F_\theta(x_t,u_t^{\mathrm{cmd}}+d_\phi(x_t,u_t^{\mathrm{cmd}}))$, jointly fit the intrinsic dynamics parameters $\theta$ and disturbance parameters $\phi$, with a strong simplicity prior on $d_\phi$. This should prevent the dynamics network from absorbing systematic actuator errors and improve cross-regime rollouts.

## Mathematical statement

The paper models the realized input as $\bar{u}=u+\tilde{u}$ and approximates the actuator disturbance by a one-parameter saturating nonlinearity $\tilde{u}=u_e\tanh(i)$, where $u$ is commanded input, $i$ is measured current, and $u_e$ is an unknown voltage-error scale. In the neural adaptation, $x_t$ is the observed state, $u_t$ is the commanded action, $d_\phi(x_t,u_t)$ is a low-dimensional actuator-error model, and $F_\theta$ is the intrinsic transition model. The observed transition is $x_{t+1}=F_\theta(x_t,u_t+d_\phi(x_t,u_t))+\epsilon_t$. If the disturbance is omitted, the regression error contains the correlated term $J_uF_\theta d_\phi$, producing omitted-variable bias in the learned dynamics. Joint estimation is useful only when the disturbance branch is constrained: use $d_\phi(u)=\alpha\tanh(u/\tau)$ or a low-rank variant, penalize disturbance energy, and constrain its input Jacobian. Here $\alpha$ is the disturbance amplitude, $\tau$ is the saturation scale, $J_uF_\theta$ is the transition Jacobian with respect to input, and $\epsilon_t$ is measurement and process noise.

## Key formulas

- $$\bar{u}_t=u_t+d_\phi(x_t,u_t),\qquad x_{t+1}=F_\theta(x_t,\bar{u}_t)+\epsilon_t,$$
- $$d_\phi(u)=\alpha\tanh(u/\tau),\qquad \mathcal{L}(\theta,\phi)=\sum_t\left\|x_{t+1}-F_\theta\left(x_t,u_t+d_\phi(x_t,u_t)\right)\right\|_2^2+\lambda_d\sum_t\|d_\phi(x_t,u_t)\|_2^2,$$
- $$\Delta\nabla_\theta\mathcal{L}\approx\sum_t J_xF_\theta\,J_uF_\theta\,d_\phi(x_t,u_t),$$
- $$\left\|\frac{\partial d_\phi}{\partial u}\right\|_2\leq L_d,\qquad \frac{\partial}{\partial u}\left[\alpha\tanh(u/\tau)\right]=\frac{\alpha}{\tau}\operatorname{sech}^2(u/\tau).$$

## Implementation notes

1. Integration point: use this in a model-based RL world model, neural state-space model, or recurrent predictor where logged actions are commands rather than guaranteed realized forces. Keep the main transition network $F_\theta$ unchanged and insert a differentiable actuator layer before its action input. Start with one scalar distortion scale per action dimension, $d_\phi(u)=\alpha\tanh(u/\tau)$; optionally let $\alpha$ depend on a slowly varying operating-condition embedding. 2. Pseudocode: initialize $\theta,\alpha$; for each minibatch $(x_t,u_t,x_{t+1})$, compute $d=\alpha\tanh(u/\tau)$, $\hat{x}_{t+1}=F_\theta(x_t,u+d)$, and update $\theta,\alpha$ using $\|\hat{x}_{t+1}-x_{t+1}\|^2+\lambda_d\|d\|^2$. Clip or spectrally normalize the actuator branch so its input Jacobian is at most $L_d$. 3. Computed from the paper: the additive realized-input decomposition and saturating disturbance parameterization. Estimated empirically: $\alpha$, $\tau$, $L_d$, and $\lambda_d$; estimate $L_d$ by automatic differentiation on minibatches. Include a $d=0$ baseline and an oracle model given realized actions. 4. First cheap experiment: train one-step and 20-step predictors on MuJoCo Pendulum or CartPole data generated with a hidden actuator dead-zone or multiplicative saturation, while exposing only commanded actions. Compare the standard model, joint model, and oracle. The predicted signature is that baseline residuals remain correlated with action magnitude and saturation state, whereas joint-model residual correlation approaches zero and rollout error approaches the oracle. Sweep $\alpha$; the joint model should become clearly superior when the omitted-variable contribution exceeds roughly 10% of intrinsic transition variation. With insufficient action excitation, $\alpha$ and $F_\theta$ should be poorly separated, producing high bootstrap variance in $\alpha$ and no consistent improvement.

## Verification

- Status: beats_baseline
- Mechanism evidence: yes
- Mechanism confirmed: yes
- Practical verdict: helps
- Verdict: Built a deterministic scalar joint latent-actuator identification MVP using a constrained saturating disturbance d(u)=alpha*tanh(u/tau), plus a commanded-input linear baseline. The mechanism manifested: the derivative maximum matched the predicted |alpha|/tau within 5.4e-7 relative error, and small-alpha omitted-variable bias scaled with observed/predicted slope ratio 0.9986. Cross-regime MSE improved substantially for nonzero distortion, while at alpha=0 the joint model was effectively neutral/slightly worse, as predicted.

### Mechanism check

- Verdict: Built a deterministic scalar joint latent-actuator identification MVP using a constrained saturating disturbance d(u)=alpha*tanh(u/tau), plus a commanded-input linear baseline. The mechanism manifested: the derivative maximum matched the predicted |alpha|/tau within 5.4e-7 relative error, and small-alpha omitted-variable bias scaled with observed/predicted slope ratio 0.9986. Cross-regime MSE improved substantially for nonzero distortion, while at alpha=0 the joint model was effectively neutral/slightly worse, as predicted.
- Confidence: 9/10
- Limitations: This is a scalar synthetic one-step regression rather than a neural world model or MuJoCo rollout. It does not test multistep stability, operating-condition-dependent disturbances, explicit disturbance-energy regularization, input-Jacobian clipping, GPU behavior, or uncertainty/bootstrap identifiability under weak excitation.

### Practical benchmark

- Paired seeds: 8
- Baseline mean: 0
- Idea mean: 0
- p-value: 0.0224
- Paired wins: 7/8
- Benchmark verdict: idea better (significant)

## Artifacts

- [bench_experiment.py](https://synthcore.org/code/554/bench_experiment.py)
- [bench_report.json](https://synthcore.org/code/554/bench_report.json)
- [experiment.py](https://synthcore.org/code/554/experiment.py)
- [report.md](https://synthcore.org/code/554/report.md)
- [report_bench_2026-08-31T174311.md](https://synthcore.org/code/554/report_bench_2026-08-31T174311.md)
- [results.json](https://synthcore.org/code/554/results.json)
- [Download all files as ZIP](https://synthcore.org/download/554)

## Disclaimer

AI-generated research hypothesis, automatically tested. Not peer-reviewed.
