The model. Two classes, so W has two columns w₀ and w₁, and b = (b₀, b₁). The scores are s_k = w_k · x + b_k and p = softmax(s). The batch loss L is the mean of −ln p(correct class) over the ticked points.
One point's pull. For point i, ∂L_i/∂w₁ = −(y_i − p₁) x_i and ∂L_i/∂w₀ = +(y_i − p₁) x_i. So a step on that point alone moves w₁ by η (y_i − p₁) x_i, along x_i or against it, and moves w₀ by exactly the opposite amount. The biases move the same way by η (y_i − p₁). The dotted lines are the boundary after each point's step alone.
The batch step is the average of those single-point steps, so the new parameters (orange) are the centroid of the three single-point results. Only w₁ − w₀ and b₁ − b₀ decide the boundary, which is (w₁ − w₀) · x + (b₁ − b₀) = 0, so the lower right panel tracks w₁ − w₀ alone. It moves twice as far as w₁ does.
Drag a batch point, or the tip of w₀ or w₁, and everything recomputes. Step makes the orange parameters current. Figure 1's preset is the screenshot printed on the quiz, whose W and b are not the ones Figure 3's numbers came from.