## 3 Proposed Methods
### Multilayer Perceptron (MLP)  
The MLP is a popular choice for signal processing in a magnetic recording system because it has enough power to learn the characteristics of noise and interference within a reasonable amount of computational complexity. MLP is a type of feedforward neural network, where all nodes are fully connected, and a nonlinear activation function is used in every node. Figure 10 illustrates the proposed MLP architecture. The idea is to employ one single network to process all LLR mutual data sequences obtained from the 1D SOVA detectors. As depicted in Figure 10, the MLP takes the LLRs \([\lambda_{k,-1},\lambda_{k0},\lambda_{k1}]^{\mathbf{T}}\) obtained from the 1D SOVA detectors as inputs to improve prediction robustness [24] and generates the corresponding user bit sequence as an output. This MLP consists of neurons arranged in stacked, fully connected layers. Each neuron calculates its output and passes the data to the next layer. Additionally, this MLP has seven layers, i.e., one input layer, five fully connected hidden layers, and one output layer. Figure 10: Structure of MLP-based soft-information flipper. Figure 9: Example of BSD technique operation (**a**) LLRs obtained from SOVA detector (**b**) improved LLRs obtained from BSD technique and (**c**) the estimated user bits that produced from threshold detector. We used a sliding window approach on the LLR sequences obtained from the 1D SOVA detectors. Specifically, the data were processed in blocks, and the block window slid over time to observe successive data blocks, hence the term \"sliding window\". By carefully selecting the block size and sliding step size, the MLP can be used effectively to provide good prediction. Before feeding a sequence into the MLP, the sequences must be converted into vectors to satisfy the input layer condition, which processes data in vector form only. Let \(\Lambda=[\lambda_{k,-1},\lambda_{k,0},\lambda_{k,1}]\) be the input vector of the input layer, which was fed to five fully connected hidden layers with 100 neurons in each layer. For each neuron, a linear combination of all input entries was computed using a weight vector and a bias value specific to that neuron. Specifically, given an input vector of the \(i\)-th hidden layer, \(\lambda_{i}\), the output vector of the \(i\)-th hidden layer, \(p_{i}\), obtained from the linear combination can be written as  
\[p_{i}\text{=}f(w_{i}\lambda_{i}\text{+}\mathbf{b}_{i}), \tag{8}\]  
where \(f(\odot)\) is the activation function, \(w_{i}\) is an \(n_{z}\times 1\) weight vector of the \(i\)-th hidden layer, \(\mathbf{b}_{i}\) is an \(n_{z}\times 1\) bias vector of the \(i\)-th hidden layer, and \(n_{z}\) is the number of neurons in each the hidden layer. Then, a nonlinear activation function was applied to the vector, \(\boldsymbol{p}_{i^{\prime}}\) yielding the final output vector of the fully connected layer. In this paper, we used the rectified linear function (ReLU) as the nonlinear activation function of the all-hidden layers since it provides computational efficiency and can alleviate the vanishing gradient problem, where the ReLU output can be written as  
\[\boldsymbol{p}_{i}\text{=}\text{max}(0,w_{i}\lambda_{i}\text{+}\mathbf{b}_{i}). \tag{9}\]  
For the output layer, this network solved the binary classification problem by assigning each input vector sample a class label of either \"\(-1\)\" or \"\(+1\)\", corresponding to the user bit. The softmax function was used for this binary classification task, whose output was given by  
\[\beta_{n}^{m}\text{=}\frac{e^{p_{n}}}{\sum_{j=1}^{K}e^{p_{j}}},\ n=1,\ldots,K \text{ and }m=1,2 \tag{10}\]  
where \(\mathbf{p}\) and \(\mathbf{\beta}\) are the input and the output vectors of the softmax function, respectively, \(K\) is the length of the input and output vectors, and \(m\) is the number of outputs. Because our MLP solved a binary classification problem, the network output was the probability of its respective class label.