Pre-Estimation Checks

Read this page before fitting AIRL. The most important check is whether the reward object you want is actually state-only, because that is where the original recovery guarantee applies.

Adversarial training is sensitive to a small number of setup choices. Run these checks before fitting.

Check

Why it matters for AIRL

reward_arg vs DGP signal

If the DGP puts its signal in action contrasts, state-only AIRL cannot match it. Set reward_arg="state_action" when payoffs are action-dependent.

Discriminator loss near log(2)

A final discriminator loss well above log(2) (about 0.693) suggests the game did not converge. Inspect before interpreting reward metrics.

max_rounds adequate

Too few rounds leave the game undertrained; policy TV stays high. Typical good-fit runs use 150-300 rounds.

Feature rank

A rank-deficient reward feature matrix leaves directions of the reward undetermined.

Feature condition number

High condition numbers (above ~100) can slow discriminator convergence.

State coverage

States not seen in the panel do not contribute discriminator gradients. The policy at those states is only informed by the Bellman propagation from visited neighbors.

Action support per state

A state where one action is never taken means the discriminator never gets a gradient signal for that (state, action) pair.

Transition row sums

Transitions must be row-stochastic in the (n_actions, n_states, n_states) orientation.

Simulation Cell Checks

Values from the primary state-only simulation cell (see Simulation Study):

Check

Value

Status

Feature rank

4 / 4

pass

Feature condition number

62.58

pass

Observed states

16 / 16

pass

State-action coverage

1.000

pass

Minimum action share

0.242

pass

Final discriminator loss

1.386

near log(2)

The condition number of 62.58 is moderate for a state-only linear reward and does not impair convergence here, but it is worth noting before applying AIRL to a different feature basis.

Common Risk Patterns

Wrong reward_arg. When the DGP signal is entirely in action contrasts and reward_arg="state" is used, the reward is averaged across actions before computing the discriminator logit. Both actions receive equal flow utility; the policy collapses toward uniform and policy TV stays high regardless of training length. The fix is reward_arg="state_action" plus a longer schedule.

Undertrained game. With default max_rounds=200, very short runs (below 100 rounds) often leave the discriminator loss above log(2) and the policy far from the oracle. Increase max_rounds and monitor final_disc_loss.

Interpreting raw parameters. Raw adversarial reward weights are not structural parameters. Reward is identified only up to potential-based shaping, so parameter-level comparisons with the data-generating truth are not meaningful. Policy TV and counterfactual regret are the right scorecards.