Hierarchical interpretatations and contextual decomposition in pytorch
Project description
Hierarchical neural-net interpretations (ACD) 🧠
Produces hierarchical interpretations for a single prediction made by a pytorch neural network. Official code for Hierarchical interpretations for neural network predictions (ICLR 2019 pdf).
Documentation • Demo notebooks
Note: this repo is actively maintained. For any questions please file an issue.
examples/documentation
- installation:
pip install acd(or clone and runpython setup.py install) - examples: the reproduce_figs folder has notebooks with many demos
- src: the acd folder contains the source for the method implementation
- allows for different types of interpretations by changing hyperparameters (explained in examples)
- test with pytorch >1.0 with/without gpu
- all required data/models/code for reproducing are included in the dsets folder
| Inspecting NLP sentiment models | Detecting adversarial examples | Analyzing imagenet models |
|---|---|---|
notes on using ACD on your own data
- the current CD implementation doesn't always work for all types of networks. If you are getting an error inside of
cd.py, you may need to write a custom function that iterates through the layers of your network (for examples seecd.py). Should work out-of-the-box for many common layers though, including antyhing in alexnet, vgg, or resnet. - to use baselines such build-up and occlusion, replace the pred_ims function by a function, which gets predictions from your model given a batch of examples.
related work
- PDR framework (PNAS 2019 pdf) - an overarching framewwork for guiding and framing interpretable machine learning
- CDEP (ICML 2020 pdf, github) - penalizes CD / ACD scores during training to make models generalize better
- TRIM (ICLR 2020 workshop pdf, github) - using simple reparameterizations, allows for calculating disentangled importances to transformations of the input (e.g. assigning importances to different frequencies)
- DAC (arXiv 2019 pdf, github) - finds disentangled interpretations for random forests
- Baseline interpretability methods - the file
scores/score_funcs.pyalso contains simple pytorch implementations of integrated gradients and the simple interpration techniquegradient * input
reference
- feel free to use/share this code openly
- if you find this code useful for your research, please cite the following:
@inproceedings{
singh2019hierarchical,
title={Hierarchical interpretations for neural network predictions},
author={Chandan Singh and W. James Murdoch and Bin Yu},
booktitle={International Conference on Learning Representations},
year={2019},
url={https://openreview.net/forum?id=SkEqro0ctQ},
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file acd-0.0.2.tar.gz.
File metadata
- Download URL: acd-0.0.2.tar.gz
- Upload date:
- Size: 19.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dbc4227e2f7b270649e122745ace92ecf47377fc80ca25d85a498e338cbf936f
|
|
| MD5 |
54b8e31a9cedbb2a2bbb62d54dbca720
|
|
| BLAKE2b-256 |
be510fcfa921305f306ba2d420025ed7c4a39eaeef6c7ecbeecb4ca30adbeacf
|
File details
Details for the file acd-0.0.2-py3-none-any.whl.
File metadata
- Download URL: acd-0.0.2-py3-none-any.whl
- Upload date:
- Size: 23.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
505a0689a31e7a5c5d7ca2a747fc6800f4d806fa050d1fe4ec5b20b1b77fbabb
|
|
| MD5 |
aedf7dfb27bf222eabbbd709b7aa28ab
|
|
| BLAKE2b-256 |
3aadcc98ef0bdc86573705cccf2e70162a64f1032df4f38e494d63e948bae8b9
|