Skip to main content

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).

DocumentationDemo notebooks

Note: this repo is actively maintained. For any questions please file an issue.

examples/documentation

  • installation: pip install acd (or clone and run python 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 see cd.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.py also contains simple pytorch implementations of integrated gradients and the simple interpration technique gradient * 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

acd-0.0.2.tar.gz (19.9 kB view details)

Uploaded Source

Built Distribution

acd-0.0.2-py3-none-any.whl (23.0 kB view details)

Uploaded Python 3

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

Hashes for acd-0.0.2.tar.gz
Algorithm Hash digest
SHA256 dbc4227e2f7b270649e122745ace92ecf47377fc80ca25d85a498e338cbf936f
MD5 54b8e31a9cedbb2a2bbb62d54dbca720
BLAKE2b-256 be510fcfa921305f306ba2d420025ed7c4a39eaeef6c7ecbeecb4ca30adbeacf

See more details on using hashes here.

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

Hashes for acd-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 505a0689a31e7a5c5d7ca2a747fc6800f4d806fa050d1fe4ec5b20b1b77fbabb
MD5 aedf7dfb27bf222eabbbd709b7aa28ab
BLAKE2b-256 3aadcc98ef0bdc86573705cccf2e70162a64f1032df4f38e494d63e948bae8b9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page