This page is the toolbox. Before you can read the parent note (RNN — hidden state & BPTT) you need to own every symbol it throws at you. We build each one from zero: plain words → a picture → why the topic needs it. Nothing is used before it is defined.
xt = the input at step t — the thing the network reads right now (e.g. this second's sensor reading). It is a bundle of numbers; the precise word for "a bundle of numbers," and the notation for how many, come next in Section 2.
ht = the hidden state at step t — the memory note after reading xt.
Why does the topic need ht specifically? Because the answer to "what will happen next?" depends on the history, not just the current frame. ht is where that history is compressed into a fixed-size summary.
Now we can be precise about Section 1: xt is a vector too (say xt∈Rn, n inputs per step), and ht∈Rd is a d-slot memory vector.
Why does the topic need this? The memory note isn't one number — it's a bundle of d features ("airspeed trend", "attitude drift", ...). Storing d numbers lets the state remember several things at once. The picture: a small stack of dials, each dial one component of the vector.
Building block — the humble arrow view first appears in Feed-forward Neural Networks, where every layer's activation is such a vector.
Why the topic needs yt: the loss compares yt to a target, so yt is the thing that gets judged. Without naming it there is nothing to be "wrong," and no gradient to send back.
Why the topic needs it: in the parent's worked example h0=0 is plugged straight into a1. Every recurrence needs a seed; h0 is that seed.
The double-letter subscript is a from→to label, read right-to-left in the product:
Why does the topic need three separate matrices? Because three different journeys happen at each step: the old memory must be reshaped, the new input must be folded in, and the memory must be turned into the output yt. Each journey gets its own tunable grid. The picture: three arrows arriving at the memory dial-stack, each arrow a matrix.
Matrix–vector multiplication is the workhorse of Feed-forward Neural Networks; here the same grids reappear at every step (Section 7).
Why the topic needs the name: in the derivation we differentiate "through tanh" and "through the linear part" separately. Naming the boundary point at makes those two steps readable.
Why the topic needs it: aerospace signals have no fixed length, and the laws of motion don't change between second 3 and second 4. Sharing bakes that fact in as a built-in assumption (a "prior"). This idea is what makes an RNN different from just stacking many Feed-forward Neural Networks layers with separate weights.
Why the topic needs it: the whole of Section 3 in the parent is one long, careful application of these two facts. Everything else is bookkeeping. This machinery is developed for plain nets in Backpropagation.
Why the topic needs these: the backward formulas are literally "tanh-slope ⊙ signal, then push through Whh⊤." Recognising the three symbols makes the boxed BPTT equations readable at a glance.
Now every symbol in the update rule is earned:
ht=tanh(§4 gridWhh§1 old memory, seeded by h0 §3ht−1+§4 gridWxh§1 inputxt+§5 shiftbh),§3yt=Whyht+by
Read it aloud: "mix the old memory and the new input with two grids, add a shift, squash to keep it bounded — that's the new memory; then read the prediction off it." Every word links to a section above.
Related destinations once you own these: LSTM and GRU, Time Series Forecasting, Sequence Modeling in Flight Data, and the classical cousin Kalman Filter.