# Growing Neural Gas with Different Topologies for 3D Space Perception
## 2 Growing Neural Gas with Different Topologies  
### Overview of Algorithm  
In this section, we explain the overview of our proposed method called \"growing neural gas with different topologies (GNG-DT)\". Figure 3 shows an overall image of the GNG-DT-based point cloud processing method. GNG-DT uses almost the same distance measurement as GNG-U II, and GNG-DT learns the multiple topologies for clustering the point cloud from the different viewpoints of the multiple properties. First, we define the variables used in GNG-DT. The set \(S^{in}\) of the input vector's properties is \(S^{in}\) ={Position (_pos_), Color (_col_),...}; the set \(S^{ref}\) of the node's properties is \(S^{ref}\) ={Position (_pos_), Color (_col_), Normal vector (_nor_),...}; and the input vector \(\mathbf{v}\) and the \(i\)th node (reference vector) \(\mathbf{h}\) are defined as \(\mathbf{v}=(\mathbf{v}^{pos},\mathbf{v}^{col},...)\), \(\mathbf{h}_{i}=(\mathbf{h}_{i}^{pos},\mathbf{h}_{i}^{col},\mathbf{h}_{i}^{nor},...)\), respectively. Next, a distance measurement of the \(o\)th property between the input vector and the \(i\)th node is defined as  
\[d_{i}^{o}=\|\mathbf{v}^{o}-\mathbf{h}_{i}^{o}\| \tag{1}\]In addition, the edge set of the \(o\)th property is defined as \(C^{o}\)={\(c^{o}_{1,2}\),..., \(c^{o}_{i,j}\),...} (\(\forall o\in S^{ref}\)) for generating the multiple topologies in GNG-DT. The detailed algorithm is explained as follows. **Step 0. ** Generate two nodes at random positions, \(\mathbf{h}_{1}\) and \(\mathbf{h}_{2}\) in \(R^{n}\), where \(n\) is the dimension of the reference vector. Initialize the connection set \(c^{o}_{1,2}\) = 1 (\(\forall o\in S^{ref}\)), and the age of edge \(g_{1,2}\) is set to 0. **Step 1. ** Generate at random an input data \(\mathbf{v}\). **Step 2. ** Select the 1 st winner node \(s_{1}\) and the 2 nd winner node \(s_{2}\) from the set of nodes by  
\[s_{1} =\underset{i\in A}{\arg\min}\,d^{pos}_{i} \tag{2}\] \[s_{2} =\underset{i\in A\backslash s1}{\arg\min}\,d^{pos}_{i}\]  
where \(A\) indicates the set of the node numbers. **Step 3. ** Add the squared distance between the input data and the 1 st winner to an accumulated error variable \(E_{s_{1}}\):  
\[E_{s_{1}}\gets E_{s_{1}}+(d^{pos}_{s_{1}})^{2} \tag{3}\]  
**Step 4. ** Set the age of the connection between \(s_{1}\) and \(s_{2}\) at 0 (\(g_{s_{1},s_{2}}=0\)). If a connection of the position information between \(s_{1}\) and \(s_{2}\) does not yet exist, create the connection (\(c^{pos}_{s_{1},s_{2}}=1\)). In addition, the edge of the other property \(o(\in S^{ref}\backslash pos)\) is calculated as the following equation:  
\[\left\{ \begin{array}{ll}c^{o}_{s_{1},s_{2}}=1&if\ \|\mathbf{h}^{o}_{s_{1}}- \mathbf{h}^{o}_{s_{2}}\|<\tau^{o}\\ c^{o}_{s_{1},s_{2}}=0&\text{otherwise}\end{array} \right. \tag{4}\]  
where \(\tau^{o}\) is the predefined threshold value of the \(o\)th property. Figure 3: Overview of the major steps in GNG-DT. After measuring 3D point cloud with color from RGB-D camera, the multiple topologies are generated by using competitive learning method. By utilizing and combining the multiple topologies, GNG-DT can provide various clustering results from the viewpoint of each property. **Step 5. ** Update the nodes of the winner and its direct topological neighbors by the learning rates \(\eta_{1}\) and \(\eta_{2}\) (\(\eta_{1}>\eta_{2}\)). \[\mathbf{h}_{s_{1}} \leftarrow\mathbf{h}_{s_{1}}+\eta_{1}(\mathbf{v}-\mathbf{h}_{s_{1}}) \tag{5}\] \[\mathbf{h}_{j}^{o} \leftarrow\mathbf{h}_{j}^{o}+\eta_{2}(\mathbf{v}-\mathbf{h}_{j}^{o })\ \ \ if\ \ c_{s_{1},j}^{o}=1\]  
**Step 6. ** Increment the age of all edges emanating from \(s_{1}\). \[g_{s_{1},j}\gets g_{s_{1},j}+1\ \ if\ c_{s_{1},j}^{pos}=1 \tag{6}\]  
**Step 7. ** Delete edges of all properties with an age larger than \(g_{max}\). If this results in nodes having no more connecting edges (\(c_{s_{1},s_{2}}^{pos}=0\)) of the position information, remove those nodes as well. **Step 8.