## 3 Proposed Algorithm
### CIM-Based ART with Edge and Age
#### 3.3.4 Node Learning and Edge Construction  
Depending on the result of the vigilance test, a different operation is performed. If \(\mathbf{x}_{n}\) is classified as Case I by the vigilance test (i.e., (14) is satisfied), a new node \(\mathbf{y}_{K+1}=\mathbf{x}_{n}\) is added to the prototype node set \(\mathcal{Y}=\{\mathbf{y}_{1},\mathbf{y}_{2},\ldots,\mathbf{y}_{K}\}\). A bandwidth \(\sigma_{K+1}\) for node \(\mathbf{y}_{K+1}\) is calculated by (9). In addition, the number of data points that have been accumulated by the node \(\mathbf{y}_{K+1}\) is initialized as \(M_{K+1}=1\). If \(\mathbf{x}_{n}\) is classified as Case II by the vigilance test (i.e., (15) is satisfied), first, the age of each edge connected to the first winner node \(\mathbf{y}_{k_{1}}\) is updated as follows:  
\[a_{(k_{1},j)}\gets a_{(k_{1},j)}+1\quad(\forall j\in\mathcal{N}_{k_{1}}), \tag{17}\]  
where \(\mathcal{N}_{k_{1}}\) is a set of all neighbor nodes of the node \(\mathbf{y}_{k_{1}}\). After updating the age of each of these edges, an edge whose age is greater than a predefined threshold \(a_{\text{max}}\) is deleted. In addition, a counter \(M\) for the number of data points that have been accumulated by \(\mathbf{y}_{k_{1}}\) is also updated as follows:  
\[M_{k_{1}}\gets M_{k_{1}}+1. \tag{18}\]  
Then, \(\mathbf{y}_{k_{1}}\) is updated as follows:  
\[\mathbf{y}_{k_{1}}\leftarrow\mathbf{y}_{k_{1}}+\frac{1}{M_{k_{1}}}\big{(} \mathbf{x}_{n}-\mathbf{y}_{k_{1}}\big{)}. \tag{19}\]  
When updating the node, the difference between \(\mathbf{x}_{n}\) and \(\mathbf{y}_{n}\) is divided by \(M_{k_{1}}\). Thus, the changes in the node position are smaller when \(M_{k_{1}}\) is larger. This is based on the idea that the information around a node, where data points are frequently given, is important and should be held by the node. If \(\mathbf{x}_{n}\) is classified as Case III by the vigilance test (i.e., (16) is satisfied), the same operations as in Case II (i.e., (17)-(19)) are performed. In addition, the neighbor nodes of \(\mathbf{y}_{k_{2}}\) are updated as follows:  
\[\mathbf{y}_{j}\leftarrow\mathbf{y}_{j}+\frac{1}{10M_{j}}\big{(}\mathbf{x}_{n} -\mathbf{y}_{j}\big{)}\quad(\forall j\in\mathcal{N}_{k_{2}}). \tag{20}\]  
In Case III, moreover, if there is no edge between \(\mathbf{y}_{k_{1}}\) and \(\mathbf{y}_{k_{2}}\), a new edge \(e_{(k_{1},k_{2})}\) is defined and its age is initialized as follows:  
\[a_{(k_{1},k_{2})}\gets 0. \tag{21}\]  
In the case that there is an edge between nodes \(\mathbf{y}_{k_{1}}\) and \(\mathbf{y}_{k_{2}}\), its age is also reset by (21). Apart from the above operations in Cases I-III, as a noise reduction purpose, the nodes without edges are deleted every \(\lambda\) training data points (e.g., the node deletion interval is the presentation of \(\lambda\) training data points). The learning procedure of CAEA is summarized in Algorithm 2. Note that, in CAEAC, the classification process of an unknown data point is similar to ASC. That is, the unknown data point is assigned to the class of its nearest neighbor node. ```
Input: a set of training data points: \(\mathcal{X}=\{\mathbf{x}_{1},\mathbf{x}_{2},\ldots,\mathbf{x}_{n},\ldots\}\) where \(\mathbf{x}_{n}=(x_{n1},x_{n2},\ldots,x_{nd})\) (\(x_{l}\in\Re^{d}\)), the interval for computing \(\sigma\) and deleting an isolated node: \(\lambda\), and the threshold of an age of edge: \(a_{\text{max}}\). Output: the CAEA model. model contents a set of generated nodes: \(\mathcal{Y}=\{\mathbf{y}_{1},\mathbf{y}_{2},\ldots,\mathbf{y}_{K}\}\) (\(K\in\mathbb{Z}^{+}\)), a set of bandwidths for a kernel function: \(\mathcal{S}=\{\sigma_{1},\sigma_{2},\ldots,\sigma_{K}\}\), a set of counters: \(\mathcal{M}=\{M_{1},M_{2},\ldots,M_{K}\}\), the matrix of edge connections: \(\mathbf{e}\), and the matrix of edge age: \(\mathbf{a}\). 1 functionLearningCAEA(\(\mathcal{X}\), \(\lambda\), \(a_{\text{max}}\))
2 forall\(l\in 1,2,\ldots,L\)do
3 if\(K<\lambda/2\)then
4 Initialize a counter \(M_{K+1}=1\). Update a set of counter \(\mathcal{M}\leftarrow\mathcal{M}\cup M_{K+1}\).