## 3 Results  
### Convolutional Kernels Resulting from Learning and Their Analysis  
As mentioned above, we employ an MLMVN topology of \(k-q-k\) for filtering additive Gaussian noise and multiplicative noise in digital images. Here \(k\) is the number of input and output neurons and \(q\) is the number of neurons in a single hidden layer. Let us consider a neuron \(s\) from a single hidden layer of our MLMVN. Let \(x=(x_{0},x_{1},x_{2},\ldots,x_{k})\) be the input to the neuron (\(x_{0}\) is a pseudo input corresponding to the bias and it always equals 1) and \(w=(w_{0},w_{1},\ldots,w_{k})\) be the neuron's weights. The output of the neuron can be expressed as  
\[O=f\Bigg{(}\sum_{i=0}^{k}x_{i}w_{i}\Bigg{)},\]  
or equivalently as  
\[O=f\Bigg{(}x_{0}w_{0}+\sum_{i=1}^{k}x_{i}w_{i}\Bigg{)}=f(x_{0}w_{0}+R).\]  
In this expression,  
\[R=\sum_{i=1}^{k}x_{i}w_{i}\]  
Since the vector \(x\) results from the vectorization of an image fragment of dimensions \(m\times n\) in the frequency domain, it can also be represented as a matrix \(X_{\mathcal{F}}\), which is in its original shape. Similarly, the weights of the neuron (excluding the bias \(w_{0}\)) can be represented as a matrix \(W_{\mathcal{F}}\). Consequently, the last formula can be rewritten as  
\[R=\sum(X_{\mathcal{F}}\odot W_{\mathcal{F}}),\]  
where the operator \(\odot\) denotes elementwise multiplication. According to the Convolution Theorem, this expression can be further expanded as  
\[R=\sum(X_{\mathcal{F}}\odot W_{\mathcal{F}})=\sum\mathcal{F}(X_{s}\star W_{s}),\]  
where \(X_{s}=\mathcal{F}^{-1}(X_{\mathcal{F}})\) and \(W_{s}=\mathcal{F}^{-1}(W_{\mathcal{F}})\), where \(\star\) denotes the convolution operation. Based on this interpretation, the neurons in the hidden layer of MLMVN can be considered as convolutional processors (with their weights acting as convolutional kernels) and simultaneously as analyzers of the resulting convolutions. On the other hand, the neurons in the output layer act as ultimate processing units that integrate the outputs of neurons from the preceding layer, producing the result of filtering in the frequency domain. Let us discover in detail how a neural network processes an image fragment. Each neuron in a single hidden layer actually performs filtering by utilization of the frequency domain convolution with a kernel \(K\). Let \(I_{s}\) be an image fragment in the spatial domain to be filtered, and \(I_{\mathcal{F}}\) is its representation in the frequency domain, that is, the Fourier transform of \(I_{s}\). Let \(O_{\mathcal{F}}\) be the output of MLMVN for input \(I_{\mathcal{F}}\). The output \(O_{\mathcal{F}}\) is nothing but an approximation of the frequency domain representation of the processed image fragment \(I_{s}\). Its spatial domain representation should be obtained by applying the inverse Fourier transform as follows:  
\[O_{s}=\mathcal{F}^{-1}(O_{\mathcal{F}}).\]  
If we define \(K_{\mathcal{F}}=O_{\mathcal{F}}\odot I_{\mathcal{F}}\) and \(K_{s}=\mathcal{F}^{-1}(K_{\mathcal{F}})\), we can express the relationship as follows:  
\[O_{\mathcal{F}}=I_{\mathcal{F}}\odot K_{\mathcal{F}}=\mathcal{F}(I_{s})\odot \mathcal{F}(K_{s}).\]  
According to the Convolution Theorem,  
\[\mathcal{F}(I_{s}\star K_{s})=\mathcal{F}(I_{s})\odot\mathcal{F}(K_{s}).\]  
Applying the inverse Fourier transform to both sides of the last equation, we obtain  
\[I_{s}\star K_{s}=O_{s},\]  
where \(K_{s}\) is the convolutional kernel in the spatial domain. To discover what kind of filters resulted from the learning process, we need to discover the convolutional kernels generated from this process. Let us consider the power spectra \(|K_{\mathcal{F}}|\) of some randomly selected convolutional kernels in the frequency domain resulting from the learning process as the weights of the respective neurons. These power spectra are just absolute values of the respective weights, which should be reshaped into matrices.