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

Update Readme ad Format #174

Merged
merged 2 commits into from
Mar 20, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading