trickster.optim

Everything needed to run the experiments in the optimal setting.

class trickster.optim.BenchCost(problem_ctx)

Alternative cost function used for analyses and stats.

__call__(x, another)

Call self as a function.

class trickster.optim.CategoricalLpProblemContext(clf: Any, target_class: float, target_confidence: float = 0.5, epsilon: float = 1.0, lp_space=1, expansion_specs: List[trickster.domain.categorical.FeatureExpansionSpec] = NOTHING)

Context for an optimal search instance in Lp space with categorical transformations.

Parameters:
  • clf – Target classifier.
  • target_class – Target class.
  • target_confidence – Target class confidence.
  • lp_space (LpSpace) – $$L_p$$ space.
  • epsilon – Runtime-optimality trade-off parameter. 1 means optimal. More is sub-optimal but faster.
  • expansion_specs – List of categorical expansion specs (trickster.domain.categorical.FeatureExpansionSpec)
>>> problem_ctx = CategoricalLpProblemContext(
...     clf="stub", target_class=1, target_confidence=0.5,
...     lp_space="inf", epsilon=10)
get_graph_search_problem(x)

Generate an instance of graph search problem.

class trickster.optim.GoalFunc(problem_ctx)

Tells whether an example flips the decision of the classifier.

__call__(x)

Call self as a function.

class trickster.optim.SpecExpandFunc(problem_ctx, weight_vec=None)

Expand candidates using given specs with each transformation having $L_p$ cost.

__call__(x)

Call self as a function.

trickster.optim.run_experiment(problem_ctx, data, confidence_margin=1.0, reduce_classifier=True, transformable_feature_idxs=None, make_graph_search_problem=None, get_cost_weights_fn=None, graph_search_kwargs=None, logger=None)

Experiment runner for optimal setting in categorical feature space.

An experiment finds adversarial examples for a given model and a given dataset.

Parameters:
  • problem_ctx (trickster.base.ProblemContext) – Search problem context.
  • data – Data tuple (X, y)
  • confidence_margin (float) – Pick initial examples that are at most this far away from the target confidence. Use this to get to relax the problem.
  • reduce_classifier (bool) – Whether to use trickster.linear.create_reduced_linear_classifier() if possible.
  • transformable_feature_idxs (list) –
  • graph_search_kwargs (dict) – Parameters passed to the search function call.
  • logger – Logger instance.