## 2 Principe of Proposed End-to-End Optical Fiber System with the Adaboost Algorithm Receiver Design
### The Design of ANN Transmitter  
At the transmitter, as shown in Figure 1, we just make a simple optimization on the transmitter by using ANN based on data structure alone, compared to Reference [17]. First of all, its complexity is lower than parallel structure, making it low-cost and high-speed implementation possible for subsequent online operations. (The parallel structure mentioned here means the parallelism between neural networks.) Secondly, compared to Reference [17], when processing a single module, it reduces redundant parallel processing operations and reduces the calculation space, which is replaced by subsequent upsampling. This method is to reduce the training volume and strengthen relevance in the same block, instead of dealing with the same information through the loose connection of multiple blocks. Each block encodes an independent message \(m\in\{1,\ldots,m\}\) in a group of M messages into a vector of n transmitted samples, thereby forming a symbol waveform. Each message represents the equivalent of \(log_{2}M\) bits. The encoding method is as follows: The message m is encoded into a one-hot vector (the \(m\)-th element is equal to 1, and the other elements are 0) of size \(M\), denoted as \(L_{m}\in R^{M}\). The one-hot vector coding is the standard method for representing classification values in most machine learning algorithms. The advantage is that it has a high degree of compatibility with the subsequent calculation probability of the decision-making layer SoftMax. Considering simplification of the complexity of the transmitter, we incorporate the power normalization into the neural network and use the neural network to process the power normalization while learning. Usually, a fully-connected K-layer FFNN maps an input vector (one-hot vector) \(s_{0}\) to an output vector \(s_{k}=f_{ANN}(s_{0})\) through the K-layer ANN in the transmitter. Every layer can be described as follows:  
\[S_{k}=\alpha_{k}(W_{k}s_{k-1}+b_{k}),\ k=1,\ \ldots,\ K \tag{1}\]  
Figure 1: IM/DD optical fiber communication system with a deep Fully-Connected Neural Network combined with the receiver contains a Fully-Connected Neural Network (**a**) or the Adaboost algorithm (**b**) as the autoencoder. where \(s_{k-1}\in~{}R^{N_{k-1}}\) is the output of the \((k-1)\)th layer, which size is \(N_{k-1}\) according to the \((k-1)\)th layer weight matrix \(W_{k-1}\) and the bias vector of the \((k-1)\)th layer. \(\alpha_{k}\) is its activation function. Only two variables \(W_{k}\) and \(b_{k}\) can be trained. Instead, the activation function \(\alpha_{k}\) is to judge whether or not the data point has the feature to be extracted. A one-hot vector is fed to the first hidden layer of the network, and its weight matrix and deviation vector are \(W_{1}\in~{}R^{M\times 2M}\) and \(b_{1}\in~{}R^{2M}\), respectively. The second hidden layer has parameters \(W_{2}\in~{}R^{2M\times 2M}\) and \(b_{2}\in~{}R^{2M}\). The rectified linear unit (ReLU) activation function is applied to two hidden layers, which acts on each of its input vector elements compared to 0. If its value is lower than 0, it is regarded as having none of the feature value. If the training set is needed to be extracted from the features of negative elements, the leaky ReLU activation function is often added. ReLU can only easily delete inactivated neuron. The final layer prepares the symbol waveform for transmission. Its parameters are \(W_{3}\in~{}R^{2M\times n}\) and \(b_{3}\in~{}R^{n}\), where \(n\) represents the number of waveform samples of the message. Due to the Mach-Zehnder modulator (MZM) in the IM/DD system, the waveform needs to be converted from a unipolar signal to a bipolar signal to ensure that the linear space in the MZM working range is fully utilized. The ANN transmitter must limit its output value to the relatively linear operating region of MZM \([-\pi/4,\pi/4]\), but, in the experiment, it is usually set at a relatively suitable position on \([0,\pi/2]\).