## 4 Results and Discussion
### Results  
The Pascal VOC Dataset [46] with over 17,000 training samples was used to train the algorithms. Each training of the algorithm consisted of 25 or 30 epochs. The algorithms were developed using Python and the PyTorch deep learning framework. During training, two Nvidia GeForce RTX 3090 graphics processors were used to speed up the learning process. The following table (Table 1) shows all training variants that were started and successfully completed. In the case of variants with one bit per encoding of each symbol, the values of weighting factors were universal and correct for all values of \(N\). For larger values of the parameter \(n\), it was necessary to individually select the value of \(\lambda_{b}\) for each case and to reduce the value of \(\lambda_{d}\) to 0.6. The values were selected in an empirical way: training was carried out with the modification of the coefficients until optimal results were obtained. The changes resulted from the need to place more emphasis on optimizing the decoder start function in order to obtain the required algorithm robustness. Changes in the parameter values were not intended to affect the results of individual algorithms. The modification of the loss function coefficients was necessary due to the impossibility of obtaining convergent training with incorrectly selected parameters. Each variant of the number of bits is a separate algorithm that requires the individual selection of parameters. The number of epochs was initially set at 25, and during the research, it was decided to increase it to 30 due to the need to check whether there is any deterioration of transparency during training, which appeared with the increase in the epoch number with poorly selected training parameters (coefficients for the loss function). The maximum number of bits that could be encoded was 16,384 bits; in the case of higher values, it was impossible to obtain the transparency of the algorithm regardless of the choice of weighting factors (Figure 15). When increasing the value of the parameter \(n\), it was necessary to increase the minimum value of the number of bits \(N\) (increasing the entropy of the watermark), because it was impossible to obtain the required resistance of the watermark regardless of the choice of weighting factors (Figure 16). The table below presents the values of the loss function and the BER metrics obtained during the training of individual variants (Table 2). \begin{table}
\begin{tabular}{c c c c c c c c} \hline \hline \begin{tabular}{c} **Number of Binary** \\ **Signature Bits N** \\ \end{tabular} & \begin{tabular}{c} **Number of Bits** \\ **to Encode One** \\ **Symbol \(n\)** \\ \end{tabular} & \begin{tabular}{c} **Value of** \\ **Weighting** \\ **Factor \(\lambda_{b}\)** \\ \end{tabular} & \
\begin{tabular}{c} **Value of** \\ **Weighting** \\ **Factor \(\lambda_{d}\)** \\ \end{tabular} &
\begin{tabular}{c} **Number of** \\ **Epochs** \\ \end{tabular} \\ \hline  
384 & 4 & 0.8 & 0.6 & 30 \\ \hline \hline \end{tabular}  
* Early termination of the training due to a failure or a very long calculation time while obtaining results that meet the assumed criteria.  
\end{table} 
Table 1: Variants used during model training. \begin{table} \begin{tabular}{c} **Loss** \\ \end{tabular}  \\ \hline
4\_1 & 0.023 & 0.095 & 0.007 & 0.027 & 0.032 & 0.011 & 0.130 & 0.008 \\
16\_1 & 0.015 & 0.065 & 0.001 & 0.000 & 0.001 & 0.011 & 0.076 & 0.002 \\
64\_1 & 0.028 & 0.071 & 0.001 & \(-\)0.002 & \(-\)0.001 & 0.012 & 0.080 & 0.001 \\
256\_1 & 0.021 & 0.073 & 0.001 & 0.003 & 0.004 & 0.011 & 0.087 & 0.000 \\
1024\_1 & 0.011 & 0.078 & 0.001 & 0.007 & 0.008 & 0 Figure 16: Failure to embed 64 bits when encoding one symbol using 4 bits. Figure 15: Failure to embed 32,768 bits. The following images show the cover, watermark, watermarked image, decoded watermark, visualization of decoded signature, and the picture of the difference between cover and watermarked images (Residual).