For either classification or clustering, a linear combination of the activation channels from a selected convolutional layer in a neural network are needed to create a CAM or CLAM, respectively. To modify CAM to work for clustering, we make changes to our neural network and the weighting algorithm of the activation channels (Figure REF ). In our deep clustering framework, we used a CAE, which consists of an encoder and decoder. However, to frame our clustering architecture to imitate a convolutional neural network for classification which takes in an image and outputs a scalar, we remove the decoder and add on a clustering layer as in Equation REF . Then, any of the convolutional layers in the encoder whose weights have been trained after the clustering layer is added will be useful to identify regions of the image which are discriminative for cluster assignment, and as such, can be used to create the CLAMs. As noted for CAM [1]}, the selection of a particular convolutional layer is a trade-off between the spatial resolution, which is typically higher in earlier layers, and discriminative ability, which is improved in later layers. In this work, we use the last convolutional layer in the encoder just prior to the clustering layer unless otherwise noted.
