diff --git a/docs/api/api_python/mindarmour.adv_robustness.attacks.rst b/docs/api/api_python/mindarmour.adv_robustness.attacks.rst index 229a596..9ad5cc1 100644 --- a/docs/api/api_python/mindarmour.adv_robustness.attacks.rst +++ b/docs/api/api_python/mindarmour.adv_robustness.attacks.rst @@ -291,7 +291,7 @@ mindarmour.adv_robustness.attacks - **NotImplementedError** - norm_level不在[2, np.inf, '2', 'inf']中。 -.. py:class:: mindarmour.adv_robustness.attacks.CarliniWagnerL2Attack(network, num_classes, box_min=0.0, box_max=1.0, bin_search_steps=5, max_iterations=1000, confidence=0, learning_rate=0.005, initial_const=0.01, abort_early_check_ratio=0.05, targeted=False, fast=True, abort_early=True, sparse=True) +.. py:class:: mindarmour.adv_robustness.attacks.CarliniWagnerL2Attack(network, num_classes, box_min=0.0, box_max=1.0, bin_search_steps=5, max_iterations=1000, confidence=0, learning_rate=5e-3, initial_const=1e-2, abort_early_check_ratio=5e-2, targeted=False, fast=True, abort_early=True, sparse=True) 使用L2范数的Carlini & Wagner攻击通过分别利用两个损失生成对抗样本:“对抗损失”可使生成的示例实际上是对抗性的,“距离损失”可以限制对抗样本的质量。 @@ -304,7 +304,7 @@ mindarmour.adv_robustness.attacks - **box_min** (float) - 目标模型输入的下界。默认值:0。 - **box_max** (float) - 目标模型输入的上界。默认值:1.0。 - **bin_search_steps** (int) - 用于查找距离和置信度之间的最优代价常数的二进制搜索的步数。默认值:5。 - - **max_itrations** (int) - 最大迭代次数,应大于零。默认值:1000。 + - **max_iterations** (int) - 最大迭代次数,应大于零。默认值:1000。 - **confidence** (float) - 对抗样本输出的置信度。默认值:0。 - **learning_rate** (float) - 攻击算法的学习率。默认值:5e-3。 - **initial_const** (float) - 用于平衡扰动范数和置信度差异的相对重要性的初始折衷常数。默认值:1e-2。 @@ -359,7 +359,7 @@ mindarmour.adv_robustness.attacks - **numpy.ndarray** - 对抗样本。 -.. py:class:: mindarmour.adv_robustness.attacks.LBFGS(network, eps=1e-05, bounds=(0.0, 1.0), is_targeted=True, nb_iter=150, search_iters=30, loss_fn=None, sparse=False) +.. py:class:: mindarmour.adv_robustness.attacks.LBFGS(network, eps=1e-5, bounds=(0.0, 1.0), is_targeted=True, nb_iter=150, search_iters=30, loss_fn=None, sparse=False) 在L-BFGS-B攻击中,使用有限内存BFGS优化算法来最小化输入与对抗样本之间的距离。 @@ -389,7 +389,7 @@ mindarmour.adv_robustness.attacks - **numpy.ndarray** - 生成的对抗样本。 -.. py:class:: mindarmour.adv_robustness.attacks.GeneticAttack(model, model_type='classification', targeted=True, reserve_ratio=0.3, sparse=True, pop_size=6, mutation_rate=0.005, per_bounds=0.15, max_steps=1000, step_size=0.2, temp=0.3, bounds=(0, 1.0), adaptive=False, c=0.1) +.. py:class:: mindarmour.adv_robustness.attacks.GeneticAttack(model, model_type='classification', targeted=True, reserve_ratio=0.3, sparse=True, pop_size=6, mutation_rate=0.005, per_bounds=0.15, max_steps=1000, step_size=0.20, temp=0.3, bounds=(0, 1.0), adaptive=False, c=0.1) 遗传攻击(Genetic Attack)表示基于遗传算法的黑盒攻击,属于差分进化算法。 @@ -478,7 +478,7 @@ mindarmour.adv_robustness.attacks - **target_images** (numpy.ndarray) - 目标图像。 -.. py:class:: mindarmour.adv_robustness.attacks.NES(model, scene, max_queries=10000, top_k=-1, num_class=10, batch_size=128, epsilon=0.3, samples_per_draw=128, momentum=0.9, learning_rate=0.001, max_lr=0.05, min_lr=0.0005, sigma=0.001, plateau_length=20, plateau_drop=2.0, adv_thresh=0.25, zero_iters=10, starting_eps=1.0, starting_delta_eps=0.5, label_only_sigma=0.001, conservative=2, sparse=True) +.. py:class:: mindarmour.adv_robustness.attacks.NES(model, scene, max_queries=10000, top_k=-1, num_class=10, batch_size=128, epsilon=0.3, samples_per_draw=128, momentum=0.9, learning_rate=1e-3, max_lr=0.05, min_lr=5e-4, sigma=1e-3, plateau_length=20, plateau_drop=2.0, adv_thresh=0.25, zero_iters=10, starting_eps=1.0, starting_delta_eps=0.5, label_only_sigma=0.001, conservative=2, sparse=True) 该类是自然进化策略(Natural Evolutionary Strategies,NES)攻击法的实现。NES使用自然进化策略来估计梯度,以提高查询效率。NES包括三个设置:Query-Limited设置、Partial-Information置和Label-Only设置。在query-limit设置中,攻击对目标模型的查询数量有限,但可以访问所有类的概率。在partial-info设置中,攻击仅有权访问top-k类的概率。 在label-only设置中,攻击只能访问按其预测概率排序的k个推断标签列表。在Partial-Information设置和Label-Only设置中,NES会进行目标攻击,因此用户需要使用set_target_images方法来设置目标类的目标图像。 @@ -550,7 +550,7 @@ mindarmour.adv_robustness.attacks - **model** (BlackModel) - 目标模型。 - **max_iter** (int) - 生成对抗图像的最大迭代轮数。默认值:1000。 - - **search_ter** (int) - 二进制搜索的最大轮数。默认值:10。 + - **search_iter** (int) - 二进制搜索的最大轮数。默认值:10。 - **is_targeted** (bool) - 如果为True,则为目标攻击。如果为False,则为无目标攻击。默认值:False。 - **init_attack** (Attack) - 用于查找起点的攻击。默认值:None。 - **sparse** (bool) - 如果为True,则输入标签为稀疏编码。如果为False,则输入标签为onehot编码。默认值:True。 diff --git a/docs/api/api_python/mindarmour.adv_robustness.detectors.rst b/docs/api/api_python/mindarmour.adv_robustness.detectors.rst index 1eb53d3..96c6215 100644 --- a/docs/api/api_python/mindarmour.adv_robustness.detectors.rst +++ b/docs/api/api_python/mindarmour.adv_robustness.detectors.rst @@ -50,7 +50,7 @@ mindarmour.adv_robustness.detectors **返回:** - - **float** - 区分对抗样本和良性样本的阈值。 + - **float** - 区分对抗样本和良性样本的阈值。 .. py:method:: set_threshold(threshold) @@ -372,7 +372,7 @@ mindarmour.adv_robustness.detectors - **list[int]** - 相邻检测之间的查询数。 - .. py:method:: set_threshold(threshold) + .. py:method:: set_threshold(threshold, num_of_neighbors) 设置参数num_of_neighbors和threshold。 diff --git a/docs/api/api_python/mindarmour.fuzz_testing.rst b/docs/api/api_python/mindarmour.fuzz_testing.rst index 5f8eea7..a3409e5 100644 --- a/docs/api/api_python/mindarmour.fuzz_testing.rst +++ b/docs/api/api_python/mindarmour.fuzz_testing.rst @@ -37,11 +37,11 @@ mindarmour.fuzz_testing 'params': {'eps': [0.3, 0.2, 0.4], 'alpha': [0.1], 'bounds': [(0, 1)]}}] ...] - - 支持的方法在列表 `self._strategies` 中,每个方法的参数必须在可选参数的范围内。支持的方法分为两种类型: - - 首先,自然鲁棒性方法包括:'Translate', 'Scale'、'Shear'、'Rotate'、'Perspective'、'Curve'、'GaussianBlur'、'MotionBlur'、'GradientBlur'、'Contrast'、'GradientLuminance'、'UniformNoise'、'GaussianNoise'、'SaltAndPepperNoise'、'NaturalNoise'。 - - 其次,对抗样本攻击方式包括:'FGSM'、'PGD'和'MDIM'。'FGSM'、'PGD'和'MDIM'分别是 FastGradientSignMethod、ProjectedGradientDent和MomentumDiverseInputIterativeMethod的缩写。 `mutate_config` 必须包含在['Contrast', 'GradientLuminance', 'GaussianBlur', 'MotionBlur', 'GradientBlur', 'UniformNoise', 'GaussianNoise', 'SaltAndPepperNoise', 'NaturalNoise']中的方法。 + - 支持的方法在列表 `self._strategies` 中,每个方法的参数必须在可选参数的范围内。支持的方法分为两种类型: + - 首先,自然鲁棒性方法包括:'Translate', 'Scale'、'Shear'、'Rotate'、'Perspective'、'Curve'、'GaussianBlur'、'MotionBlur'、'GradientBlur'、'Contrast'、'GradientLuminance'、'UniformNoise'、'GaussianNoise'、'SaltAndPepperNoise'、'NaturalNoise'。 + - 其次,对抗样本攻击方式包括:'FGSM'、'PGD'和'MDIM'。'FGSM'、'PGD'和'MDIM'分别是 FastGradientSignMethod、ProjectedGradientDent和MomentumDiverseInputIterativeMethod的缩写。 `mutate_config` 必须包含在['Contrast', 'GradientLuminance', 'GaussianBlur', 'MotionBlur', 'GradientBlur', 'UniformNoise', 'GaussianNoise', 'SaltAndPepperNoise', 'NaturalNoise']中的方法。 - - 第一类方法的参数设置方式可以在'mindarmour/natural_robustness/transform/image'中看到。第二类方法参数配置参考 `self._attack_param_checklists` 。 + - 第一类方法的参数设置方式可以在'mindarmour/natural_robustness/transform/image'中看到。第二类方法参数配置参考 `self._attack_param_checklists` 。 - **initial_seeds** (list[list]) - 用于生成变异样本的初始种子队列。初始种子队列的格式为[[image_data, label], [...], ...],且标签必须为one-hot。 - **coverage** (CoverageMetrics) - 神经元覆盖率指标类。 - **evaluate** (bool) - 是否返回评估报告。默认值:True。 diff --git a/docs/api/api_python/mindarmour.privacy.diff_privacy.rst b/docs/api/api_python/mindarmour.privacy.diff_privacy.rst index c0d6da4..737666b 100644 --- a/docs/api/api_python/mindarmour.privacy.diff_privacy.rst +++ b/docs/api/api_python/mindarmour.privacy.diff_privacy.rst @@ -26,7 +26,7 @@ mindarmour.privacy.diff_privacy - **Tensor** - 生成的shape与给定梯度相同的噪声。 -.. py:class:: mindarmour.privacy.diff_privacy.NoiseAdaGaussianRandom(norm_bound=1.0, initial_noise_multiplier=1.0, seed=0, noise_decay_rate=6e-06, decay_policy='Exp') +.. py:class:: mindarmour.privacy.diff_privacy.NoiseAdaGaussianRandom(norm_bound=1.0, initial_noise_multiplier=1.0, seed=0, noise_decay_rate=6e-6, decay_policy='Exp') 自适应高斯噪声产生机制。噪音会随着训练而衰减。衰减模式可以是'Time'、'Step'、'Exp'。 在模型训练过程中,将更新 `self._noise_multiplier` 。 @@ -77,7 +77,7 @@ mindarmour.privacy.diff_privacy **参数:** - - **empirical_fraction** (Tensor) - 梯度裁剪的经验分位数。 + - **empirical_fraction** (Tensor) - 梯度裁剪的经验分位数,最大值不超过 `target_unclipped_quantile` 。 - **norm_bound** (Tensor) - 梯度的l2范数的裁剪范围。 **返回:** @@ -90,7 +90,7 @@ mindarmour.privacy.diff_privacy 详情请查看: `教程 `_。 - .. py:method:: create(mech_name, norm_bound=1.0, initial_noise_multiplier=1.0, seed=0, noise_decay_rate=6e-06, decay_policy=None) + .. py:method:: create(mech_name, norm_bound=1.0, initial_noise_multiplier=1.0, seed=0, noise_decay_rate=6e-6, decay_policy=None) **参数:** @@ -156,7 +156,7 @@ mindarmour.privacy.diff_privacy - **Callback** - 隐私监视器。 -.. py:class:: mindarmour.privacy.diff_privacy.RDPMonitor(num_samples, batch_size, initial_noise_multiplier=1.5, max_eps=10.0, target_delta=0.001, max_delta=None, target_eps=None, orders=None, noise_decay_mode='Time', noise_decay_rate=0.0006, per_print_times=50, dataset_sink_mode=False) +.. py:class:: mindarmour.privacy.diff_privacy.RDPMonitor(num_samples, batch_size, initial_noise_multiplier=1.5, max_eps=10.0, target_delta=1e-3, max_delta=None, target_eps=None, orders=None, noise_decay_mode='Time', noise_decay_rate=6e-4, per_print_times=50, dataset_sink_mode=False) 基于Renyi差分隐私(RDP)理论,计算DP训练的隐私预算。根据下面的参考文献,如果随机化机制被认为具有α阶的ε'-Renyi差分隐私,它也满足常规差分隐私(ε, δ),如下所示: diff --git a/docs/api/api_python/mindarmour.privacy.evaluation.rst b/docs/api/api_python/mindarmour.privacy.evaluation.rst index 1c3aaee..554591f 100644 --- a/docs/api/api_python/mindarmour.privacy.evaluation.rst +++ b/docs/api/api_python/mindarmour.privacy.evaluation.rst @@ -55,7 +55,7 @@ mindarmour.privacy.evaluation [{"method": "knn", "params": {"n_neighbors": [3, 5, 7]}}, {"method": "lr", "params": {"C": np.logspace(-4, 2, 10)}}] - - 支持的方法有knn、lr、mlp和rf,每个方法的参数必须在可变参数的范围内。参数实现的提示可在下面找到: + - 支持的方法有knn、lr、mlp和rf,每个方法的参数必须在可变参数的范围内。参数实现的提示可在下面找到: - `KNN `_, - `LR `_, - `RF `_, @@ -107,6 +107,7 @@ mindarmour.privacy.evaluation 根据target_features重建图像。 **参数:** + - **target_features** (numpy.ndarray) - 原始图像的深度表示。 `target_features` 的第一个维度应该是img_num。需要注意的是,如果img_num等于1,则 `target_features` 的形状应该是(1, dim2, dim3, ...)。 - **iters** (int) - 逆向攻击的迭代次数,应为正整数。默认值:100。 diff --git a/docs/api/api_python/mindarmour.privacy.sup_privacy.rst b/docs/api/api_python/mindarmour.privacy.sup_privacy.rst index f2b8f29..36b7ea0 100644 --- a/docs/api/api_python/mindarmour.privacy.sup_privacy.rst +++ b/docs/api/api_python/mindarmour.privacy.sup_privacy.rst @@ -49,7 +49,7 @@ mindarmour.privacy.sup_privacy 详情请查看: `教程 `_。 - .. py:method:: create(networks, mask_layers, policy='local_train', end_epoch=10, batch_num=20, start_epoch=3, mask_times=1000, lr=0.05, sparse_end=0.9, sparse_start=0.0) + .. py:method:: create(networks, mask_layers, policy='local_train', end_epoch=10, batch_num=20, start_epoch=3, mask_times=1000, lr=0.05, sparse_end=0.90, sparse_start=0.0) **参数:** @@ -168,14 +168,13 @@ mindarmour.privacy.sup_privacy - **cur_step** (int) - 整个训练过程的当前步骤。 - **cur_step_in_epoch** (int) - 当前epoch的当前步骤。 -.. py:class:: mindarmour.privacy.sup_privacy.MaskLayerDes(layer_name, grad_idx, is_add_noise, is_lower_clip, min_num, upper_bound=1.2) +.. py:class:: mindarmour.privacy.sup_privacy.MaskLayerDes(layer_name, grad_idx, is_add_noise, is_lower_clip, min_num, upper_bound=1.20) 描述需要抑制的层。 **参数:** - **layer_name** (str) - 层名称,如下获取一个层的名称: - .. code-block:: for layer in networks.get_parameters(expand=True): diff --git a/docs/api/api_python/mindarmour.rst b/docs/api/api_python/mindarmour.rst index 226a7b2..49cc9e2 100644 --- a/docs/api/api_python/mindarmour.rst +++ b/docs/api/api_python/mindarmour.rst @@ -192,11 +192,11 @@ MindArmour是MindSpore的工具箱,用于增强模型可信,实现隐私保 'params': {'eps': [0.3, 0.2, 0.4], 'alpha': [0.1], 'bounds': [(0, 1)]}}] ...] - - 支持的方法在列表 `self._strategies` 中,每个方法的参数必须在可选参数的范围内。支持的方法分为两种类型: - - 首先,自然鲁棒性方法包括:'Translate', 'Scale'、'Shear'、'Rotate'、'Perspective'、'Curve'、'GaussianBlur'、'MotionBlur'、'GradientBlur'、'Contrast'、'GradientLuminance'、'UniformNoise'、'GaussianNoise'、'SaltAndPepperNoise'、'NaturalNoise'。 - - 其次,对抗样本攻击方式包括:'FGSM'、'PGD'和'MDIM'。'FGSM'、'PGD'和'MDIM'分别是 FastGradientSignMethod、ProjectedGradientDent和MomentumDiverseInputIterativeMethod的缩写。 `mutate_config` 必须包含在['Contrast', 'GradientLuminance', 'GaussianBlur', 'MotionBlur', 'GradientBlur', 'UniformNoise', 'GaussianNoise', 'SaltAndPepperNoise', 'NaturalNoise']中的方法。 + - 支持的方法在列表 `self._strategies` 中,每个方法的参数必须在可选参数的范围内。支持的方法分为两种类型: + - 首先,自然鲁棒性方法包括:'Translate', 'Scale'、'Shear'、'Rotate'、'Perspective'、'Curve'、'GaussianBlur'、'MotionBlur'、'GradientBlur'、'Contrast'、'GradientLuminance'、'UniformNoise'、'GaussianNoise'、'SaltAndPepperNoise'、'NaturalNoise'。 + - 其次,对抗样本攻击方式包括:'FGSM'、'PGD'和'MDIM'。'FGSM'、'PGD'和'MDIM'分别是 FastGradientSignMethod、ProjectedGradientDent和MomentumDiverseInputIterativeMethod的缩写。 `mutate_config` 必须包含在['Contrast', 'GradientLuminance', 'GaussianBlur', 'MotionBlur', 'GradientBlur', 'UniformNoise', 'GaussianNoise', 'SaltAndPepperNoise', 'NaturalNoise']中的方法。 - - 第一类方法的参数设置方式可以在 `mindarmour/natural_robustness/transform/image `_ 中看到。第二类方法参数配置参考 `self._attack_param_checklists` 。 + - 第一类方法的参数设置方式可以在 `mindarmour/natural_robustness/transform/image `_ 中看到。第二类方法参数配置参考 `self._attack_param_checklists` 。 - **initial_seeds** (list[list]) - 用于生成变异样本的初始种子队列。初始种子队列的格式为[[image_data, label], [...], ...],且标签必须为one-hot。 - **coverage** (CoverageMetrics) - 神经元覆盖率指标类。 - **evaluate** (bool) - 是否返回评估报告。默认值:True。 @@ -229,7 +229,7 @@ MindArmour是MindSpore的工具箱,用于增强模型可信,实现隐私保 - **micro_batches** (int) - 从原始批次拆分的小批次数。默认值:2。 - **norm_bound** (float) - 用于剪裁绑定,如果设置为1,将返回原始数据。默认值:1.0。 - - **norm_bound** (float) - 对象可以生成不同类型的噪音。默认值:None。 + - **norm_mech** (float) - 对象可以生成不同类型的噪音。默认值:None。 - **clip_mech** (Mechanisms) - 该对象用于更新自适应剪裁。默认值:None。 **异常:** @@ -288,7 +288,7 @@ MindArmour是MindSpore的工具箱,用于增强模型可信,实现隐私保 [{"method": "knn", "params": {"n_neighbors": [3, 5, 7]}}, {"method": "lr", "params": {"C": np.logspace(-4, 2, 10)}}] - - 支持的方法有knn、lr、mlp和rf,每个方法的参数必须在可变参数的范围内。参数实现的提示可在下面找到: + - 支持的方法有knn、lr、mlp和rf,每个方法的参数必须在可变参数的范围内。参数实现的提示可在下面找到: - `KNN `_ , - `LR `_ , - `RF `_ , @@ -318,7 +318,7 @@ MindArmour是MindSpore的工具箱,用于增强模型可信,实现隐私保 - **ValueError** - input_shape的值都不是正int。 - **ValueError** - loss_weights的值都不是正值。 - .. py:method:: evaluate(original_images, inversion_images, labels=None, new_network=None) + .. py:method:: evaluate(original_images, inversion_images, labels=None, new_network=None) 通过三个指标评估还原图像的质量:原始图像和还原图像之间的平均L2距离和SSIM值,以及新模型对还原图像的推理结果在真实标签上的置信度平均值。