def __init__(self,
                 end2end_model: CClassifierEnd2EndMalware,
                 indexes_to_perturb: list,
                 iterations: int = 100,
                 is_debug: bool = False,
                 random_init: bool = False,
                 threshold: float = 0.5,
                 penalty_regularizer: float = 0,
                 store_checkpoints: int = None):
        CAttackEvasion.__init__(
            self,
            end2end_model,
            end2end_model,
        )
        self.iterations = iterations
        self.is_debug = is_debug
        self.indexes_to_perturb = indexes_to_perturb
        self.confidences_ = []
        self.changes_per_iterations_ = []

        self.random_init = random_init

        self.embedding_size = end2end_model.get_embedding_size()
        self.max_input_length = end2end_model.get_input_max_length()
        self.invalid_pos = end2end_model.get_embedding_value()
        self.embedding_value = end2end_model.get_embedding_value()
        self.shift_values = end2end_model.get_is_shifting_values()

        self._invalid_value = torch.tensor([np.infty])

        self.threshold = threshold
        self.penalty_regularizer = penalty_regularizer

        self.store_checkpoints = store_checkpoints
Esempio n. 2
0
    def __init__(
        self,
        problem: CBlackBoxProblem,
        is_debug: bool = False,
    ):
        """
		Create and instance of the genetic optimizer.

		Parameters
		----------
		problem : CBlackBoxProblem
			The problem to optimize
		is_debug : bool, default False
			If True, debug prints will be displayed during the attack.
			Default is False
		"""
        CAttackEvasion.__init__(
            self,
            problem.model_wrapper.classifier,
            problem.model_wrapper.classifier,
        )
        self.problem = problem
        self.confidences_ = []
        self.fitness_ = []
        self.sizes_ = []
        self.changes_per_iterations_ = []
        self.model_wrapper = problem.model_wrapper
        self.is_debug = is_debug
        self._original_x = None
        self.minimization_result_ = []
        self.evolved_problem_ = None
        self.stagnation = 5
        self.elapsed_time_ = 0
 def __init__(self, problem: CBlackBoxProblem, is_debug: bool = False):
     CAttackEvasion.__init__(
         self,
         problem.model_wrapper.classifier,
         problem.model_wrapper.classifier,
         surrogate_data=CDataset(CArray([[0], [1]]), CArray([0, 1])),
         y_target=None,
     )
     self.problem = problem
     self.confidences_ = []
     self.changes_per_iterations_ = []
     self.model_wrapper = problem.model_wrapper
     self.is_debug = is_debug
     self._original_x = None
     self.minimization_result_ = []
Esempio n. 4
0
 def __init__(
     self,
     problem: CBlackBoxProblem,
     is_debug: bool = False,
 ):
     CAttackEvasion.__init__(
         self,
         problem.model_wrapper.classifier,
         problem.model_wrapper.classifier,
     )
     self.problem = problem
     self.confidences_ = []
     self.fitness_ = []
     self.sizes_ = []
     self.changes_per_iterations_ = []
     self.model_wrapper = problem.model_wrapper
     self.is_debug = is_debug
     self._original_x = None
     self.minimization_result_ = []
     self.evolved_problem_ = None
     self.stagnation = 5