Trying to implement a loss function read from a journal-article in python Computer science undergrad here. I am trying to understand Eqn 12 from this paper so that I can implement it in python code. In this paper, the NN model takes a blurred image as input and outputs a sharp (deblurred) image and the kernel that can produce the same
blurred image after multiplying with the sharp image.
Here -

*

*$\widetilde{K_t}$ = kernel predicted matrix

*$K_t^{train}$ = ground truth kernel (for training) matrix

*$\widetilde{X_t}$ = predicted sharp image matrix

*$X_t^{train}$ = actual sharp image matrix

The equation here is as follows:

This equation takes matrice $\widetilde{K_t}$, $K_t^{train}$, $\widetilde{X_t}$,$X_t^{train}$ and a list of weights as input and tries to find the weighted mean squared error loss $\widetilde{K_t}$ and $K_t^{train}$ and between $\widetilde{X_t}$ and $X_t^{train}$. This is what I can understand, probably I am wrong.
But the part that I don't understand is where $K_t$ and $X_t$ are taking inputs like this
$\widetilde{K_t}(\{w^l, b^l, ...\})$ and $\widetilde{X_t}(\{w^l, b^l, ...\}, \eta)$. Here $w^l$, $b^l$, etc are weights with which $\widetilde{K_t}$ and $\widetilde{X_t}$ are to be multiplied with (I think).
Also, I don't understand where $K_t^{train}$ and $X_t^{train}$ are being passed through a translational operator, which is described as

Tτ {·} is the translation operator in 2D
that performs a shift by $\ τ ∈ R^2$

Does this mean, $X_t^{train} = X_t^{train} + (X_t^{train})^{2}$ ?
Also what is the difference between $\tau_{-\tau}$ and the $\tau_{\tau}$ operator used in equation 12.
Let me rephrase all my questions regarding the equation:

*

*If $\widetilde{X_t}$ and $\widetilde{K_t}$ are matrices, how can they take input? Moreover, what do the curly braces ($\{ \}$) mean? For example here : $\widetilde{X_t}(\{w^l, b^l, ...\}, \eta)$?

*What do the operators  $\tau_{-\tau}\{.\}$ and the $\tau_{\tau}\{.\}$ do to any matrix and what is their difference?

*I want to be able to understand the equation enough so that I can implement this in python
Thank you so much for your time.
 A: The idea should be that your network has mappings:
$$
\begin{align}
Y^{train}_t,\{w^l,b^l,\zeta^l,\beta^l\}_l&\longrightarrow \widetilde{K}_t\\
Y^{train}_t,\{w^l,b^l,\zeta^l,\beta^l\}_l,\eta&\longrightarrow \widetilde{X}_t
\end{align}
$$
so in this respect, $Y^{train}_t$ and the learned parameters are both necessary inputs to produce the predicted output. In the equation it is made explicit that both outputs depend on a certain subset of training params whereas the data input $Y^{train}_t$ is suppressed. Hence:
$$
\widetilde{K}_t(\{w^l,b^l,\zeta^l,\beta^l\}_l)
$$
simply means the predicted kernel matrix given the current relevant parameters that are being learned for input image $t$.

WRT $\tau_{\tau_t}$ I really dislike the notation, since it is all T-like letters. In the paper they state that the so-called blind deconvolution may give rise to a shift of the image and hence one needs to shift it back or correct for this by some 2D vector $\tau_t$ for image $t$. Similarly the kernels must be applied to the shifted images and hence must be shifted in the opposite direction.
So to sum up:

*

*The kernel must be applied to the shifted deconvoluted image

*After having applied the kernel, the result must then be shifted back to fit the target output area

