# Integrated Gradients for Feature Assessment in Point Cloud-Based Data Sets
## 3 Experiments
### Integrating Gradients  
For each sampled batch a baseline was generated to create the interpolations necessary for the attribution.  
Figure 9 demonstrates the resultant interpolated images for a subsection of the point cloud. The maximum values found in the original point cloud determine the first cuboid dimensions. Here, the same number of coordinates found in the original point cloud is randomly generated within these bounds, they are then allocated RGB values of 0,0,0 and form the baseline. The second point cloud shows the midway interpolation point between the baseline and the original point cloud; here, the coordinates roughly correspond to the house. However, a lot of noise can still be seen. In addition to the coordinates, the RGB values are also interpolated while the labels are kept as they must be constant when collecting the gradients.  
To gather the gradients efficiently, the mini-batches had to be merged back into the original point cloud as many points were run multiple times. This was performed by  
\begin{table}
\begin{tabular}{c c c} \hline \hline
**Parameter** & **Semantic3D** & **SVGEO** \\ \hline k nearest neighbors & 16 & 16 \\ \hline number of points & 65,536 & 45,056 \\ \hline number of classes & 8 & 19 \\ \hline ignored label index & 0 & 0 \\ \hline sub-sampling ratio & 4, 4, 4, 4, 2 & 4, 4, 4, 4 \\ \hline input dimensions & 6 & 6 \\ \hline feature dimensionality & 8 & 8 \\ \hline output dimensions & 16, 64, 128, 256, 512 & 16, 64, 128, 256 \\ \hline grid size & 0.05 & 0.06 \\ \hline batch size & 2 & 3 \\ \hline alphas & 20 & 20 \\ \hline \hline \end{tabular}
\end{table}
Table 2: RandLA-Net training parameters.  
Figure 9: Three interpolation stages: baseline (**a**); midway point (**b**); and original point cloud (**c**).  
simply overwriting the point-wise gradients with the last collected gradient as all other methods proved too memory intensive.  
Visualization  
In order to visualize the result of the attributions created by integrated gradients, they were projected back into the original point cloud. To not clutter everything up, attributed features were added and allocated to each point. This results in a class-wise point cloud similar to the one generated by the prediction but with continuous values instead of discrete classes. The two most frequent and the least frequent class were chosen to display the differences in attributions per class, class 0 was ignored as it is too broad to give an accurate depiction.  
Figure 10 shows what features in the point cloud the networks focus on. For all three classes, the roof of the houses is a significant landmark; however, the value of the attribution differs. As the network only truly differentiated between a building and not a building, the predictions can be treated as binary for this network and the middle class as another interpolation. Comparing \"buildings\" and \"small wall opening with roof\" shows a pattern, most strong gradients are inverted, this shows that the network learned to distinguish between building and not building by learning geometries in the point cloud, especially the shape of the gabled roof. Additionally, looking at the prediction in Figure 11, it becomes apparent that the two buildings on the right are predicted correctly, while the two buildings on the left are missing their walls in the prediction. It can be discerned that the gable has to have a strong positive attribution, while the walls need a strong negative attribution to be classified as a building. This gives humans some insight into why the network has made a prediction and allows parameters and networks to be refined while providing a greater understanding of the underlying model. A full flow diagram of the process running through the network is demonstrated in Figure 12  
Figure 11: Predictions RandLA-Net without sub-sampling included to allow a comparison with the visualization of this prediction.  
Figure 10: point wise attributions by class, \(-10\) is blue, 0 green, and 10 red, all other colors are interpolated between these three values.