The details of the symbol-based DPD optimization procedure of \(\theta ^{\text{DPD}}\)  are given in Algorithm REF . First, each batch of \(N\)  messages, \(m\) , is generated and transformed to a sequence of symbols \(u^{\text{sym}}\) , then upsampled and pulse-shaped to \(u\)  with an upsampling rate \(R\) . After the DPD model \(f_{\theta ^{\text{DPD}}}(\cdot )\) , the Gaussian policy is applied
by adding a perturbation \(w\)  to generate exploration samples \(\tilde{x}\)  as in (REF ). These samples are
sent through the PA and channel. The output of the channel, \(y\) , is transformed to \(\hat{u}^{\text{sym}}\)  by the matched filter, downsampled with a downsampling rate \(R\) , and eventually decoded to \(\hat{m}\) . Then, the cross-entropy per-example losses, \(l_n^{\text{CE}}\) , are calculated, which are assumed to be known at the transmitter via a reliable feedback channel [1]}, [2]}, [3]}. Finally, \(\theta ^{\text{DPD}}\)  is updated by an sgd-based algorithm as in (REF ), where \(\nabla _{\theta ^{\text{DPD}}} \mathcal {L}(\theta ^{\text{DPD}})\)  is computed using (REF ). The whole procedure is iterated for a number of iterations \(N_{\text{B}}\) , and the policy \(\pi (\cdot )\)  is removed.
<TABLE><FIGURE><FIGURE>