## 1 Introduction
### Technical Background  
In this work, we focus on self-organizing ANNs that allow extending the range of capabilities of existing wireless sensors and make them smarter. Such types of ANNs are used, for example, in the analysis of air pollutions to predict their levels in some periods. In the case of the proposed hardware implementation, such ANNs may be applied directly in wireless sensors in smart cities. Another group of applications includes the analysis of biomedical data, for example: ECG (Electrocardiography) and EMG (Electromyography) signals. In this case, the miniaturization of such ANNs may lead to efficient wireless body area networks used in medical health care. Self-organizing ANNs feature relatively simple structure, which is suitable for low power and low chip area hardware realizations, as shown in our previous works [3; 4; 24]. This group of ANNs include the following learning algorithms: winner takes all (WTA), winner takes most (WTM) and the neural gas (NG). At most of the computation stages, these algorithms perform similar operations, as shown in Figure 2. Below are presented the subsequent steps carried out for each new input learning pattern \(X\):  
1. Initialize the neuron weights that aims at distribution of the neurons over the overall input data space. 2. Provide a new learning pattern \(X\) to the inputs of all neurons in the ANN (a data normalization may be required before following stages). 3. Calculate distances (\(d_{1}\), \(d_{2}\), \(d_{3}\), \(d_{j}\),..., \(d_{N}\)) between the pattern \(X\) and the weight vectors \(W\) of all neurons in the ANN (\(N\) is the total number of neurons in the NN). The distance may be computed according to one of typical distance measures, for example the Manhattan (L1 norm) or the Euclidean (L2 norm) ones [3]. 4. Determine the neuron that is located in the closest proximity to a given pattern \(X\). This neuron becomes the winner. Mathematically, the \(\min(d_{1}\), \(d_{2}\), \(d_{3}\), \(d_{j}\),..., \(d_{N}\)) operation is used at this stage. 5. Determine the neighborhood of the winning neuron (explained in more detail below). 6. Adapt the weights of the winning neuron and of its neighbors (in the WTM and the NG algorithms). The adaptation of the neuron weights is performed according to the formula below, which is similar for all learning algorithms mentioned above:  
\[W_{j}(k+1)=W_{j}(k)+\eta(k)\cdot G()\cdot[X(k)-W_{j}(k)] \tag{1}\]  
In this formula, the \(W_{j}(k)\) is the weights vector of a \(j\)th neuron, in \(k\) cycles (iteration) of the learning process of the ANN, while \(\eta\) is the learning rate that determines the intensity of the learning process. The neurons that belong to the winner's neighborhood, are trained with the intensities determined by the applied neighborhood function (NF) \(G()\)[3; 24]. The values of the NF for particular neurons depend on distances between these neurons and the winning neuron. The adaptation block is one of the most important components of the neural network. It computes an update of particular neuron weights, which are calculated as follows:  
\[\Delta w_{i,j}(k)=\eta(k)\cdot G()\cdot[x_{i}(k)-w_{i,j}(k)] \tag{2}\]  
Before the learning process, the values of both the \(\eta(k)\) factor and the G(0) function are set to be in the range between 0 and 1, usually closer to 1. Then, during the learning process, these parameters are gradually reduced to zero. For \(\eta(k)=0\), the adaptation process becomes inactive, and the NN enters the recall phase, in which the values of the weights are then constant. Thanks to setting the \(\eta(k)\) parameter to be less than 1, the subsequent learning process is convergent. At the beginning of the learning process, when the \(\eta\) and the G(0) values are relatively large, the modifications in weight values are greater than at the end of this process. In real data processing, however, when the input dataset suddenly changes, the \(\eta\) value should be enlarged again.