MicDZ's Blog

Echoes and Gradients: The Hidden Unity Between Radar Imaging and Deep Learning

Echoes and Gradients: The Hidden Unity Between Radar Imaging and Deep Learning

Dec. 19, 2025


At first glance, a passive radar system and a Deep Neural Network (DNN) seem to inhabit different worlds. One deals with wave physics, antennas, and scattering coefficients; the other deals with tensors, activation functions, and gradient descent.

However, if you strip away the domain-specific jargon, you find that the algorithm used to form an image from radar echoes (Back-Projection) and the algorithm used to train a neural network (Back-Propagation) are, at their core, the same mathematical operation.

They are both applications of the Adjoint Operator to solve an Inverse (Reconstruction) Problem.

In this post, we will explore this duality, using the specific example of a passive imaging system to illuminate the inner workings of deep learning.

1.  The Forward Pass: Scattering vs. Inference

To understand the backward process, we must first look at the forward process—how data generates an output.

1.1.  The Imaging System

Imagine a passive radar system with multiple receivers (Rx) to detect active targets.

  1. Transmission: The transmission process follows the physics of electromagnetic wave propagation, which can be modeled by the Green’s function H(r)\mathcal{H}(\mathbf r). In this article, we use the 2D free-space Green’s function:

    H(r)=1jπrexp(j2πr/λ)\mathcal{H}(\mathbf r) = \dfrac{1}{\sqrt{j\pi |\mathbf r|}}\exp(j2\pi|\mathbf r|/\lambda)

    where λ\lambda is the wavelength, and r|\mathbf r| is the distance from the transmitter to the observation point.
  2. Target: The target emits an electromagnetic wave, which propagates through space, denoted as the s(r)s(\mathbf r).
  3. Recieption: The receivers collect the waves from the target. The received signal g(r)g(\mathbf{r}) is a convolution of the transmitted wave and the Green’s function:

    g(r)=s(r)H(r)g(\mathbf r) = s(\mathbf r) * \mathcal{H}(\mathbf r)

    where * denotes convolution over space r\mathbf r.

Following is an interactive demo of Green’s function and the conjugate Green’s function.

1.2.  The Neural Network

Now, look at a single connection in a neural network between an input neuron and an output neuron.

  1. Input: An activation value passes from the previous layer.
  2. Interaction: The value is multiplied by a Weight θ\theta.
  3. Output: The result contributes to the next layer.

Mathematically, the output y^\hat{y} is the input xx modulated by the model weights θ\theta:

y^=πθ(x)\hat{y} = \pi_\theta(x)

The loss function L(y^,y)\mathcal{L}(\hat{y}, y) measures the difference between the predicted output y^\hat{y} and the true label yy. Our goal is to minimize this loss by adjusting the weights θ\theta.

minθL(πθ(x),y)\min_{\theta} \sum \mathcal{L}(\pi_\theta(x), y)

2.  The Inverse Problem: “Who is Responsible?”

In both fields, we face an inverse problem:

2.1.  Imaging: Time Reversal

How do we find the target? We take the signal received at the Rx and perform Time Reversal. We mathematically “play the tape backward.”
We project the received signal back into space, applying a negative time delay corresponding to the distance from Rx to the target, and then from the target to Tx.

2.1.1.  Back-Proprogation in Imaging

Now, the imaging problem: we have the received data g(r)g(\mathbf r), and we want to find the target s(r)s(\mathbf r).How do we do it? We mathematically “propagate” the received waves back into space to see where they intersect. This is often called Matched Filtering or Back-projection. Mathematically, we convolve the received signal with the complex conjugate of the Green’s function, h(r)h^*(\mathbf r):

s^(r)=g(r)H(r)=[s(r)H(r)]H(r)=s(r)[H(r)H(r)]=s(r)δ(r)=s(r)\begin{aligned} \hat s(\mathbf r) &= g(\mathbf r) * \mathcal{H}^*(\mathbf r) \\ &= \left[ s(\mathbf r) * \mathcal{H}(\mathbf r) \right] * \mathcal{H}^*(\mathbf r) \\ &= s(\mathbf r) * \left[ \mathcal{H}(\mathbf r) * \mathcal{H}^*(\mathbf r) \right] \\ &= s(\mathbf r) * \delta(\mathbf r) \\ &= s(\mathbf r) \end{aligned}

The physical meaning of H(r)\mathcal{H}^*(\mathbf r) is that we are reversing the wave propagation process. By convolving with the conjugate Green’s function, we assume the sensor behaves like a transmitter in reverse, sending a signal back through the same medium.

It is notable that this is an ideal model; in practice we can not perfectly capture the whole received signal in space, and noise will be present. But the core idea remains: by back-projecting the received signals using the conjugate of the forward operator, we can reconstruct the target location.

2.2.  Deep Learning: Gradient Descent

How do we find the optimal weight? We can use Gradient Descent. However, calculating the gradient of the loss function with respect to each weight directly is computationally expensive. Instead, we use the Back-Propagation algorithm.

Consider a simple neural network with NN layers:

  • Input tensor: α(0)=x\alpha^{(0)}=x.
  • Parameters at layer ll: Parameters matrix W(l)W^{(l)} and bias vector b(l)b^{(l)}.
  • Pre-activation at layer ll: z(l)=W(l)α(l1)+b(l)z^{(l)} = W^{(l)} \alpha^{(l-1)} + b^{(l)}.
  • Nonlinear activation at layer ll: α(l)=σ(z(l))\alpha^{(l)} = \sigma(z^{(l)}).
  • Output tensor: y^=α(N)=πθ(x)\hat{y} = \alpha^{(N)} = \pi_\theta(x).

Then, the loss function is Lθ(y^,y)=L(α(N),y)L_\theta(\hat{y}, y) = \mathcal{L}(\alpha^{(N)}, y). And we want to compute the gradient of the loss θL\nabla_\theta \mathcal{L} which contains LW(l)\frac{\partial \mathcal{L}}{\partial W^{(l)}} and Lb(l)\frac{\partial \mathcal{L}}{\partial b^{(l)}} for all layers ll.

BP introduces intermediate variables called Error Signals δ(l)\delta^{(l)}, defined as:

δ(l)Lz(l)\delta^{(l)} \equiv\dfrac{\partial \mathcal{L}}{\partial z^{(l)}}

  • Error signal at the output layer NN:
    Applying the chain rule, we can express the error signal at layer ll in terms of the error signal at layer l+1l+1:

    Lzi(N)=jLaj(N)aj(N)zi(N)\frac{\partial \mathcal{L}}{\partial z_i^{(N)}} = \sum_j \frac{\partial \mathcal{L}}{\partial a_j^{(N)}} \frac{\partial a_j^{(N)}}{\partial z_i^{(N)}}

    Because the activation function σ\sigma is applied element-wise, we have:

    aj(N)zi(N)=σ(zi(N))δij\frac{\partial a_j^{(N)}}{\partial z_i^{(N)}} = \sigma'(z_i^{(N)}) \delta_{ij}

    where δij=1\delta_{ij} = 1 if i=ji=j and 00 otherwise. Therefore, we can simplify the expression for the error signal:

    δi(N)=Lzi(N)=Lai(N)σ(zi(N))\delta_i^{(N)} = \frac{\partial \mathcal{L}}{\partial z_i^{(N)}} = \frac{\partial \mathcal{L}}{\partial a_i^{(N)}} \sigma'(z_i^{(N)})

    To simplify notation, we can express this in vector form:

    δ(N)=La(N)σ(z(N))\delta^{(N)} = \frac{\partial \mathcal{L}}{\partial a^{(N)}} \odot \sigma'(z^{(N)})

    where \odot denotes the element-wise (Hadamard) product.

  • Error signal at hidden layers l<Nl < N:
    Again, applying the chain rule, we have:

    Lzi(l)=kLzk(l+1)zk(l+1)zi(l)\frac{\partial \mathcal{L}}{\partial z_i^{(l)}} = \sum_{k} \frac{\partial \mathcal{L}}{\partial z_k^{(l+1)}} \frac{\partial z_k^{(l+1)}}{\partial z_i^{(l)}}

    According to the definition of δk(l+1)=Lzk(l+1)\delta_k^{(l+1)} = \frac{\partial \mathcal{L}}{\partial z_k^{(l+1)}}, we can rewrite the above equation as:

    Lzi(l)=kδk(l+1)zk(l+1)zi(l)\frac{\partial \mathcal{L}}{\partial z_i^{(l)}} = \sum_{k} \delta_k^{(l+1)} \frac{\partial z_k^{(l+1)}}{\partial z_i^{(l)}}

    zk(l+1)zi(l)\frac{\partial z_k^{(l+1)}}{\partial z_i^{(l)}} can be computed using the Jacobian matrix:

    [z(l+1)z(l)]ki=zk(l+1)zi(l)\left[ \frac{\partial z^{(l+1)}}{\partial z^{(l)}} \right]_{ki} = \frac{\partial z_k^{(l+1)}}{\partial z_i^{(l)}}

    Thus, we can express the error signal at layer ll as:

    δ(l)=(z(l+1)z(l))Tδ(l+1)\delta^{(l)} = \left( \frac{\partial z^{(l+1)}}{\partial z^{(l)}} \right)^T \delta^{(l+1)}

    Since z(l+1)=W(l+1)α(l)+b(l+1)z^{(l+1)} = W^{(l+1)} \alpha^{(l)} + b^{(l+1)} and α(l)=σ(z(l))\alpha^{(l)} = \sigma(z^{(l)}), we have:

    δ(l)=(W(l+1))Tδ(l+1)σ(z(l))\delta^{(l)} = \left( W^{(l+1)} \right)^T \delta^{(l+1)} \odot \sigma'(z^{(l)})

Together with (15) and (10), we can recursively compute the error signals from the output layer back to the input layer. This is the essence of the Back-Propagation algorithm.

After computing the error signals for all layers, we can compute the gradients with respect to the weights and biases:

Lbi(l)=Lzi(l)zi(l)bi(l)\frac{\partial \mathcal{L}}{\partial b_i^{(l)}} = \frac{\partial \mathcal{L}}{\partial z_i^{(l)}} \frac{\partial z_i^{(l)}}{\partial b_i^{(l)}}

because zi(l)=Wi(l)α(l1)+bi(l)z_i^{(l)}= W_i^{(l)} \alpha^{(l-1)} + b_i^{(l)}, we have zi(l)bi(l)=1\frac{\partial z_i^{(l)}}{\partial b_i^{(l)}} = 1. Therefore:

Lbi(l)=δi(l)\frac{\partial \mathcal{L}}{\partial b_i^{(l)}} = \delta_i^{(l)}

Vectorizing this, we get:

Lb(l)=δ(l)\frac{\partial \mathcal{L}}{\partial b^{(l)}} = \delta^{(l)}

Similarly, for the weights:

LWij(l)=Lzi(l)zi(l)Wij(l)\frac{\partial \mathcal{L}}{\partial W_{ij}^{(l)}} = \frac{\partial \mathcal{L}}{\partial z_i^{(l)}} \frac{\partial z_i^{(l)}}{\partial W_{ij}^{(l)}}

Since zi(l)=Wi(l)α(l1)+bi(l)z_i^{(l)} = W_i^{(l)} \alpha^{(l-1)} + b_i^{(l)}, we have zi(l)Wij(l)=αj(l1)\frac{\partial z_i^{(l)}}{\partial W_{ij}^{(l)}} = \alpha_j^{(l-1)}. Therefore:

LWij(l)=δi(l)αj(l1)\frac{\partial \mathcal{L}}{\partial W_{ij}^{(l)}} = \delta_i^{(l)} \alpha_j^{(l-1)}

In matrix form, this becomes:

LW(l)=δ(l)(α(l1))T\frac{\partial \mathcal{L}}{\partial W^{(l)}} = \delta^{(l)} \left( \alpha^{(l-1)} \right)^T

Following is an interactive demo of Back-Propagation in Deep Learning. The task is to fit a simple 2D function:

f(x1,x2)={1if x1+x2>10otherwisef(x_1, x_2) = \begin{cases} 1 & \text{if } x_1 + x_2 > 1 \\ 0 & \text{otherwise} \end{cases}

3.  The Synthesis: Adjoint Symmetry

The striking similarity between the equations of wave imaging and neural network training is not a coincidence. Both systems are governed by the same mathematical principle: the duality between a linear operator and its adjoint.

To see this clearly, let us unify our notation. In both cases, we have a Forward Operator that maps an internal state (the target or the weights ) to an observation (the signal or the prediction ).

3.1.  The Unified Forward Map

In a linearized or local sense, both processes can be viewed as an operator acting on a hidden source to produce a measurable result:

Feature Passive Radar (Imaging) Deep Learning (Training)
Hidden Source Target Reflectivity s(r)s(\mathbf{r}) Parameter Update Δθ\Delta \theta
Forward Operator Green’s Function Convolution H\mathcal{H} Jacobian Matrix J=πθJ = \frac{\partial \pi}{\partial \theta}
Observation Received Echoes g(r)g(\mathbf{r}) Prediction Error Δy=(y^y)\Delta y = (\hat{y} - y)

Mathematically, we represent the forward pass as:

yobs=Axy_{obs} = A x

where AA is our forward transformation.

3.2.  The Inverse Problem and the Adjoint

The “Inverse Problem” asks: given the observation yobsy_{obs}, what was the source xx?

Solving this perfectly usually requires computing the inverse A1A^{-1}, which is often computationally impossible or “ill-posed” (highly sensitive to noise). Instead, both fields use the Adjoint Operator AA^\dagger (the complex conjugate transpose in matrix terms).

3.2.1.  In Radar: Back-Projection

The reconstructed image s^\hat{s} is formed by applying the adjoint of the propagation operator:

s^=Hg\hat{s} = \mathcal{H}^\dagger g

As derived earlier, H\mathcal{H}^\dagger corresponds to convolution with the conjugate Green’s function h(r)h^*(\mathbf{r}). Physically, this is Time Reversal.

3.2.2.  In Deep Learning: Back-Propagation

The gradient used to update weights is found by applying the adjoint of the network’s local sensitivity:

θL=(y^θ)Tδ\nabla_\theta \mathcal{L} = \left( \frac{\partial \hat{y}}{\partial \theta} \right)^T \delta

Here, the transpose (W(l))T(W^{(l)})^T is the adjoint of the forward weight matrix W(l)W^{(l)}. Just as the radar signal is sent back through the channel, the error signal is “sent back” through the weights.

3.3.  Why the Adjoint Works

The effectiveness of both algorithms stems from the Adjoint Identity:

Ax,y=x,Ay\langle Ax, y \rangle = \langle x, A^\dagger y \rangle

In imaging, this means the energy we collect at the receivers (signal,echo\langle \text{signal}, \text{echo} \rangle) is mathematically equivalent to the energy at the target location when we project our “knowledge” back into the scene.

In deep learning, this identity ensures that the most efficient way to reduce the loss in the high-dimensional output space is to “project” that error back onto the weights.

4.  Conclusion: One Algorithm, Two Realities

The “Back” in both Back-Projection and Back-Propagation refers to the same fundamental movement: reversing the flow of information.

  • In Radar, we reverse Time to locate a target in physical space.
  • In Deep Learning, we reverse Causality to locate the source of an error in parameter space.

Whether we are “seeing” a stealth aircraft through passive echoes or “learning” to recognize a cat in a photo, we are performing the same mathematical ritual: calculating the forward transformation, measuring the discrepancy, and using the Adjoint Operator to project that discrepancy back to its origin.

Deep learning, in this light, is not just a branch of computer science; it is a form of Computational Imaging where the “scene” being reconstructed is the internal logic of the model itself.

, — Dec. 19, 2025