holisticai.robustness.metrics.empirical_robustness#

holisticai.robustness.metrics.empirical_robustness(x, adv_x, y_pred, y_adv_pred, norm=2) float[source]#

Calculate the empirical robustness of an adversarial example.

Parameters

xarray-like

The original input.

adv_xarray-like

The adversarial input.

y_predarray-like

The predicted labels for the original input.

y_adv_predarray-like

The predicted labels for the adversarial input.

normint (optional)

The norm to be used for calculating the perturbation. Defaults to 2.

Returns

float

The empirical robustness value.

Examples

>>> import numpy as np
>>> from holisticai.robustness.metrics import empirical_robustness
>>> x = np.array([[1, 2, 3], [4, 5, 6]])
>>> adv_x = np.array([[1.1, 2.2, 3.3], [4.4, 5.5, 6.6]])
>>> y_pred = np.array([0, 1])
>>> y_adv_pred = np.array([1, 1])
>>> empirical_robustness(x, adv_x, y_pred, y_adv_pred)
0.09999999999999999