# SSKM_DP: Differential Privacy Data Publishing Method via SFLA-Kohonen Network
## 3 Definitions
### Kohonen Network  
The Kohonen network, namely Self-Organization Feature Map (SOFM), is a self-organizing competitive neural network proposed by [PERSON] et al. in 1981, which is an unsupervised learning model [26]. The Kohonen network is a neural network of an input layer and a competing layer (output layer) that realizes the bidirectional link between two layers through a full connection. Each node in the competing layer represents an aggregated class and connects adjacent nodes through weight. Under the premise of no prior knowledge, the \"competitive learning\" method is used to identify the rules and relationships between the input samples and realize the clustering of the samples. The topology of the Kohonen network is shown in Figure 1.  
The core idea of the Kohonen network is that when the Kohonen network receives the input vector, the input vector is automatically divided into different nodes, and each node of the competitive layer responds to the input in a \"competitive\" way, obtains a winning node, and updates the weight of the node's neighborhood. Through repeated learning and training for input vectors, the distribution of connection weight between nodes in the competitive layer is close to the input value; thus, the input vector with correlation can obtain clustering results from the competitive layer.  
The steps of data clustering in the Kohonen network are as follows:  
1. Initializing The Network  
The connection weight \(W_{j}\) of each neuron is set in the input layer I and the competition layer. \(W_{j}\) is usually a random number in the range (0, 1). The initial value of the learning rate \(\eta(0)\) is determined, and its value range is (0, 1). The maximum learning time \(T\) is set.  
Looking For Winning Neurons  
For the input vector \(I_{i}\), the most matching neuron in the competition layer should be searched for and the winning neuron determined. The matching degree is measured by Euclidean distance. The smaller the distance, the higher the matching degree. The calculation method is shown in (3):  
\[d_{j}=\|I-W_{j}\|=\sqrt{\sum_{i=1}^{n}\bigl{[}I_{i}(t)-W_{ij}(t)\bigr{]}^{2}} \tag{3}\]  
where \(W_{ij}\) is the connection weight between the \(i\)th neuron in the input layer and the \(j\)th neuron in the competition layers.  
Adjusting And Updating The Weight  
According to the winning neuron and the neighborhood function, the winning neighborhood of the winning neuron is determined, all neurons in the winning neighborhood are found out, and the weight of these neurons is adjusted. The updating method is shown in (4):  
\[\begin{array}{ll}W_{ij}(t+1)&=W_{ij}+\Delta W_{ij}\\ &=W_{ij}+\eta(t)*N_{ij}*[I_{i}(t)-W_{ij}(t)]\end{array} \tag{4}\]  
where \(N_{ij}\) represents the domain function, and \(\eta(t)\) represents the learning rate at time \(t\), which decreases with the increase of \(t\).  
Iterating The Process  
The learning rate \(\eta\) is updated to determine whether \(\eta\) reaches the preset condition or whether the learning time \(t\) reaches the maximum learning time \(T\). If \(\eta\leq\eta_{\min}\) or \(t=T\), the iteration ends and the clustering is completed. Otherwise, step (2) is returned until the end of the iteration.