This repository shows an example of how to use MATLAB to produce post-hoc explanations (using Grad-CAM and image LIME) for a medical image classification task.
Both methods (gradCAM
and imageLIME
) are available as part of the MATLAB Deep Learning toolbox and require only a single line of code to be applied to results of predictions made by a deep neural network (plus a few lines of code to display the results as a colormap overlaid on the actual images).
Example of gradCAM results. |
Example of imageLIME results. |
Given a chest x-ray (CXR), our solution should classify it into Posteroanterior (PA) or Lateral (L) view.
A small subset of the PadChest dataset1.
- MATLAB 2020a or later
- Deep Learning Toolbox
- Deep Learning Toolbox™ Model for SqueezeNet Network support package
- Parallel Computing Toolbox (only required for training using a GPU)
- Download or clone the repository.
- Open MATLAB.
- Edit the contents of the
dataFolder
variable in thexai_medical.mlx
file to reflect the path to your selected dataset. - Run the
xai_medical.mlx
script and inspect results.
- You are encouraged to expand and adapt the example to your needs.
- The choice of pretrained network and hyperparameters (learning rate, mini-batch size, number of epochs, etc.) is merely illustrative.
- You are encouraged to (use Experiment Manager app to) tweak those choices and find a better solution.
[1] This example uses a small subset of images to make it easier to get started without having to worry about large downloads and long training times.