Skip to content

Commit

Permalink
Merge branch 'Koukyosyumei:main' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
b34c0n5 authored Apr 1, 2024
2 parents 0fbb864 + dbb5632 commit 2fae615
Show file tree
Hide file tree
Showing 14 changed files with 15 additions and 1 deletion.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -234,6 +234,8 @@ Below you can find a list of papers and books that either use or extend AIJack.
- Kapoor, Amita, and Sharmistha Chatterjee. Platform and Model Design for Responsible AI: Design and build resilient, private, fair, and transparent machine learning models. Packt Publishing Ltd, 2023.
- Mi, Yuxi, et al. "Flexible Differentially Private Vertical Federated Learning with Adaptive Feature Embeddings." arXiv preprint arXiv:2308.02362 (2023).
- Mohammadi, Mohammadreza, et al. "Privacy-preserving Federated Learning System for Fatigue Detection." 2023 IEEE International Conference on Cyber Security and Resilience (CSR). IEEE, 2023.
- Huang, Shiyuan. A General Framework for Model Adaptation to Meet Practical Constraints in Computer Vision. Diss. Columbia University, 2024.
- Liu, Can, Jin Wang, and Dongyang Yu. "RAF-GI: Towards Robust, Accurate and Fast-Convergent Gradient Inversion Attack in Federated Learning." arXiv preprint arXiv:2403.08383 (2024).

# Contact

Expand Down
1 change: 1 addition & 0 deletions src/aijack/attack/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
"""Submodule for attack algorithms against machine learning.
"""

from .base_attack import BaseAttacker # noqa: F401
from .evasion import ( # noqa: F401
DIVAWhiteBoxAttacker,
Expand Down
1 change: 1 addition & 0 deletions src/aijack/attack/evasion/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
"""Subpackage for evasion attack, which creates a malicious data that the target
machine learning model cannot correctly classify.
"""

from .diva import DIVAWhiteBoxAttacker # noqa: F401
from .evasion_attack import Evasion_attack_sklearn # noqa: F401
from .fgsm import FGSMAttacker # noqa: F401
Expand Down
1 change: 1 addition & 0 deletions src/aijack/attack/inversion/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
"""Subpackage for model inversion attack, which reconstructs the private data from
the trained machine learning models.
"""

from .gan_attack import GANAttackClientManager, attach_ganattack_to_client # noqa: F401
from .generator_attack import Generator_Attack # noqa: F401
from .gradientinversion import GradientInversion_Attack # noqa: F401
Expand Down
1 change: 1 addition & 0 deletions src/aijack/attack/labelleakage/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
"""Subpackage for label leakage attack, which infere the private label information of the training dataset.
"""

from .normattack import ( # noqa: F401
NormAttackSplitNNManager,
attach_normattack_to_splitnn,
Expand Down
1 change: 1 addition & 0 deletions src/aijack/attack/membership/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
"""Subpackage for membership inference attack, which reveals the confidential information
about whether the target data is in the training dataset or not.
"""

from .membership_inference import ShadowMembershipInferenceAttack # noqa: F401

__all__ = ["ShadowMembershipInferenceAttack"]
1 change: 1 addition & 0 deletions src/aijack/attack/poison/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
"""Subpackage for poisoning attack, which inserts malicious data to the training dataset,
so that the performance of the trained machine learning model will degregate.
"""

from .history import HistoryAttackClientWrapper # noqa: F401
from .label_flip import LabelFlipAttackClientManager # noqa: F401
from .mapf import MAPFClientWrapper # noqa: F401
Expand Down
1 change: 1 addition & 0 deletions src/aijack/collaborative/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
"""Subpackage for collaborative learning, where multiple clients trains a single
global model without sharing their local datasets.
"""

from .core import BaseClient, BaseServer # noqa: F401
from .dsfl import DSFLAPI, DSFLClient, DSFLServer # noqa : F401
from .fedavg import ( # noqa: F401
Expand Down
1 change: 1 addition & 0 deletions src/aijack/collaborative/core/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
"""Subpackge implementing abstract classes for collaborative learning.
"""

from .api import BaseFedAPI, BaseFLKnowledgeDistillationAPI # noqa : F401
from .client import BaseClient # noqa: F401
from .server import BaseServer # noqa: F401
Expand Down
1 change: 1 addition & 0 deletions src/aijack/collaborative/dsfl/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
"""Implementation of DS-FL, `Itahara, Sohei, et al. "Distillation-based semi-supervised federated learning for
communication-efficient collaborative training with non-iid private data.
" arXiv preprint arXiv:2008.06180 (2020).`"""

from .api import DSFLAPI # noqa : F401
from .client import DSFLClient # noqa : F401
from .server import DSFLServer # noqa : F401
1 change: 1 addition & 0 deletions src/aijack/collaborative/fedgems/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
"""Implementation of `Cheng, Sijie, et al. "FedGEMS: Federated Learning of Larger
Server Models via Selective Knowledge Fusion." arXiv preprint arXiv:2110.11027 (2021).`"""

from .api import FedGEMSAPI # noqa: F401
from .client import FedGEMSClient # noqa : F401
from .server import FedGEMSServer # noqa: F401
Expand Down
1 change: 1 addition & 0 deletions src/aijack/collaborative/optimizer/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
"""Implementation of basic collaborative optimizers for neural network
"""

from .adam import AdamFLOptimizer # noqa: F401
from .sgd import SGDFLOptimizer # noqa: F401

Expand Down
1 change: 1 addition & 0 deletions src/aijack/defense/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
"""Subpackage for defense algorithms for machine learning models.
"""

from .dp import DPSGDManager, GeneralMomentAccountant # noqa: F401
from .mid import VIB, KL_between_normals, mib_loss # noqa:F401
from .paillier import PaillierGradientClientManager, PaillierKeyGenerator # noqa: F401
Expand Down
2 changes: 1 addition & 1 deletion test/attack/inversion/test_ganattack.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ def __init__(self, nz, nc, ngf):
nn.ReLU(True),
# state size. (ngf*2) x 16 x 16
nn.ConvTranspose2d(ngf * 1, 1, 4, 2, 1, bias=False),
nn.Tanh()
nn.Tanh(),
# state size. (nc) x 64 x 64
)

Expand Down

0 comments on commit 2fae615

Please sign in to comment.