Backup — LSTM classifier (Stage 5)
AnomalyLSTM in the loop: window → recurrent net → class scores
Habitat sim
1 Hz telemetry
Input window
T=60 · F=68 · z-scored
t−59
…
t−1
t
⋮
⋮
⋮
⋮
x ∈ ℝ⁶⁸ each second
AnomalyLSTM (unrolled)
same cell · shared weights · H = 32
xₜ₋₅₉
…
xₜ₋₁
xₜ
LSTM
cell
···
LSTM
cell
LSTM
cell
h
hₜ₋₅₉
···
h
hₜ₋₁
h
hₜ ∈ ℝ³²
each step τ: (h_τ, c_τ) = LSTM(x_τ, h_{τ−1}, c_{τ−1})
only final h_t → class head · gates: next slide
Class head
one linear score per class, then softmax
⋮
hₜ (32)
z₀ nominal
z₁ anom. 1
z₂ anom. 2
⋮
z₃₁ anom. 31
each z_k uses
its own row of W
on the same h_t
z = W h_t + b
, W ∈ ℝ³²ˣ³²
P = softmax(z)
→ class probabilities
In the habitat-dx loop
Detection
AnomalyLSTM
Hypothesis
skipped
Evaluation
= LSTM posteriors
Decision
confidence gate
Execute
procedures
Detection publishes class scores as evaluation each tick
hold while leader is nominal · decide on an anomaly · recover_nominal
solid = active in Study C
dashed = disabled