## 2 Principe of Proposed End-to-End Optical Fiber System with the Adaboost Algorithm Receiver Design
### The Design of ANN Transmitter
We achieve this by using a defined clipping activation function for the last layer of output, which combines the following two ReLUs:  
\[\alpha_{clipping}=\alpha_{\text{ReLU}}\Big{(}x+\frac{\pi}{4}\pm\varepsilon \Big{)}-\alpha_{\text{ReLU}}\Big{(}x-\frac{\pi}{4}\pm\varepsilon\Big{)}, \tag{2}\]  
where the term \(\varepsilon\) is defined as the quantization noise caused by DAC. In the simulation, \(\varepsilon\) is equal to \(\sigma_{r}^{2}\). The dimension of this layer determines the oversampling rate of the transmitted signal. Based on the limitation of laboratory instruments, the sampling rate of AWGN transmitted signal must be between 82 Gsa/s and 92 Gsa/s. If we choose the code rate of 12 Gbit/symbol, we need 7 times upsampling to ensure that it is within this range. So, we have considered 7 times upsampling here in order to match the Arbitrary Waveform Generator (AWG) sample rate. Since fiber dispersion will lead to generating memory between several consecutive symbols, it is the pulse stretching of the waveform from the oscilloscope, and the symbol memory before and after is offset by the operation of upsampling. Therefore, the actual data block is n times the output of the neural network, and the benefits will be reflected in the subsequent analysis of the experimental results. The whole system can be regarded as an autoencoder with effective information rate \(R=\log_{2}M\) bits/symbol. Normally, the training of the neural network can be performed as a supervised training through the contact between the input vector \(s_{0}\) and desired output \(s_{k}\). Loss function always becomes the bridge through every training model. Considering its function, we use cross-entropy as our loss function, which can be described as:  
\[L(\theta)=\frac{1}{|S|}\sum_{(s_{0},i,s_{k})\in S}\big{\{}\ell(f_{ANN}(s_{0}, i),s_{k,i})+\ell(1-f_{ANN}(s_{0},i),1-s_{k,i})\big{\}}. \tag{3}\]  
\(s_{0,i}\), \(s_{k,i}\) is the input vector and K-layer ANN output, and \(|s|\) is the mini-batch. In the neural network, by training with only one block, backpropagation can easily fall into a local optimum which is harmful to obtaining the optimal classification function. Therefore, a series of blocks is often used as a mini-batch to be put into the neural network for training, and the number of batches is equal to the number of back propagation \(\ell(x,y)\), meaning the cross-entropy, defined as:  
\[\ell(x_{i},y_{i})=-\sum_{i}x_{i}\log(y_{i}). \tag{4}\]  
\(y_{i}\), \(x_{i}\) define the I elements of the input vector and the I elements of the output vector. When calculating the cross-entropy, using two functions that are opposite to each other is to increase sensitivity to the feature (always regarded 1 as max). Theoretically, if the output and input is 1 and 0, the value of cross-entropy cannot be a desired huge value to be minimized. So, it needs two functions to describe its loss. A common method for optimization of the loss \(L(\theta)\) parameter set \(\theta\) in (4) is to perform the stochastic gradient descent (SGD) algorithm initialized with random gradient \(\theta\)[29]. Today, the latest algorithm with enhanced convergence is the Adam Optimizer for dynamically adjusting learning rate \(\eta\)[13]. The Adam algorithm is used for handling classification problems during the training process. Since the structure of AE needs optical fiber simulation channel, we considered that all methods can be called from the TensorFlow library [30].