Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement Deep Partition Aggregation #1397

Merged
merged 54 commits into from
Dec 8, 2021
Merged

Conversation

keykholt
Copy link
Collaborator

@keykholt keykholt commented Nov 8, 2021

Description

Implementation of Deep Partition Aggregation (https://arxiv.org/abs/2006.14768) as a classification estimator.

Fixes #1389

Type of change

Please check all relevant options.

  • Improvement (non-breaking)
  • Bug fix (non-breaking)
  • New feature (non-breaking)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

Testing

Please describe the tests that you ran to verify your changes. Consider listing any relevant details of your test configuration.

Tested using the included notebook poisoning_defense_deep_partition_aggregation.ipynb

Test Configuration:

  • Ubuntu 18.04.6
  • Python v3.8.8
  • ART v1.9.0
  • TensorFlow 2.4.1

Checklist

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes

Signed-off-by: Kevin Eykholt <kheykholt@gmail.com>
Signed-off-by: Kevin Eykholt <kheykholt@gmail.com>
@lgtm-com
Copy link

lgtm-com bot commented Nov 8, 2021

This pull request introduces 1 alert when merging 8b733c9 into 98627f8 - view on LGTM.com

new alerts:

  • 1 for Unused import

@codecov-commenter
Copy link

codecov-commenter commented Nov 8, 2021

Codecov Report

Merging #1397 (6acda54) into dev_1.9.0 (96ad148) will increase coverage by 0.33%.
The diff coverage is 76.78%.

Impacted file tree graph

@@              Coverage Diff              @@
##           dev_1.9.0    #1397      +/-   ##
=============================================
+ Coverage      90.18%   90.52%   +0.33%     
=============================================
  Files            234      235       +1     
  Lines          18993    19049      +56     
  Branches        3349     3365      +16     
=============================================
+ Hits           17129    17244     +115     
+ Misses          1098     1038      -60     
- Partials         766      767       +1     
Impacted Files Coverage Δ
art/estimators/classification/ensemble.py 94.82% <ø> (ø)
...timators/classification/deep_partition_ensemble.py 76.36% <76.36%> (ø)
art/estimators/classification/__init__.py 100.00% <100.00%> (ø)
art/estimators/classification/tensorflow.py 82.80% <0.00%> (+0.20%) ⬆️
art/attacks/evasion/boundary.py 93.93% <0.00%> (+1.21%) ⬆️
...timators/poison_mitigation/neural_cleanse/keras.py 93.66% <0.00%> (+23.23%) ⬆️
...poison_mitigation/neural_cleanse/neural_cleanse.py 86.48% <0.00%> (+32.43%) ⬆️

@beat-buesser beat-buesser self-assigned this Nov 8, 2021
@beat-buesser beat-buesser added the enhancement New feature or request label Nov 8, 2021
@beat-buesser beat-buesser added this to Pull request open in ART 1.9.0 via automation Nov 8, 2021
@beat-buesser beat-buesser added this to the ART 1.9.0 milestone Nov 8, 2021
@beat-buesser beat-buesser linked an issue Nov 8, 2021 that may be closed by this pull request
@beat-buesser beat-buesser changed the title DPA Implement Deep Partition Aggregation Nov 8, 2021
Signed-off-by: Kevin Eykholt <kheykholt@gmail.com>
Signed-off-by: Kevin Eykholt <kheykholt@gmail.com>
Signed-off-by: Kevin Eykholt <kheykholt@gmail.com>
Signed-off-by: Kevin Eykholt <kheykholt@gmail.com>
Signed-off-by: Kevin Eykholt <kheykholt@gmail.com>
Signed-off-by: Kevin Eykholt <kheykholt@gmail.com>
Signed-off-by: Kevin Eykholt <kheykholt@gmail.com>
Signed-off-by: Kevin Eykholt <kheykholt@gmail.com>
Signed-off-by: Kevin Eykholt <kheykholt@gmail.com>
keykholt and others added 6 commits November 29, 2021 11:01
Added extra else clause to avoid mypy error
Signed-off-by: Kevin <kheykholt@ibm.com>
Signed-off-by: Kevin Eykholt <kheykholt@gmail.com>
Signed-off-by: Kevin Eykholt <kheykholt@gmail.com>
Signed-off-by: Kevin Eykholt <kheykholt@gmail.com>
@keykholt
Copy link
Collaborator Author

keykholt commented Dec 3, 2021

Looks like the final style checks passed after modifying the code according to our discussion

Signed-off-by: Kevin Eykholt <kheykholt@gmail.com>
Signed-off-by: Kevin Eykholt <kheykholt@gmail.com>
@beat-buesser beat-buesser changed the title Implement Deep Partition Aggregation Implement Deep Partition Aggregation Dec 7, 2021
@beat-buesser beat-buesser changed the title Implement Deep Partition Aggregation Implement Deep Partition Aggregation Dec 7, 2021
@beat-buesser beat-buesser changed the base branch from dev_1.9.0 to main December 7, 2021 23:06
@beat-buesser beat-buesser changed the base branch from main to dev_1.9.0 December 7, 2021 23:06
ART 1.9.0 automation moved this from Pull request review to Pull request done Dec 7, 2021
@beat-buesser beat-buesser reopened this Dec 7, 2021
Copy link
Collaborator

@beat-buesser beat-buesser left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @keykholt Thank you very much for contributing Deep Partition Aggregation!

@beat-buesser beat-buesser merged commit 3cdd1ae into Trusted-AI:dev_1.9.0 Dec 8, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
No open projects
ART 1.9.0
  
Pull request done
Development

Successfully merging this pull request may close these issues.

Implement ensemble defense for poisoning
3 participants