## 3 Robust Algorithm Based on CNN
### Configuration of CNN
This prevents neurons from co-adapting too much and obtains a better generalization ability [39]. In order to output the corresponding expansion factor adaptively according to the fault value, CNN must be trained by a large number of fault data. The training data of CNN are composed of the  
Figure 3: The system structure during the training stage of CNN. mean values and standard deviations of residuals. The range of residual value is related to the severity of fault, and the standard deviation of residual is related to the carrier to noise density ratio (C/No) of signal. When fault values vary from 0 to 100 m, the range of pseudo-range residuals is the same as that of fault values. Assuming that the C/No varies from 30 to 50 dB-Hz, the standard deviation ranges from 0 to 12. The range of pseudo-range residuals is divided into ten regions, and 10,000 random numbers are generated in each region denoted by \(p_{i}\) (where \(i\) ranges from 0 to 9). Meanwhile, the range of standard deviation is divided into four regions, and 10,000 random numbers are also generated in each region denoted by \(q_{j}\) (where \(j\) ranges from 0 to 3). By combining \(p_{i}\) and \(q_{j}\), forty sets of data which correspond to forty different combinations are obtained. Each dataset includes 1000 arrays of two rows and ten columns. Before being used, these forty datasets are normalized. In addition, they are labeled by forty tags, which are used as the expected output of CNN. In practical application, due to the interference of noise and abnormalities, there will be gross errors in residuals. When processing such data, CNN outputs the probabilities that the data belong to each combination, and finally chooses the combination corresponding to the maximum probability as the result of data recognition. It indicates that this recognition method which can filter out gross errors is robust. CNN is designed to have seven layers, including two convolutional layers and two pooling layers. Average pooling is applied in two pooling layers. Sigmoid function is used as the activation function for both convolutional layer and full-connected layer. Since the size of CNN input data is \(2\times 10\), the size of convolutional kernel and the subsampling size of pooling layer are specially designed to be compatible with this type of data. The detailed configuration information of CNN structure is shown in Table 1. In addition, 3@\(2\times 5\) denotes that the convolutional layer C1 contains three convolutional kernels with size of \(2\times 5\), while 3@\(2\times 6\) denotes three feature planes with size of \(2\times 6\), which are results of convolution between input layer and convolutional kernels. In the pooling layers P1 and P2, only the column elements are sampled with the step length of 2. NA is the abbreviation for \"not applicable\". The batch size is 50, and the number of epochs is 100. After completing the training, CNN needs to be tested to check whether its output is correct. If the error ratio is less than the required error accuracy 0.05, it indicates that the training requirement is met; otherwise, further training is needed. Once the training goal is reached, the structure and coefficients of CNN are fixed, and then it can be put into use. The structure of deep integration assisted by CNN is shown in Figure 4. \begin{table}
\begin{tabular}{c c c} \hline \hline
**Layer Name** & **Kernel/Subsampling Size** & **Output Size** \\ \hline Input layer & NA & \(2\times 10\) \\ Convolutional layer C1 & \(3@2\times 5\) & \(3@2\times 6\) \\ Pooling layer P1 & \(1\times 2\) & \(3@2\times 3\) \\ Convolutional layer C2 & \(6@2\times 2\) & \(6@2\times 2\) \\ Pooling layer P2 & \(1\times 2\) & \(6@2\times 1\) \\ Full-connected layer & NA & \(12\times 1\) \\ Output layer & NA & \(40\times 1\) \\ \hline \hline \end{tabular}
\end{table} 
Table 1: The configuration information of convolutional neural network (CNN). Figure 5 shows the complete flowchart of the proposed method.