# Analysis of Airglow Image Classification Based on Feature Map Visualization
## 2 Structure of the Convolutional Neuron Network  
As a kind of feedforward neural network with convolutional computations and neural structures, the CNN is one of the most prominent algorithms of machine learning for image recognition, and performs well with sufficient training data [38]. According to the complexity of airglow image classification, our CNN was designed as a deep network constructed with ten layers (shown in Figure 1): the input layer, the first convolutional layer, the first max-pooling layer, the first dropout layer, the second convolutional layer, the second max-pooling layer, the second dropout layer, the flatten layer, the third dropout layer, and the full connection layer. Among the ten layers, the convolution layer, the max-pooling layer, the dropout layer, and the fully connected layer have adjustable network parameters for training. The first layer is the input layer in which every input image is adjusted into a matrix of size \(128\times 128\times 1\). Since the input images shot by ASAI are grey-scale images, the matrices in the input layer are all of depth 1 instead of 3 for RGB colored images. The second layer is the convolutional layer in which the input matrices are scanned and convoluted by a kernel with a 3 \(\times\) 3 matrix and then added to a bias. The nine elements in the 3 \(\times\) 3 matrix are the weights of the kernel. The weights and bias are trainable parameters, which will be modified after each turn of the training process. After the input image is padded with zero elements into a matrix with size 130 \(\times\) 130 \(\times\) 1, the kernel will scan the 130 \(\times\) 130 \(\times\) 1 matrix at a pace of one pixel, covering a 3 \(\times\) 3 receptive field each step and generating a new element on the feature map through convolution and the rectified linear unit (_ReLU_). The new element created by the \(l\)-th kernel can be written as:  
\[f_{l}=ReLU(b_{l}+c), \tag{1}\]  
where \(b_{l}\) is the bias of the \(l\)-th kernel and \(c\) is the result of convolution. _ReLU_ is widely used in the construction of deep neural networks as the activation function of the neural unit to reduce the error rate of training [25], taking effect as:  
\[ReLU(x)=max(0,x). \tag{2}\]  
A total of 128 \(\times\) 128 steps are required for a kernel to traverse all local receptive fields on the matrix. There are 16 kernels applied to every input image in the convolutional layer, resulting in a 128 \(\times\) 128 \(\times\) 16 output matrix. The purpose of model training is to find appropriate learning parameters such that the value of the loss function is close to its minimum. In a convolutional neural network architecture, all neurons in a layer share the same weights and biases, which greatly reduce the number of weight parameters. With convolution kernels, the weight parameters are reduced from 128 \(\times\) 128 to 3 \(\times\) 3 in the first convolutional layer. In addition to effectively reducing computational costs, scanning by convolution kernels can focus on the features of local image regions while ignoring their relative positions in the image. Since the position of typical features, such as the moon and bright stars, in the airglow images rotate with time, the extraction by convolution is necessary to avoid the overfitting caused by putting too much attention on the positions of typical features. The third layer is the max-pooling layer. During the max-pooling, a pooling matrix of size 2 \(\times\) 2 traverses the feature map with a step length of 2, outputting the maximum element in every 2 \(\times\) 2 area on the feature map covered by the pooling matrix. Thereby, after max-pooling, the width and length of the feature map are halved to an output matrix of 64 \(\times\) 64 \(\times\) 16. The max-pooling layer reduces the number of parameters and decreases the required amount of computation by gradually reducing the sizes of feature maps, which also controls overfitting to some extent.