GauthamSks / Visualizing-CNNs

:dart: An attempt to solve the mystery behind deep learning models

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Visualizing CNNs

It’s often said that deep-learning models are “black boxes”: learning representations that are difficult to extract and present in a human-readable form. Although this is partially true for certain types of deep-learning models, it’s definitely not true for convnet's.Interpreting neural network's decision-making is an ongoing area of research, and it’s quite an important concept to understand. Neural networks are used in the real-world, so we can’t treat them like black boxes, we need to learn what they interpret, how they interpret, and what information each layer/channel in a neural network has learned.This interpretability matters because in order to build trust in intelligent systems and move towards their meaningful integration into our everyday lives, it is clear that we must build ‘transparent’ models that has the ability to explain why they predict what they predict.A solution to this problem is by visualizing the output of your deep learning model and see how its processing the given infromation. Here I shall demonstrate two of the techniques for visualizing what the convnet's has learned they are Saliency Mapping and Class Activation Mapping.

Saliency Mapping

Saliency map is an image that shows each pixel's unique quality. The goal of a saliency map is to simplify and/or change the representation of an image into something that is more meaningful and easier to analyze. The Saliency map shows which pixels need to be changed the least to affect the class score the most. One can expect that such pixels correspond to the object location in the image. There are many implementations of this technique but here I shall be demonstrating the two most popular ones mainly Saliency Map, Guided Backpropagation .

Class Activation Mapping

Class activation Mapping is a simple technique to get the discriminative image regions used by a CNN to identify a specific class in the image. In other words, a class activation map (CAM) lets us see which regions in the image were relevant to this class.This technique consists of producing heatmaps of “class activation” over input images. A “class activation” heatmap is a 2D grid of scores associated with a specific output class, computed for every location in an input image, indicating how important each location is with respect to the class considered. There are many implementations of this technique but here I shall be demonstrating the three most popular ones mainly CAM, Grad-CAM and Grad-CAM++.

References

About

:dart: An attempt to solve the mystery behind deep learning models


Languages

Language:Jupyter Notebook 100.0%