The complaint that reaches every weight

A handwriting model sees a small grey image of the digit 8 and predicts 3. Its loss rises to one scalar number. The model may contain a million adjustable weights, spread across filters, normalisation scales and a final classifier. Which weight should change? The label does not arrive with a list of guilty parameters. The loss does not know that one early filter ignored the lower loop, another feature saturated, and the last layer merely trusted what it received.

The learning system must turn one distant complaint into many local proposed changes. For a weight near the output, the relation is short. For a weight near the pixels, the effect passes through every transformation between that weight and the loss. Some paths branch. Some merge. Some contain nearly flat nonlinearities. Some are cut by a discrete decision or an explicit stop-gradient. A weight receives credit only through the paths by which its perturbation could have changed the objective.

Backpropagation does not send the error label backwards. It sends a sensitivity: if this intermediate value had moved slightly, how would the final loss have moved? Each operation converts incoming sensitivity into sensitivity for its own inputs and parameters. Repeating that local conversion across the graph produces the gradient.

That answer is exact for the stated graph and derivatives, yet it is narrower than the phrase “credit assignment” often suggests. A perfect derivative can optimise a bad proxy. A correct chain rule can deliver a signal too small to use. A low loss can coexist with poor real-world outcomes. The difficult engineering question is therefore not merely whether a gradient exists. It is whether the entire credit path deserves to govern learning.

One scalar complaint and many possible creditors Four parameter knobs influence intermediate states that merge into one prediction and one loss. Reverse sensitivity returns along only the connected paths. The loss names one discrepancy, not one guilty parameter θ₁θ₂θ₃θ₄ features Afeatures Bprediction scalarloss L solid: forward values dashed: reverse sensitivity Line thickness illustrates how much local sensitivity reaches each parameter.
Figure 1. One scalar complaint and many possible creditors. Forward computation merges many influences into one loss. Reverse-mode differentiation follows the exact dependency graph and returns a local sensitivity to each connected parameter. Illustrative. Line thickness is conceptual, not measured.

The adjacent essay Functions and Compositional Behaviour establishes how a forward composition creates the path. Optimisation, Approximation and Guarantees asks what an optimisation claim actually warrants. The narrower question here is how sensitivity travels backwards through that path, and why exact calculus can still produce poor learning credit.

A distant error and a local nudge

A derivative is a controlled perturbation question

Imagine a volume knob connected to a loudspeaker. Turn the knob a hair clockwise and measure the change in sound pressure. The derivative is the limiting ratio between those two small changes. It describes the response near the current setting. It says nothing about whether louder music is desirable, whether the listener likes the song, or what happens after a large turn crosses a hardware limit.

For a scalar function f(x), the derivative at x is the slope approached as the perturbation becomes small. Neural networks use the same idea, but the object of interest is usually a loss L that depends on millions of parameters collected in a vector θ. The partial derivative ∂L/∂θᵢ asks how the loss would respond to a small change in one coordinate while the other coordinates are held fixed.

∂L/∂θᵢ = limε→0 [L(θ + εeᵢ) − L(θ)] / ε
∇θL = [∂L/∂θ₁, ∂L/∂θ₂, …, ∂L/∂θₙ]ᵀ
Symbols. ε is a small perturbation, eᵢ selects coordinate i, and n is the number of parameters. A positive component means increasing that coordinate would locally increase the loss. Gradient descent therefore subtracts a scaled gradient.

The gradient packages all coordinate-wise sensitivities into one vector. Under the ordinary Euclidean notion of step size, it points in the direction of steepest local increase. The negative gradient points towards the steepest local decrease for an infinitesimal step. That geometric statement is useful and easy to overextend. A finite update may enter a curved region, interact with other coordinates or overshoot. Reparameterising the same function can also change the gradient vector because “one unit of movement” has changed meaning.

A gradient is a proposal about the next local move, conditional on a chosen coordinate system and objective. It is not a direction towards truth. The distinction becomes decisive once the loss is only a proxy for the result people care about.

Thought experiment 1: the chain of exchange desks

A traveller converts pounds to euros, euros to yen, and yen to tokens used by a machine. Each desk displays a local exchange rate. A one-pound change affects the final token amount through the product of all three rates. Now let the middle desk round every amount between 100 and 110 euros to exactly 105. Around a value inside that interval, its local rate is zero. The first desk receives no marginal credit even though a large enough pound change could cross the rounding boundary. The chain rule is correct. Its local view has become uninformative for that finite change.

The chain rule turns distant effects into local factors

A model is a composition of transformations. Suppose a parameter w₁ changes a pre-activation z, which changes an activation a, which changes a prediction ŷ, which changes a loss L. The chain rule decomposes the distant sensitivity into local terms:

∂L/∂w₁ = (∂L/∂ŷ)(∂ŷ/∂a)(∂a/∂z)(∂z/∂w₁)
Each factor is a local exchange rate between neighbouring quantities. A large factor amplifies incoming sensitivity. A small factor attenuates it. A zero factor blocks first-order credit along that path.

This factorisation is more than a derivation convenience. It exposes where learning can fail. The loss may provide a strong signal, yet a saturated activation contributes an almost zero local derivative. A recurrent transition may multiply the signal by a similar Jacobian hundreds of times. A branch can contribute an additional path whose sensitivities add at a shared node. The topology and local conditioning together determine which parameters can hear the complaint.3

Worked example 1: one hidden unit, every number visible

Take x = 2, w₁ = 0.5, b₁ = 0, w₂ = 1.2, b₂ = 0, and target t = 1. The network computes z = w₁x + b₁ = 1, a = tanh(z) ≈ 0.761594, and ŷ = w₂a + b₂ ≈ 0.913913. With squared loss L = ½(ŷ − t)², the error derivative is ∂L/∂ŷ = ŷ − t ≈ −0.086087.

The remaining local factors are ∂ŷ/∂a = 1.2, ∂a/∂z = 1 − tanh²(z) ≈ 0.419974, and ∂z/∂w₁ = x = 2. Multiplying them gives ∂L/∂w₁ ≈ −0.086770. A small gradient-descent update increases w₁, which raises the prediction and reduces this loss.

Local exchange rates compose into one parameter gradient A forward chain computes z, activation, prediction and loss. Reverse labels show the four local derivatives whose product gives the gradient for w1. The distant derivative is a product of local responses w₁0.5z1.0a0.761594ŷ0.913913L0.003705 z = w₁xa = tanh(z)ŷ = 1.2a½(ŷ − 1)² ∂L/∂ŷ = −0.086087∂ŷ/∂a = 1.2∂a/∂z = 0.419974∂z/∂w₁ = 2 ∂L/∂w₁ = −0.086087 × 1.2 × 0.419974 × 2 = −0.086770
Figure 2. Local exchange rates compose into one parameter gradient. The numeric values come from the minimal network used by the executable checker. Exact synthetic calculation, rounded to six decimal places.

The gradient assigns infinitesimal influence, not moral blame

“Credit” can sound like praise or fault. In backpropagation it has a technical meaning: marginal influence on the selected objective through the selected graph at the current values. A parameter with a large gradient is not necessarily the root cause of an error. It may be the nearest adjustable lever. An upstream parameter may have created the misleading representation, while a downstream weight receives the larger derivative because it directly controls the score.

Causal responsibility also asks a different question. It may compare interventions across alternative system designs, datasets or policies. A gradient holds the current graph fixed and studies local parameter perturbations. It does not identify who chose the label, whether the data omitted a subgroup, or whether a decision threshold created harm after the model output. Those causes live outside the differentiable boundary unless explicitly represented in the objective and graph.

The derivative is exact about a deliberately narrow counterfactual. “What if this number changed slightly?” is not the same as “Why did the system fail?” The first question powers efficient optimisation. The second needs a broader evidence chain.

The argument in one passChart · flow
flowchart LR
  A["The complaint that reaches<br/>every weight"] --> B["A distant error and a local nudge"]
  B --> C["Reverse-mode as sensitivity<br/>transport"]
  C --> D["When correct gradients assign<br/>poor credit"]
  D -. "re-test" .-> A
  classDef first fill:#0a1424,stroke:#087A98,stroke-width:2px,color:#e6f3ff
  classDef step fill:#0a1424,stroke:#3f7da0,stroke-width:1px,color:#e6f3ff
  class A first
  class B,C,D step
A structural route through Derivatives, Gradients and Credit Assignment: How Error Reaches a Distant Weight, from The complaint that reaches every weight to Make the credit path an architectural…. Reading use: follow the relation, then test it against the surrounding evidence and limits.

Reverse-mode as sensitivity transport

Why the graph is traversed backwards

A forward pass computes values from inputs and parameters towards one or more outputs. Training usually reduces those outputs to a scalar loss. The task then has an asymmetric shape: many parameters feed one scalar. Forward-mode automatic differentiation would push one chosen parameter perturbation through the graph at a time. Reverse mode starts from the scalar and computes sensitivities for every upstream value in one reverse traversal. This is why reverse mode suits neural networks with many parameters and a scalar objective.2

The forward pass must retain enough intermediate information to evaluate local derivatives later. A multiplication needs the other operand. A tanh derivative can use the cached activation. A normalisation layer needs statistics from the forward calculation. Frameworks such as PyTorch build or record a dynamic graph of operations and apply registered vector-Jacobian products during the backward pass.13

h₀ = x, hℓ = fℓ(hℓ−1, θℓ), L = ℓ(hm, t)
λm = ∂L/∂hm
λℓ−1 = Jfℓ,hᵀ λℓ
∂L/∂θℓ = Jfℓ,θᵀ λℓ
Symbols. hℓ is the state after layer ℓ, θℓ its parameters, λℓ the sensitivity arriving from downstream, and J a Jacobian of local outputs with respect to local inputs or parameters. Multiplying Jᵀ by the incoming vector is a vector-Jacobian product. Implementations compute the product without constructing a full dense Jacobian.

At a branch, one value may influence the loss through several descendants. Each descendant returns a sensitivity, and the contributions add at the shared node. At a merge such as addition, incoming sensitivity is distributed to both parents. At multiplication, each parent receives the incoming sensitivity scaled by the other forward value. The backward rules mirror local dependency, not a narrative about the whole model.

A parameter gradient is a sum over active paths

For a scalar acyclic graph, the derivative with respect to a parameter can be understood as a sum over every directed path from that parameter to the loss. Each path contributes the product of its local derivatives. Backpropagation does not enumerate those paths, which would be wasteful in a large graph. Dynamic programming reuses the accumulated sensitivity at each node, so common suffixes are processed once.

∂L/∂θ = Σp∈P(θ→L) ∏e∈p ∂vchild(e)/∂vparent(e)
Symbols. P(θ→L) is the set of active directed paths from parameter θ to loss L. Each edge e contributes a local derivative. Paths can reinforce or cancel. A route absent from the realised graph contributes nothing.

This view clarifies two apparently contradictory observations. A parameter can matter through many weak paths whose contributions add to a useful gradient. It can also matter strongly through separate paths that cancel at the current example. A near-zero total gradient therefore does not always mean “the parameter is irrelevant”. It may mean “the active uses disagree about the local direction”. Interventions and per-path or per-example diagnostics can distinguish those cases.

Reverse-flow sensitivity map Forward values move through a branching computation graph. A loss sensitivity travels backwards, splits through branches and adds at a shared upstream state. Forward values define the route; reverse sensitivity follows it h₀shared hbranch Abranch Bmergeloss L sensitivities add here The shared state receives λ = λ from branch A + λ from branch B.
Figure 3. Reverse-flow sensitivity map. Branch-specific sensitivities return through local vector-Jacobian products and add at a shared ancestor. The graph topology determines which paths can carry credit. Authored conceptual figure. Widths are illustrative.

Shared parameters collect credit from every use

A convolutional kernel is reused across image positions. A recurrent transition is reused across time. A tied embedding may participate in both input encoding and output prediction. The parameter is one stored object, so its gradient is the sum of contributions from every use in the current graph. Reverse mode handles this by accumulating into the same parameter slot.

Suppose a recurrent weight is used at three steps and receives local contributions +0.8, −0.7 and +0.1. The reported gradient is +0.2. That small total hides substantial and conflicting temporal pressure. Changing the sequence length, masking one step or reweighting a loss can alter the cancellation without changing the forward definition of the shared weight. For long-horizon systems, log both the aggregate and the distribution of contributions across time or modules when feasible.

Credit accumulation is lossy evidence. The final parameter gradient is sufficient for a first-order update, but it can erase which examples, positions or uses supported and opposed that update. Auditing consequential training therefore benefits from per-example gradients, slice-level summaries or targeted ablations rather than one global norm alone.

One forward value can have two backward meanings

Automatic differentiation separates values from derivative rules. Two computations can produce the same number in the forward pass yet expose different credit paths. A framework operation such as detach or stop_gradient returns a value that downstream code can use while declaring its derivative with respect to the source to be zero. The prediction can remain numerically identical. Training behaviour changes because one edge has become invisible to the reverse pass.

Thought experiment 2: the stopped twin

Build two identical branches that calculate the same feature value, 0.8. In branch A, the value remains connected to its encoder. In branch B, it is copied through a stop-gradient operation before the classifier sees it. Both models return the same prediction and loss today. After backward propagation, branch A's encoder receives credit; branch B's encoder receives exactly zero. The forward observation alone cannot tell which model can learn from the example.

Stopped twins: equal forward values, unequal learning Two identical forward branches produce feature 0.8 and the same loss. One branch preserves its derivative path; the other contains a stop-gradient barrier and returns zero to its encoder. A forward equality need not preserve a credit path TWIN A encoder θfeature0.8classifiersame loss non-zero encoder gradient TWIN B encoder θfeature0.8classifiersame loss STOP encoder gradient = 0 Numerical equality in the forward pass does not imply derivative equality.
Figure 4. Stopped twins. Both branches expose the same feature to the classifier, but only one permits the loss to update the encoder. Exact conceptual property of stop-gradient operations; values are synthetic.

Checking the reverse rules

A derivative implementation can be wrong even when the forward calculation is correct. The common diagnostic is a finite-difference check. Perturb one parameter by a small positive amount, perturb it by the same negative amount, and compare the observed loss slope with the reverse-mode result. A central difference usually reduces truncation error compared with a one-sided estimate:

ĝᵢ(ε) = [L(θ + εeᵢ) − L(θ − εeᵢ)] / (2ε)
The numerical estimate ĝᵢ should agree with the analytic or automatic derivative within a tolerance suited to precision and scale. An ε that is too large measures curvature rather than the local slope. An ε that is too small loses signal to floating-point cancellation. PyTorch's gradcheck documents the same basic comparison and its limitations.14

Gradient checking isolates a useful claim: the implemented reverse rule matches the local behaviour of the implemented forward function. It cannot certify that the forward function represents the intended objective. The checker later in this article includes a deliberately reversed target. The derivatives pass because they faithfully optimise the wrong target.

Negative control: when credit assignment is easy

Consider one-feature linear regression, ŷ = wx, with squared loss and well-scaled data. There is one direct differentiable path from w to the loss, no saturation, no recurrence, no routing and a convex objective. Ordinary gradient descent converges under familiar step-size conditions. Residual connections, auxiliary losses and alternative feedback pathways add machinery without solving an observed problem. This control matters because “deep credit assignment is difficult” must not become a universal excuse for poor optimisation.

When correct gradients assign poor credit

Batch aggregation can hide disagreement before depth matters

Even a short, perfectly conditioned graph can produce misleading aggregate credit when examples disagree. Training commonly averages gradients over a minibatch. Imagine nine routine examples each contributing +1 to one parameter and one rare severe example contributing −9. The batch average is zero. No update occurs, although the severe slice asks for a large change in the opposite direction.

The mathematics is correct for the chosen average loss. The failure lies in treating that aggregate as adequate evidence for every population. Class weighting, stratified sampling, robust objectives or explicit constraints change how examples contribute. Per-example gradient distributions can reveal whether a stable mean reflects agreement or cancellation. This is one reason training dashboards that show only total loss and global gradient norm can miss a material subgroup conflict.

Path products can erase or detonate a signal

In a long chain, the backward signal is repeatedly multiplied by Jacobians. If relevant singular values are mostly below one, sensitivity tends to shrink with depth or time. If they are mostly above one, it can grow rapidly. Recurrent networks reuse a transition many times, which made the vanishing and exploding gradient problem particularly visible. Bengio, Simard and Frasconi analysed the difficulty of learning long-term dependencies, while Pascanu, Mikolov and Bengio later described the geometry and practical role of gradient clipping.45

The statement is about usable numerical credit, not the formal existence of a derivative. A parameter may have a non-zero exact gradient so small that floating-point precision, minibatch noise or regularisation overwhelms it. Another parameter may receive an enormous gradient that makes one update destroy previously useful behaviour. Clipping can bound the update generated by an exploding norm. It does not restore information that vanished earlier.

Residual connections create shorter identity routes through which states and gradients can travel. Deep residual networks showed that this architectural change could make much deeper image models train effectively.6 Deep supervision adds auxiliary objectives closer to intermediate layers, shortening selected credit paths.7 Neither mechanism proves that every early feature receives semantically correct credit. They improve transport conditions for stated losses.

Recent work also changes the route rather than repairing the same path. Kumar and Isola’s 2026 Supervised Memory Training first learns predictive memory targets with a Transformer-based encoder, then trains an RNN on one-step memory transitions without unrolling it.15 In the reported language, pixel-sequence and synthetic tasks, this creates a constant-length gradient path and can outperform backpropagation through time. The claim is bounded: the learned RNN can drift from the teacher trajectory, teacher expressivity constrains the target, and later BPTT fine-tuning may still be needed. The experiment is valuable because it separates two questions that conventional recurrence merges: what should be remembered, and how should memory update?

Three gradient regimes across depth or time An illustrative logarithmic chart compares repeated local gains of 0.7, 1.0 and 1.3 over thirty steps, producing vanishing, stable and exploding sensitivity. Repeated local gains determine whether distant credit survives large1tinynear outputdistant layer stable: 1.0 per step vanishing: 0.7 per step exploding: 1.3 per step The vertical position represents log gradient magnitude; the curves are synthetic path products.
Figure 5. Three gradient regimes across depth or time. Repeating a local gain below, near or above one creates qualitatively different credit transport. Real networks mix directions and Jacobians, so one scalar multiplier is only an intuition. Illustrative relationship using synthetic gains of 0.7, 1.0 and 1.3 over thirty steps.

Zero local gradient does not prove zero finite influence

A ReLU unit below zero has derivative zero under the usual convention. A hard threshold is constant almost everywhere and discontinuous at its boundary. A saturated sigmoid has a derivative close to zero even though a large input change can move it into a responsive region. In each case, first-order credit at the current point can disappear while a finite intervention still changes behaviour.

This is an explicit boundary of gradient reasoning. The derivative describes the tangent, not the whole function. Second-order information can reveal curvature near a flat direction, but it cannot make a truly discrete operation differentiable. Practitioners then use surrogate gradients, relaxations, straight-through estimators, search or score-function estimators. Each choice changes the evidence carried by the update.

Stochastic and discrete choices change the estimator

When a random action determines later rewards, the realised sample path is not ordinarily differentiable with respect to the probabilities that produced it. The REINFORCE estimator uses the identity ∇θ E[R] = E[R∇θ log pθ(a)] under suitable conditions, turning reward-weighted log-probability gradients into an unbiased estimate.8 Its variance can be high, especially when rewards arrive long after many actions.

Stochastic computation graphs generalise the bookkeeping. Deterministic differentiable nodes use pathwise derivatives; stochastic nodes introduce score-function terms or reparameterised paths where available.9 Baselines can reduce variance without changing expectation. None of these methods eliminates temporal ambiguity. If a delayed reward follows fifty decisions, the estimator must distinguish which earlier actions changed its probability or value.

At a stochastic boundary, “the gradient” is often an estimate with its own bias, variance and sampling assumptions. Treating it as the same evidence as an exact reverse derivative hides a material change in the credit channel.

The objective can reward the wrong contributor

Suppose a service model predicts which customer messages require urgent review. The training label is “handled within four hours” because that field is easy to extract. The model quickly learns that messages arriving during staffed hours receive faster handling. Its gradients are correct. The learned policy routes daytime messages as urgent and may neglect serious overnight cases. The path from loss to parameters is intact, yet the target encodes operating capacity rather than customer harm.

Adding a fairness penalty, appeal outcome or reviewer-confirmed severity changes the objective and therefore the credit assigned to every feature. That is not a minor reporting adjustment. It changes which perturbations count as improvements. A feature correlated with staffing may receive positive credit under the response-time proxy and negative credit under an independently adjudicated severity loss.

Worked example 2: synthetic triage with three losses

A synthetic triage model processes 10,000 messages. It predicts urgency and routes the top 8 per cent to a specialist queue. The first objective minimises response delay and reaches 92 per cent accuracy against the operational label. An audit then finds that only 61 per cent of truly severe synthetic cases enter the queue because overnight arrival is treated as evidence of low urgency.

The team adds two terms: reviewer-confirmed severity and an appeal penalty for missed severe cases. With illustrative weights L = 0.4Ldelay + 0.4Lseverity + 0.2Lappeal, the same arrival-time feature receives less credit while symptom and vulnerability features receive more. The example does not claim a deployed result. It shows that gradient correctness begins after the organisation has decided what counts as loss.

A proxy can deliver precise credit to the wrong behaviour A synthetic triage pipeline combines message features into an urgency score. Three loss terms send different reverse signals to arrival time, symptom and vulnerability features. Objective design decides which features earn learning credit arrival timesymptom evidencevulnerability urgencyscore specialistqueue delayweight 0.4severityweight 0.4appealweight 0.2 Different loss terms produce different reverse pressure on the same feature encoder.
Figure 6. A proxy can deliver precise credit to the wrong behaviour. Response delay, reviewed severity and appeal outcomes send different signals through the same model. Worked scenario with synthetic counts and illustrative loss weights; not a deployment claim.

Exact backpropagation is a strong baseline, not a metaphysical requirement

Backpropagation uses the transposed local Jacobians of the forward computation. In biological discussions this creates the weight-transport problem: how would a physical system provide feedback weights that match the forward weights? Feedback alignment research showed that fixed random feedback matrices can, in some networks and tasks, induce useful learning because the forward pathway adapts to the feedback.1011 Direct feedback alignment sends output error directly to hidden layers rather than recursively through exact transposes.

These results are a serious counterexample to the claim that exact reverse derivatives are the only possible learning signal. They do not show that any approximate signal works, or that alternatives match backpropagation across architectures and scales. Performance remains architecture- and task-dependent. The useful lesson is methodological: compare credit channels by task performance, alignment, stability, communication cost and failure mode rather than treating one implementation as the definition of learning.12

The general requirement is informative, controllable credit, not ritual fidelity to one backward mechanism. Exact gradients remain the reference instrument for differentiable programmes because they make a precise optimisation claim. Alternatives inherit an obligation to state what they estimate, under which conditions, and how their errors change learning.

Four boundaries separate a correct derivative from a good outcome Four nested contours represent derivative correctness, credit-path quality, objective alignment and verified world outcome. Success at an inner boundary does not prove success at an outer one. Passing an inner test does not certify the next boundary 1. derivativematches the graph 2. credit pathconnected and conditioned 3. objectiverewards intended behaviour 4. world outcomeverified beyond the model gradchecknorms and ablationscounterfactual labelsoutcome monitoring
Figure 7. Four boundaries of credit. Finite differences can validate a derivative. Gradient statistics and interventions can test transport. Label audits test the objective. Only operational evidence tests the eventual outcome. Practitioner synthesis developed for this article.
Explicit failure boundary

The mechanism in this article ceases to help when the desired change cannot be represented as a differentiable or estimable objective over the available computation. It also breaks as an explanation when a finite, structural or policy intervention matters but the local tangent does not capture it. A gradient can certify neither causal responsibility nor business value. At those boundaries, use experiments, discrete search, causal analysis, policy review, human judgement or another instrument suited to the question.

How the claim changes under pressureChart · state
stateDiagram-v2
  [*] --> Claim
  state "A derivative is a controlled<br/>perturbation question" as Claim
  state "The chain rule turns distant<br/>effects into local factors" as Test
  state "The gradient assigns<br/>infinitesimal influence, not<br/>moral blame" as Revision
  Claim --> Test: expose mechanism
  Test --> Decision: evidence survives
  Test --> Revision: rival survives
  Revision --> Claim: narrow or rebuild
  Decision --> [*]
The revision loop begins with A derivative is a controlled… and keeps counterexamples inside the reasoning path. Reading use: follow the relation, then test it against the surrounding evidence and limits.

The credit-path audit

Training trouble often triggers an optimiser search: lower the learning rate, add momentum, switch to Adam, increase the batch size. Those changes can help after a usable gradient reaches the optimiser. They cannot repair a target that rewards the wrong behaviour, a detached encoder, a derivative bug or a stochastic estimator whose variance overwhelms its mean.

Treat the credit path as an architectural object with observable stages. The audit below proceeds from semantic commitments towards numerical transport and finally back to behaviour. Each gate has a distinct test and a distinct repair. Skipping ahead makes one tool answer a question it was not designed to answer.

The optimiser consumes credit; it does not create it

Stochastic gradient descent, momentum and adaptive methods transform the gradient into an update. Momentum mixes current and past directions. Adaptive methods rescale coordinates using running statistics. Weight decay and clipping add further policy. These mechanisms can improve progress on a curved or noisy landscape. They remain downstream of the credit calculation.

If an encoder is detached, its gradient is exactly zero and Adam has nothing to rescale. If a proxy rewards the wrong outcome, momentum can pursue that proxy more efficiently. If per-example contributions cancel in the averaged loss, a sophisticated optimiser sees the cancellation, not the hidden disagreement. This boundary keeps diagnosis ordered: establish that the signal is meaningful and reaches the parameter before debating how to spend it.

GateQuestionMinimum testTypical repair
1. ObjectiveDoes lower loss represent a better task or outcome?Counterexample labels, subgroup review, proxy reversal, human adjudication.Redefine targets, loss terms, constraints or decision boundary.
2. GraphIs every intended contributor connected to the loss?Inspect graph, perturb or ablate nodes, test stop-gradient and routing paths.Restore edges, move losses, expose state, correct detach or masking.
3. DerivativesDo reverse rules match the implemented forward function?Central finite differences on small deterministic cases.Fix custom operators, shapes, broadcasting, mutation or precision.
4. ConditioningDoes useful sensitivity survive depth, time and scale?Per-layer norms, singular-value probes, saturation rates, update-to-weight ratios.Residual paths, normalisation, initialisation, clipping, gating or auxiliary losses.
5. EstimatorIs credit exact, biased, noisy or delayed?Variance across seeds and samples, bias check on a small tractable problem.Baselines, reparameterisation, more samples, shorter horizons or another estimator.
6. UpdateDoes the proposed step reduce the intended loss?Directional finite-step test at several learning rates.Adjust scale, optimiser state, trust region or curvature treatment.
7. BehaviourDoes lower training loss improve held-out decisions?Ablations, shifted test sets, calibration, subgroup and failure-slice analysis.Change data, regularisation, architecture, evaluation or abstention.
8. OutcomeDid the deployed process produce the verified result?Independent readback, population outcomes, appeals and incident evidence.Change workflow, authority, human review, monitoring or the objective itself.
The credit-path audit is a sequence of different claims Eight ascending audit steps move from objective and graph through derivatives, conditioning, estimator, update, behaviour and verified outcome. Failure at each step points to a different repair. Do not ask the optimiser to repair an earlier failed gate 1objective 2graph 3derivative 4conditioning 5estimator 6update 7behaviour 8outcome semantic claimoperational claim
Figure 8. The credit-path audit. Each step warrants a different statement. A derivative check cannot establish objective validity, and a lower loss cannot establish a verified business outcome. Decision instrument authored for this article.

Executable artefact: backpropagation checker

The browser instrument below runs the opening minimal network. It compares a hand-coded reverse pass with central finite differences. The positive case uses the correct derivative of tanh. The negative case injects the plausible but wrong rule 1 − tanh(z) instead of 1 − tanh²(z). The boundary case reverses the target and shows that a mathematically valid gradient can serve an inappropriate objective.

Runnable in this page, synthetic data only

Backpropagation credit checker

Assumptions: one scalar input, one tanh hidden unit, one scalar output and squared loss. Expected result: the correct derivative passes, the injected derivative bug fails, and the reversed-target case passes with a semantic warning.

Forward trace

  1. Run a case to calculate the trace.
Ready.
ParameterReverse modeFinite differenceRelative error
Run a case to populate the comparison.

The same checker is provided as a dependency-free Python file: Run the embedded programme in this page. It exits successfully only when the outcomes are PASS, FAIL, PASS in that order. The negative result is intentional evidence that the test detects the injected derivative defect.

.

Core checker logic and expected output

The full standalone script includes input validation and all three cases. The browser version uses the same equations. A compact version of the central comparison is shown here.

def relative_error(a: float, b: float, floor: float = 1e-12) -> float:
    return abs(a - b) / max(floor, abs(a) + abs(b))

def finite_difference(loss, theta, index, epsilon=1e-6):
    plus = theta.copy()
    minus = theta.copy()
    plus[index] += epsilon
    minus[index] -= epsilon
    return (loss(plus) - loss(minus)) / (2 * epsilon)

# Expected outcomes:
# correct tanh derivative         -> PASS
# injected derivative bug        -> FAIL
# reversed target, valid calculus -> PASS with semantic warning

How to interpret a failed check

A mismatch can come from the derivative rule, tensor broadcasting, in-place mutation, nondeterminism, an unstable finite-difference step or insufficient precision. Reduce the graph until the first disagreeing operator is isolated. Run in double precision. Disable dropout and random augmentation. Compare directional derivatives when checking every coordinate is too expensive. Do not loosen the tolerance until a defect disappears.

A passing check warrants one narrow conclusion: local reverse sensitivities match local changes in the implemented scalar function. Proceed to the next audit gate. Inspect per-layer gradient norms and update-to-weight ratios. Perturb an intermediate feature and verify the predicted downstream change. Replace a proxy label with a counterexample that exposes its semantics. Track whether lower loss improves held-out and operational outcomes.

Test the proposed update, not only the infinitesimal slope

After validating g = ∇L, evaluate several finite steps such as θ − αg with α spanning small orders of magnitude. For a sufficiently small positive step, a smooth loss should usually decrease along the negative gradient. If every practical step increases the loss, the learning rate may be too large, curvature may be severe, or optimiser state may dominate the fresh signal. If only microscopic steps help, the gradient can be correct yet operationally ill-scaled.

This directional test bridges calculus and training. It does not prove generalisation, but it verifies that the proposed update has the local effect the optimiser assumes. Run it on a deterministic minibatch, then repeat across batches to expose noise. Record both absolute loss change and parameter-relative update size, because a numerically small gradient can still be large relative to a tiny parameter.

Separate numerical credit from behavioural credit

A gradient check can pass while the update moves the wrong behaviour. The numerical question is whether the implementation differentiates the declared scalar function. The behavioural question is whether that scalar changes when the decision improves. Test them with two interventions. First, perturb a parameter or intermediate activation along the predicted sensitive direction and confirm the loss change. Second, construct two cases with similar loss but different operational consequences. If the update cannot distinguish them, the missing credit entered before differentiation, in the target, labels or aggregation rule.

This distinction changes debugging order. Do not compensate for a semantically weak loss by tuning momentum or clipping. Preserve per-case contributions long enough to see which examples dominate the batch gradient. Then compare the proposed finite update on held-out counterexamples and on the metric that governs release. A trustworthy credit path needs both receipts: the derivative matches the programme, and the programme rewards the behaviour the system is meant to produce.

Decision rule

When training fails, locate the earliest failed credit gate before changing the optimiser. Objective failure calls for a new target. Graph failure calls for a connectivity repair. Derivative failure calls for a local implementation fix. Conditioning failure calls for architectural or scaling changes. Estimator failure calls for variance or bias control. Only then does optimiser choice become the leading explanation.

Compact glossary

Derivative
The local rate at which one quantity changes with another at a stated point.
Partial derivative
A derivative with respect to one coordinate while the others are held fixed.
Gradient
The vector of partial derivatives of a scalar function with respect to its parameters.
Jacobian
The matrix of local derivatives of a vector-valued function with respect to a vector input.
Vector-Jacobian product
The reverse-mode operation that converts downstream sensitivity into sensitivity for a node's inputs.
Credit path
The graph route, derivative rules and estimator assumptions through which an objective influences an adjustable parameter.
Stop-gradient
An operation that preserves a forward value while setting its derivative with respect to a source to zero.
Surrogate gradient
A deliberately substituted derivative used when the true operation is unhelpful or non-differentiable.
The evidence conversationChart · sequence
sequenceDiagram
  participant Q as Question
  participant M as Mechanism
  participant E as Evidence
  participant D as Decision
  Q->>M: The complaint that reaches every weight
  M->>E: A derivative is a controlled perturbation question
  E-->>M: compare rival explanations
  E->>D: Make the credit path an architectural object
  D-->>Q: revise scope or act
Question, mechanism, evidence and decision exchange the burdens developed in Derivatives, Gradients and Credit Assignment: How Error Reaches a Distant Weight. Reading use: follow the relation, then test it against the surrounding evidence and limits.

Make the credit path an architectural object

The handwriting model's single complaint can now be unpacked. The loss supplies an initial sensitivity. Every operation applies a local reverse rule. Branches contribute and merge. The resulting gradient states how small parameter changes would alter that loss at the current point. Reverse-mode automatic differentiation makes this calculation tractable across a large graph, which is why backpropagation became the computational engine of deep learning.12

Yet the chain rule begins after the decisive semantic choice. Someone selected the target, loss and differentiable boundary. The graph may then block, attenuate, amplify or randomise the signal. A finite optimiser step may leave the local regime. A lower loss may fail to improve the decision. A better decision may still fail to produce the intended outcome because authority, workflow or human response sits outside the model.

The architecture decision changes from “Which optimiser should train this model?” to “What evidence makes this credit channel trustworthy?” Record the objective and its proxy risks. Make stop-gradient, routing and auxiliary-loss edges visible. Test custom derivatives against finite differences. Observe gradient transport by layer and time. State where exact derivatives become stochastic estimators. Verify the effect of an update, then verify the resulting behaviour and outcome independently.

The strongest objection also survives. Exact backpropagation is not the only possible credit mechanism. Feedback alignment, local objectives and stochastic estimators demonstrate alternatives under bounded conditions. Their existence strengthens the audit rather than weakening it. Every learning rule must disclose what signal travels, how it is related to the objective, what noise or approximation it introduces, and which failures it cannot detect.

The durable intuition is simple. A distant error becomes a local update only through a path of local sensitivities. The quality of learning is bounded by the weakest claim on that path: the meaning of the objective, the connectivity of the graph, the correctness of the derivative, the conditioning of the transport, the validity of the estimator and the evidence that the resulting action mattered. Backpropagation can calculate credit. Engineering must decide whether that credit is worth following.

References

  1. Rumelhart, D. E., Hinton, G. E., and Williams, R. J. (1986). Learning representations by back-propagating errors. Nature, 323, 533-536.
  2. Baydin, A. G., Pearlmutter, B. A., Radul, A. A., and Siskind, J. M. (2018). Automatic differentiation in machine learning: a survey. Journal of Machine Learning Research, 18(153), 1-43.
  3. Goodfellow, I., Bengio, Y., and Courville, A. (2016). Deep feedforward networks and Optimization for training deep models. Deep Learning. MIT Press.
  4. Bengio, Y., Simard, P., and Frasconi, P. (1994). Learning long-term dependencies with gradient descent is difficult. IEEE Transactions on Neural Networks, 5(2), 157-166.
  5. Pascanu, R., Mikolov, T., and Bengio, Y. (2013). On the difficulty of training recurrent neural networks. Proceedings of the 30th International Conference on Machine Learning, 1310-1318.
  6. He, K., Zhang, X., Ren, S., and Sun, J. (2016). Deep residual learning for image recognition. CVPR.
  7. Lee, C.-Y., Xie, S., Gallagher, P., Zhang, Z., and Tu, Z. (2015). Deeply-supervised nets. AISTATS, 562-570.
  8. Williams, R. J. (1992). Simple statistical gradient-following algorithms for connectionist reinforcement learning. Machine Learning, 8, 229-256.
  9. Schulman, J., Heess, N., Weber, T., and Abbeel, P. (2015). Gradient estimation using stochastic computation graphs. NeurIPS.
  10. Nøkland, A. (2016). Direct feedback alignment provides learning in deep neural networks. NeurIPS.
  11. Lillicrap, T. P., Cownden, D., Tweed, D. B., and Akerman, C. J. (2016). Random synaptic feedback weights support error backpropagation for deep learning. Nature Communications, 7, 13276.
  12. Baldi, P., Sadowski, P., and Lu, Z. (2018). Learning in the machine: random backpropagation and the deep learning channel. Artificial Intelligence, 260, 1-35.
  13. PyTorch contributors. Autograd mechanics. Official documentation.
  14. PyTorch contributors. torch.autograd.gradcheck. Official documentation.
  15. Kumar, A. and Isola, P. (2026). Pretraining Recurrent Networks without Recurrence. Recent primary research used for the bounded Supervised Memory Training result and its drift, teacher and fine-tuning limitations.