We propose a novel method that trains a conditional Generative Adversarial Network (GAN) to generate visual interpretations of a Convolutional Neural Network (CNN). To comprehend a CNN, the GAN is trained with information on how the CNN processes an image when making predictions. Supplying that information has two main challenges: how to represent this information in a form that is feedable to the GANs and how to effectively feed the representation to the GAN. To address these issues, we developed a suitable representation of CNN architectures by cumulatively averaging intermediate interpretation maps. We also propose two alternative approaches to feed the representations to the GAN and to choose an effective training strategy. Our approach learned the general aspects of CNNs and was agnostic to datasets and CNN architectures. The study includes both qualitative and quantitative evaluations and compares the proposed GANs with state-of-the-art approaches. We found that the initial layers of CNNs and final layers are equally crucial for interpreting CNNs upon interpreting the proposed GAN. We believe training a GAN to interpret CNNs would open doors for improved interpretations by leveraging fast-paced deep learning advancements. The code used for experimentation is publicly available at https://github.com/Akash-guna/Explain-CNN-With-GANS
翻译:我们提出了一种新颖方法,通过训练条件生成对抗网络(GAN)来生成卷积神经网络(CNN)的可视化解释。为理解CNN,GAN在训练时需整合CNN在图像预测过程中的处理信息。提供该信息面临两大挑战:如何将信息表示为可输入GAN的形式,以及如何有效将表示馈入GAN。为解决这些问题,我们通过累积平均中间解释图,开发了CNN架构的合适表示方法。同时提出两种替代方案来向GAN馈送表示,并选择有效训练策略。我们的方法学习了CNN的通用特征,且与数据集和CNN架构无关。研究包含定性与定量评估,并将所提GAN与前沿方法进行了比较。通过分析所提GAN,我们发现CNN的初始层与最终层对解释同等重要。我们相信,利用快速发展的深度学习技术训练GAN来解释CNN,将为改进解释开辟新途径。实验所用代码已公开于https://github.com/Akash-guna/Explain-CNN-With-GANS