## 2 Clustering and Classification Framework
### Clustering Based on Self-Organizing Maps Neural Networks  
A neural networks' self-organizing maps (SOM) consist of a standard grid of map units, which are often in two dimensions. A prototype vector with the input vector dimension represents each unit. A neighborhood link connects the units to those that are next to them. The accuracy and generalizability of this form of neural network are mostly dependent on the number of map units, which typically ranges from a few dozen to several thousand (NN) [12].  
This paper focused on a self-organizing neural network, due to its good capabilities in clustering approaches. It is very useful for data visualization, since the representation in space of the grid, facilitated by its low dimensionality, reveals a great amount of information about the data. On the other hand, SOMs have the ability to convert the nonlinear statistical relationships between high-dimensional data into the simple geometric relationship of their image points on a regular two-dimensional grid of nodes; the map generated can be used for the classification and visualization of high-dimensional data [13]. Unlike many other types of NNs, an SOM does not need a target output to be specified. Instead, where the node weights match the input vector, that area of the lattice is selectively optimized to more closely resemble the data for the class. From an initial distribution of random weights, and over many iterations, the SOM eventually settles into a map of stable zones. Each zone is effectively a feature classifier.  
For SOM training, the standard Kohonen learning algorithm is usually used. It is an unsupervised, iterative training process, and produces a vector quantizer by updating the prototypes of the class units. At each training step, a sample vector is randomly chosen from the input data set, and the distances between and among all of the prototype vectors are computed. Then, the best-matching unit (BMU) is computed, and the prototype vectors are updated. Then, the BMU and its topological neighbors are moved closer to the input vector in the input space.  
The Kohonen algorithm steps are presented in Figure 1.  
The notations used in the algorithm are computed, as shown in Equations (1) and (2):  
\[d_{j}=\min(d_{j})=\min(\left\|W_{i}(t)-X_{p}\right\|)\ \forall i=1\ldots C \tag{1}\]  
\[W_{i}(t+1)=W_{i}(t)+lr\big{[}X_{p}-W_{i}(t)\big{]}\ i\in N_{j}(t) \tag{2}\]  
The SOM training algorithms apply to large data sets. A flexible net is created by the SOM during training, and is folded onto the input data \"cloud.\" Onto adjacent map units are mapped data points in the input space that are close to one another. Therefore, the SOM can be thought of as a topology-preserving mapping from the input space onto the 2D grid of map units.  
As just the prototype vectors and the current training vector need to be stored in memory, the computational complexity scales linearly with the number of data samples. It can also be implemented in parallel and in a neural, online learning environment. The complexity increases quadratically as the number of map units grows [14; 15].  
The requirement for a priori knowledge of the number of classes to be divided throughout the classification process makes the typical Kohonen algorithm challenging.