Documentation for Modelpoison Module¶
This module provides classes for model poisoning attacks, allowing for the simulation of model poisoning by adding different types of noise to model parameters.
Classes: - ModelPoisonAttack: Main attack class that implements the ModelAttack interface - ModelPoisoningStrategy: Abstract base class for model poisoning strategies - GaussianNoiseStrategy: Implementation for Gaussian noise poisoning - SaltNoiseStrategy: Implementation for salt noise poisoning - SaltAndPepperNoiseStrategy: Implementation for salt-and-pepper noise poisoning
GaussianNoiseStrategy
¶
Bases: ModelPoisoningStrategy
Implementation of Gaussian noise poisoning strategy.
Source code in nebula/addons/attacks/model/modelpoison.py
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
|
apply_noise(model, poisoned_noise_percent)
¶
Applies Gaussian-distributed additive noise to model parameters.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
model
|
OrderedDict
|
The model's parameters organized as an OrderedDict |
required |
poisoned_noise_percent
|
float
|
Percentage of noise to apply (0-100) |
required |
Returns:
Type | Description |
---|---|
OrderedDict
|
Modified model parameters with Gaussian noise |
Source code in nebula/addons/attacks/model/modelpoison.py
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
|
ModelPoisonAttack
¶
Bases: ModelAttack
Implements a model poisoning attack by modifying the received model weights during the aggregation process.
Source code in nebula/addons/attacks/model/modelpoison.py
172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 |
|
__init__(engine, attack_params)
¶
Initialize the model poisoning attack.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
engine
|
The engine managing the attack context |
required | |
attack_params
|
Dict
|
Dictionary containing attack parameters |
required |
Source code in nebula/addons/attacks/model/modelpoison.py
178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 |
|
model_attack(received_weights)
¶
Applies the model poisoning attack by modifying the received model weights.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
received_weights
|
OrderedDict
|
The aggregated model weights to be poisoned |
required |
Returns:
Type | Description |
---|---|
OrderedDict
|
The modified model weights after applying the poisoning attack |
Source code in nebula/addons/attacks/model/modelpoison.py
209 210 211 212 213 214 215 216 217 218 219 |
|
ModelPoisoningStrategy
¶
Bases: ABC
Abstract base class for model poisoning strategies.
Source code in nebula/addons/attacks/model/modelpoison.py
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
|
apply_noise(model, poisoned_noise_percent)
abstractmethod
¶
Abstract method to apply noise to model parameters.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
model
|
OrderedDict
|
The model's parameters organized as an OrderedDict |
required |
poisoned_noise_percent
|
float
|
Percentage of noise to apply (0-100) |
required |
Returns:
Type | Description |
---|---|
OrderedDict
|
Modified model parameters with noise applied |
Source code in nebula/addons/attacks/model/modelpoison.py
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
|
SaltAndPepperNoiseStrategy
¶
Bases: ModelPoisoningStrategy
Implementation of salt-and-pepper noise poisoning strategy.
Source code in nebula/addons/attacks/model/modelpoison.py
131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 |
|
apply_noise(model, poisoned_noise_percent)
¶
Applies salt-and-pepper noise to model parameters.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
model
|
OrderedDict
|
The model's parameters organized as an OrderedDict |
required |
poisoned_noise_percent
|
float
|
Percentage of noise to apply (0-100) |
required |
Returns:
Type | Description |
---|---|
OrderedDict
|
Modified model parameters with salt-and-pepper noise |
Source code in nebula/addons/attacks/model/modelpoison.py
134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 |
|
SaltNoiseStrategy
¶
Bases: ModelPoisoningStrategy
Implementation of salt noise poisoning strategy.
Source code in nebula/addons/attacks/model/modelpoison.py
90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 |
|
apply_noise(model, poisoned_noise_percent)
¶
Applies salt noise to model parameters.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
model
|
OrderedDict
|
The model's parameters organized as an OrderedDict |
required |
poisoned_noise_percent
|
float
|
Percentage of noise to apply (0-100) |
required |
Returns:
Type | Description |
---|---|
OrderedDict
|
Modified model parameters with salt noise |
Source code in nebula/addons/attacks/model/modelpoison.py
93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 |
|