ExplainableAI.jl

Explainable AI in Julia.

MIT License

Stars
108

Bot releases are visible (Hide)

ExplainableAI.jl - v0.9.0 Latest Release

Published by github-actions[bot] 9 days ago

ExplainableAI v0.9.0

Diff since v0.8.1

  • Feature Support selection of AD backends via DifferentiationInterface.jl. (#167)
  • BREAKING For gradient-based XAI methods, an AD backend must now be manually loaded. To keep using the default Zygote backend, this simply requires adding using Zygote to your code. (#177)
  • BREAKING Gradient, InputTimesGradient and GradCAM analyzers now have an additional backend field and type parameter. (#167)
  • BREAKING Update XAIBase interface to v4. This adds a field to the Explanation return type and removes the add_batch_dim keyword argument. Refer to the XAIBase.jl changelog for more information. (#174)

Merged pull requests:

  • Update XAIBase dependency to v4.0.0 (#166) (@adrhill)
  • Use DifferentiationInterface for gradient-based analyzers (#167) (@adrhill)
  • Update CI workflows (#170) (@adrhill)
  • Update CI: Give CompatHelper permission to write PRs (#172) (@adrhill)
  • Update CompatHelper v2 (#173) (@adrhill)
  • Drop compatibility with pre-LTS versions (#174) (@adrhill)
  • Update benchmarks and test them with PkgJogger (#175) (@adrhill)
  • Add full example to README (#176) (@adrhill)
  • Remove Zygote from dependencies (#177) (@adrhill)

Closed issues:

  • Use AbstractDifferentiation.jl (#7)
  • Allow selection of AD backends via DifferentiationInterface (#165)
  • Update benchmarks (#168)
  • Incomplete starter code (#169)
  • Update benchmarks and test them with PkgJogger (#171)
ExplainableAI.jl - v0.8.1

Published by github-actions[bot] 4 months ago

ExplainableAI v0.8.1

Diff since v0.8.0

Merged pull requests:

  • Test type stability with JET.jl (#163) (@adrhill)
ExplainableAI.jl - v0.8.0

Published by github-actions[bot] 8 months ago

ExplainableAI v0.8.0

Diff since v0.7.0

This release removes the automatic reexport of heatmapping functionality.
Users are now required to manually load VisionHeatmaps.jl and/or TextHeatmaps.jl.

This reduces the maintenance burden for new heatmapping features and the amount of dependencies for users who don't require heatmapping functionality.

  • BREAKING Removed reexport of heatmapping functionality by updating XAIBase dependency (#162).
  • Feature Added GradCAM analyzer (#155). Try it with VisionHeatmaps.jl's new heatmap_overlay feature.

Merged pull requests:

  • Add GradCAM analyzer (#155) (@JeanAnNess)
  • Bump codecov/codecov-action from 3 to 4 (#161) (@dependabot[bot])
  • Update XAIBase to v3.0.0 and document heatmap_overlay (#162) (@adrhill)
ExplainableAI.jl - v0.7.0

Published by github-actions[bot] 9 months ago

ExplainableAI v0.7.0

Diff since v0.6.3

This release moves the core interface (Explanation, heatmap, analyze) into a separate package called XAIBase.jl. Developers can make use of the XAIBase.jl interface to quickly implement or prototype new methods without having to write boilerplate code.

As announced with version v0.6.2, this is first release without LRP, which has been moved to a separate package called RelevancePropagation.jl. This separation is enabled by the new common XAIBase.jl interface.

Notable changes

  • BREAKING Move core interface into XAIBase.jl package (#154).
    • Renamed Explanation field neuron_selection to output_selection
    • Added Explanation field heatmap for heatmapping presets
  • BREAKING Move LRP into RelevancePropagation.jl (#157)
  • BREAKING Remove ImageNet preprocessing utilities (#159)
  • Documentation Partially move documentation into the Julia-XAI ecosystem documentation

Merged pull requests:

  • Move core interface into XAIBase.jl package (#154) (@adrhill)
  • Bump actions/cache from 3 to 4 (#156) (@dependabot[bot])
  • Move LRP into RelevancePropagation.jl (#157) (@adrhill)
  • Remove ImageNet preprocessing utilities (#159) (@adrhill)
  • Remove unused dependencies and utils (#160) (@adrhill)

Closed issues:

  • LRP rule coverage for Flux layers (#9)
  • Add visualization method for language models (#79)
  • Add XAIBase dependency (#151)
  • Move LRP into separate package (#152)
  • Remove ImageNet preprocessing code (#153)
  • Update README before 1.0 release (#158)
ExplainableAI.jl - v0.6.3

Published by github-actions[bot] about 1 year ago

ExplainableAI v0.6.3

Diff since v0.6.2

Merged pull requests:

  • Allow Gradient analyzers on non-Flux models (#150) (@adrhill)
ExplainableAI.jl - v0.6.2

Published by github-actions[bot] about 1 year ago

ExplainableAI v0.6.2

Diff since v0.6.1

Merged pull requests:

  • Add Concept Relevance Propagation (#146) (@adrhill)
  • Fix EpsilonPlusFlat and EpsilonAlpha2Beta1Flat composites (#147) (@adrhill)
  • Document CRP (#148) (@adrhill)
  • Transfer repository to Julia-XAI organization (#149) (@adrhill)
ExplainableAI.jl - v0.6.1

Published by github-actions[bot] about 1 year ago

ExplainableAI v0.6.1

Diff since v0.6.0

Merged pull requests:

  • Bump actions/checkout from 3 to 4 (#139) (@dependabot[bot])
  • Fix neuron selection on GPUs (#140) (@adrhill)
  • Make Tullio weak dependency using package extensions (#141) (@adrhill)
  • Fix ones_like on GPUs (#142) (@adrhill)
  • Improve LRP backward pass (#143) (@adrhill)
  • GPU support for gradient analyzers (#144) (@adrhill)
  • Document GPU support (#145) (@adrhill)

Closed issues:

  • Test for type stability of analyzers (#34)
  • Use multithreading in batch gradient computation (#63)
ExplainableAI.jl - v0.6.0

Published by github-actions[bot] about 1 year ago

ExplainableAI v0.6.0

Diff since v0.5.7

Closed issues:

  • Add LRP support for Parallel layer (#10)
  • Document use of LoopVectorization.jl and CUDA.jl (#64)
  • Add LRP support for nested Chains (#90)
  • Add generalized Gamma rule (#91)
  • Rename composite primitives (#120)
  • Add composite primitive to assign rule at specific position in model (#121)
  • Support BatchNorm layers in LRP (#122)
  • Refactor results struct (#123)
  • Add Aqua.jl tests (#124)
  • Update canonizer to support nested Flux Chains (#132)
  • Update documentation for v0.6.0 release (#133)

Merged pull requests:

  • Add GeneralizedGammaRule (#109) (@adrhill)
  • Simplify LRP analyzer and clean-up rule default parameters (#110) (@adrhill)
  • Simplify LRP model checks (#112) (@adrhill)
  • Update dependencies (#116) (@adrhill)
  • Bump actions/cache from 1 to 3 (#117) (@dependabot[bot])
  • Bump actions/checkout from 2 to 3 (#118) (@dependabot[bot])
  • Support nested Flux Chains in LRP (#119) (@adrhill)
  • Add Aqua.jl tests (#125) (@adrhill)
  • Refactor Explanation struct (#126) (@adrhill)
  • Faster tests and benchmarks (#127) (@adrhill)
  • Set LRP output relevance to one (#128) (@adrhill)
  • Enable BatchNorm layers in LRP (#129) (@adrhill)
  • Rename composite primitives (#130) (@adrhill)
  • Support nested indexing in composite primitive LayerMap (#131) (@adrhill)
  • Add PassRule on normalization layers to composite presets, improve show (#134) (@adrhill)
  • Support Parallel layers in LRP (#135) (@adrhill)
  • Rename Explanation field attribution to val (#136) (@adrhill)
  • Update documentation for v0.6.0 (#137) (@adrhill)
  • Support canonization of Parallel layers (#138) (@adrhill)
ExplainableAI.jl - v0.5.7

Published by github-actions[bot] almost 2 years ago

ExplainableAI v0.5.7

Diff since v0.5.6

Merged pull requests:

  • CompatHelper: bump compat for PrettyTables to 2, (keep existing compat) (#101) (@github-actions[bot])
ExplainableAI.jl - v0.5.6

Published by github-actions[bot] about 2 years ago

ExplainableAI v0.5.6

Diff since v0.5.5

Merged pull requests:

  • Drop Flux v0.12 compatibility (#99) (@adrhill)
ExplainableAI.jl - v0.5.5

Published by github-actions[bot] about 2 years ago

ExplainableAI v0.5.5

Diff since v0.5.4

Merged pull requests:

  • Update ReferenceTests to v0.10 (#95) (@adrhill)
  • Fast FlatRule (#96) (@adrhill)
  • Add bias to layers in LRP rule tests (#97) (@adrhill)
  • Fast WSquareRule on Dense layers (#98) (@adrhill)
ExplainableAI.jl - v0.5.4

Published by github-actions[bot] about 2 years ago

ExplainableAI v0.5.4

Diff since v0.5.3

Closed issues:

  • Add printing of LRP analyzers, showing layers and rules (#83)

Merged pull requests:

  • Implement Base.show for LRP analyzers (#89) (@adrhill)
  • Fix bug in LRP rules (#92) (@adrhill)
  • Fix input modification for FlatRule and WSquareRule (#93) (@adrhill)
  • Update tests and references (#94) (@adrhill)
ExplainableAI.jl - v0.5.3

Published by github-actions[bot] about 2 years ago

ExplainableAI v0.5.3

Diff since v0.5.2

Closed issues:

  • Add LRP Composites (#82)
  • Add default composites (#85)
  • Add ZPlusRule (#86)

Merged pull requests:

  • Add LRP composites (#84) (@adrhill)
  • Add default composites (#87) (@adrhill)
  • Add LRP ZPlusRule (#88) (@adrhill)
ExplainableAI.jl - v0.5.2

Published by github-actions[bot] about 2 years ago

ExplainableAI v0.5.2

Diff since v0.5.1

Closed issues:

  • Use CIFAR10 examples instead of MNIST (#49)

Merged pull requests:

  • Add ImageNet preprocessing utilities (#80) (@adrhill)
  • CompatHelper: add new compat entry for ImageTransformations at version 0.9, (keep existing compat) (#81) (@github-actions[bot])
ExplainableAI.jl - v0.5.1

Published by github-actions[bot] over 2 years ago

ExplainableAI v0.5.1

Diff since v0.5.0

ExplainableAI.jl - v0.5.0

Published by github-actions[bot] over 2 years ago

ExplainableAI v0.5.0

Diff since v0.4.0

Closed issues:

  • Add passthrough rule (#60)
  • Apply LRP rules via VJP with gradient mapper (#62)
  • Refactor gradient methods to make use of VJPs (#68)

Merged pull requests:

  • Replace LRP gradient computation with VJP using Zygote.pullback (#72) (@adrhill)
  • In-place modify layers and rewrite ZBoxRule to use VJP (#73) (@adrhill)
  • Fix broadcasting for Julia 1.6 (#74) (@adrhill)
  • Add compatibility checks for LRP rule & layer combinations (#75) (@adrhill)
  • Add PassRule (#76) (@adrhill)
  • Fix bug in ZBoxRule (#77) (@adrhill)
  • Add AlphaBetaRule (#78) (@adrhill)
ExplainableAI.jl - v0.4.0

Published by github-actions[bot] over 2 years ago

ExplainableAI v0.4.0

Diff since v0.3.3

Closed issues:

  • Reduce allocations in LRP methods (#19)
  • Add Integrated Gradients analyzer (#54)
  • Remove use of mapreduce (#55)
  • Simplify heatmapping normalizer using ColorSchemes v3.18 (#56)
  • Specify upper and lower bounds of input in ZBoxRule constructor (#61)

Merged pull requests:

  • Update heatmapping normalizer (#57) (@adrhill)
  • Remove use of mapreduce (#58) (@adrhill)
  • Add Integrated Gradients analyzer (#65) (@adrhill)
  • Add LoopVectorization.jl to tests and benchmarks to speed up Tullio (#66) (@adrhill)
  • Run LRP rule tests on batches (#67) (@adrhill)
  • Fix ZBoxRule (#69) (@adrhill)
  • Refactor lrp! (#70) (@adrhill)
ExplainableAI.jl - v0.3.3

Published by github-actions[bot] over 2 years ago

ExplainableAI v0.3.3

Diff since v0.3.2

Closed issues:

  • Add model canonization (#21)

Merged pull requests:

  • Add model canonization (#51) (@adrhill)
  • Update Flux dependency to v0.13 (#53) (@adrhill)
ExplainableAI.jl - v0.3.2

Published by github-actions[bot] over 2 years ago

ExplainableAI v0.3.2

Diff since v0.3.1

Merged pull requests:

  • Add SmoothGrad and InputAugmentation (#50) (@adrhill)
ExplainableAI.jl - v0.3.1

Published by github-actions[bot] over 2 years ago

ExplainableAI v0.3.1

Diff since v0.3.0

Closed issues:

  • Support input batches (#39)

Merged pull requests:

  • Add support for batches (#46) (@adrhill)
  • Faster stabilize_denom (#47) (@adrhill)
  • Document support for batches (#48) (@adrhill)