Visual walkthrough — Feedforward network — forward pass
Step 1 — A neuron is just a dot, holding a number
WHAT. Draw a single circle. Inside it lives one number. That's a neuron. The number it holds is called its activation — think of it as how strongly this neuron is firing, like a dimmer switch between "off" and "very on."
WHY. Before any math, we must agree on the smallest object. Everything else — layers, matrices, the whole network — is copies of this one circle wired together. If you understand the circle, you understand the network.
PICTURE. Look at the figure. One cyan circle, one amber number inside. The arrows into it are the wires that will feed it; the arrow out carries its activation onward.
Step 2 — A wire multiplies; a weight is the volume knob on that wire
WHAT. Connect two circles with a wire. The left circle holds activation . The wire carries that number to the right circle, but scales it first by a number called the weight . What arrives on the other side is the product .
WHY. A raw sensor reading (say Mach 0.8) means different things for different decisions. The weight is how much this decision cares about that reading. A big positive weight = "listen hard and agree." A negative weight = "listen, but do the opposite." Zero = "ignore this wire." Multiplication is the natural tool because doubling the input should double its influence — that is exactly what multiplying by a fixed number does.
PICTURE. The figure shows the input number, the weight sitting on the wire like a volume knob, and the scaled number coming out. Watch the amber label change size.
Step 3 — A neuron adds up all its wires (the weighted sum)
WHAT. A neuron usually has many wires coming in. It simply adds up every scaled number:
WHY. Each wire is one piece of evidence. Summing them is how the neuron pools evidence into a single score: strong-agree wires push the sum up, disagree wires (negative weights) pull it down. Addition is the right tool because evidence should accumulate — two half-reasons should combine into one full reason.
PICTURE. Three input circles, three knobs, three arrows all funnelling into one big plus-sign, giving one running total. The (capital Greek "S," for Sum) is just shorthand for "add these all up," with counting from the first input neuron to the last one, (the number of neurons in the previous layer).
Step 4 — Add a bias: the neuron's built-in opinion
WHAT. After summing the wires, the neuron adds one more number that does not depend on any input — the bias . The full total is the pre-activation:
WHY. Sometimes a neuron should fire even when all inputs are quiet, or refuse to fire unless the evidence is overwhelming. The bias shifts the whole total up or down, setting the neuron's "default mood." Without it, every neuron would be forced to output the same thing when the input is all zeros — too rigid.
PICTURE. The plus-sign total from Step 3, then a small amber box nudging the bar up (positive bias) or down (negative bias) before we read off .
Step 5 — Stack the wires into one matrix multiply
WHAT. Every neuron in layer does its own weighted sum. Instead of writing one equation per neuron, we stack all the neurons' activations into a column of numbers (a vector) and all the weights into a grid (a matrix). Then the whole layer is one line:
WHY. Bold symbols just bundle many numbers so we write one clean line instead of hundreds. A matrix–vector product is defined to be exactly "each output = dot product of one matrix row with the input vector" — which is precisely the weighted sum from Steps 3–4. So the compact line hides nothing; it is the same arithmetic. Computers also multiply matrices blazingly fast, so this form is what actually runs on the aircraft.
PICTURE. Row of the grid lights up, slides across the input column, multiplies-and-adds, and drops one number into slot of . The grid has rows (one per neuron in this layer) and columns (one per neuron feeding it).
Step 6 — Bend the line: the activation function
WHAT. Feed the raw tally through a bending function , applied to each entry on its own: Common choices: ReLU (flatten anything negative to 0), and tanh (squash any number into the range to ).
WHY THIS TOOL and not plain addition? Because if every layer were only sums-and-scales (straight-line maths), then stacking layers would collapse into one straight-line map — no matter how many you stack. Proof-by-picture below: two straight lines composed are still one straight line. A curved function is the only way to build shapes that straight lines can't — and stall, shock waves, and drag curves are all bendy. The bend is where the "learning power" comes from.
PICTURE. Left panel: the ReLU elbow — flat on the left, then a ramp; a negative lands at , a positive passes through unchanged. Right panel: the tanh S-curve flattening toward at the edges.
Step 7 — Why the bend is not optional (the degenerate case)
WHAT. Suppose we removed every activation — set each to "do nothing." Then layer after layer is just multiply-and-add. Chain two of them:
WHY show this. It proves the earlier claim visually and algebraically: a 100-layer linear network equals a 1-layer network . All that depth bought nothing. This is the degenerate case the reader must never fall into.
PICTURE. Top: two straight-line transforms drawn as two rulers; below, they merge into a single ruler — same output, one step. Amber caption: "depth wasted."
Step 8 — Wire the layers together: the full forward pass
WHAT. Start by renaming the input as layer 0's activation, so every layer looks identical: Then repeat Steps 5–6 for , feeding each layer's output into the next:
WHY rename the input? So the same recipe runs at every layer — no special case for the first one. Uniformity makes the code a clean loop and the maths a clean recursion. We stop at layer (the last one); its activation is the prediction .
PICTURE. The full pipeline left-to-right: input column → grid → bend → column → grid → bend → output. Data only ever flows rightward — that one-way flow is why it's called "forward."
Step 9 — Watch the parent's numbers flow through (the 2-3-1 case)
WHAT. Run Example 1 from the parent note through our picture pipeline. Input , one hidden layer (3 neurons, ReLU), one output (linear).
- Layer 1 tally: → after ReLU: (neuron 3 flattened to 0 — a dead neuron for this input).
- Output tally: , linear → .
WHY revisit it here. Now every number has a picture: the ReLU elbow clipping neuron 3, the output dot-product summing what survived. The abstract recursion becomes a concrete waterfall of numbers.
PICTURE. Each neuron drawn as a circle sized by its activation; neuron 3 greyed-out (dead); the final amber glowing at the output.
The one-picture summary
Everything above compressed into a single blueprint: the input column enters left, at each layer a grid (matrix) does the weighted sums, a plus adds the bias, a bend () curves the result, and the arrow marches strictly rightward until the amber output pops out. That's the entire forward pass.
Recall Feynman retelling — say it back in plain words
A neuron is a dot holding one number. Wires bring numbers from the layer before, each wire scaling its number by a weight (a volume knob). The neuron adds all those scaled numbers, then adds its own bias — that's the raw tally . Then it bends the tally through a curved function (ReLU flattens negatives; tanh squashes into ) to get its activation. Stacking a whole layer of these is one matrix-multiply-plus-bias-then-bend. We rename the input as "layer 0," then repeat the recipe layer by layer, always feeding forward, never backward — that one-way march is why it's called the forward pass. The bend is mandatory: without it, a hundred layers collapse into one straight line and all the depth is wasted. We stop at the last layer; its activation is the prediction.
Recall
Why is the network called "feedforward"? ::: Because activations flow in one direction only, input → output, never looping back. What does the weight do to a wire? ::: It multiplies (scales) the number travelling from neuron to neuron — a volume knob. What is the pre-activation ? ::: The weighted sum of inputs plus the bias, before the activation function is applied. Why must the activation function be nonlinear? ::: Otherwise stacked layers collapse into a single affine map , so depth buys nothing. What is ReLU of ? ::: — ReLU flattens every negative to zero. What is the output of Example 1's network? ::: .