## 2 Methods
### Feature Extraction Based on Sparse Dictionary Atoms
#### 2.4.1 Dictionary Atom Self Organizing Mapping  
In this step, we used the dictionary atoms as the SOM network input. When the waveform of a dictionary atom is sent to the network as input, a node in the output layer gets the maximum stimulation and wins, and the nodes around the winning node are also stimulated due to lateral effects. At this time, the network performs a learning operation, and the connection weight vector of the winning node and surrounding nodes is corrected in the direction of the waveform of the input atom. When the input changes, the winning node on the two-dimensional plane is also transferred from the original node to other nodes. In this way, the network uses the entire sparse dictionary to adjust its connection weights in a self-organizing manner and finally enables the network output layer to reflect the distribution of dictionary atoms. The connection weights, that is, the codebook of the entire network, will be a summarization of the entire dictionary. A typical SOM network structure is shown in Figure 3.  
Figure 3: Self-organizing mapping network. Figure 2: Flowchart of Feature Extraction Method. Network structure design: The SOM network has two layers, the input layer and the output layer. The length of the input layer is consistent with the length of the dictionary atom. In the output layer, the neurons are distributed in a 2D plane. We chose a square grid topology to arrange the neurons in the output layer. The number of neurons was selected according to the length of the dictionary. Here we chose the number \(5\sqrt{N}\), where \(N\) is the number of dictionary atoms. Network initialization: This method uses random data to initialize the the weight of the output layer. Although the use of linear initialization and other methods can achieve faster learning speed, in the scope of the proposed method, speed is not a major concern element. Since there may be a potential linear relationship between the dictionary atoms obtained by K-SVD, if linear initialization is used, the training result of the network will be affected. Random initialization can prevent the linear relationship between dictionary atoms from affecting the learning results of the network. SOM learning method: We chose the online sequential-learning method for SOM learning, rather than the batch-learning algorithm. Although the number of dictionary atoms is determined, batch-learning seems to be a better choice. However, batch-learning has the following shortcomings [32]: 1. The arrangement of neurons is not as good as sequential learning algorithms. In the application of this article, we hope that the network can bring similar neurons closer in spatial distribution. 2. It is more sensitive to the selection of the initial value, and as mentioned above, we choose a random value as the initial value, and the uncertainty of the result of the combined learning increases. Therefore, in the scope of this article, the sequential-learning method that imitates online training is a better choice. The process of dictionary atoms SOM analysis is as follows:  
1. Set the weight of each neuron to a random initial value; set a larger initial neighborhood, and set the number of cycles of the network \(t\), set the number of neurons in the network to \(M\);
2. Input a dictionary atom Dk into the network \(D_{k}\): \(D_{k}=\left\{D_{1k},D_{2k},...,D_{nk}\right\}\), input into the network; \(n\) is the length of the dictionary atom;
3. Calculate the weight of \(D_{k}\) and all output neurons, which is the Euclidean distance \(d_{jk}\) between the code vector, and select the neuron \(c\) with the smallest distance from \(D_{k}\), that is, \(x_{k}-W_{c}=\arg min\left(j\right)\left(d_{ij}\right)\), then \(c\) is the Winning neuron;
4. Update the connection weight of node \(c\) and its domain node\(w_{ij}\left(t+1\right)=w_{ij}\left(t\right)+\eta\left(t\right)\left(x_{i}-w_{ ij}\left(t\right)\right)\) Among them, \(0<\eta(t)<1\) is the learning rate, which gradually decreases with time;
5.