diff --git a/README.md b/README.md index 5474c1f1..adf69e22 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ # What is AIJack? -AIJack is an easy-to-use open-source simulation tool for testing the security of your AI system against hijackers. It provides advanced security techniques like *Differential Privacy*, *Homomorphic Encryption*, *K-anonymity* and *Federated Learning* to guarantee protection for your AI. With AIJack, you can test and simulate defenses against various attacks such as *Poisoning*, *Model Inversion*, *Backdoor*, and *Free-Rider*. We support more than 30 state-of-the-art methods. For more information, check our [documentation](https://koukyosyumei.github.io/AIJack/) and start securing your AI today with AIJack. +AIJack is an easy-to-use open-source simulation tool for testing the security of your AI system against hijackers. It provides advanced security techniques like *Differential Privacy*, *Homomorphic Encryption*, *K-anonymity* and *Federated Learning* to guarantee protection for your AI. With AIJack, you can test and simulate defenses against various attacks such as *Poisoning*, *Model Inversion*, *Backdoor*, and *Free-Rider*. We support more than 30 state-of-the-art methods. For more information, check our [paper](https://arxiv.org/abs/2312.17667) and [documentation](https://koukyosyumei.github.io/AIJack/) and start securing your AI today with AIJack. # Installation @@ -237,6 +237,10 @@ Below you can find a list of papers and books that either use or extend AIJack. - 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). +# Contribution + +AIJack welcomes contributions of any kind. If you'd like to address a bug or propose a new feature, please refer to [our guide](docs/source/contribution.rst). + # Contact welcome2aijack[@]gmail.com diff --git a/src/aijack/defense/dp/manager/accountant.py b/src/aijack/defense/dp/manager/accountant.py index 7b31e78c..38a51944 100644 --- a/src/aijack/defense/dp/manager/accountant.py +++ b/src/aijack/defense/dp/manager/accountant.py @@ -73,6 +73,7 @@ def calc_upperbound_of_rdp_onestep(self, alpha, noise_params, sampling_rate): Returns: float: Upper bound of RDP for one step. """ + key = hash( f"{alpha}_{list(noise_params.keys())[0]}_{list(noise_params.values())[0]}_{sampling_rate}" ) @@ -101,6 +102,7 @@ def _calc_upperbound_of_rdp(self, lam, steps_info): Returns: float: Upper bound of RDP. """ + rdp = 0.0 for noise_params, sampling_rate, num_steps in steps_info: rdp += num_steps * self.calc_upperbound_of_rdp_onestep(