alibi_detect.utils.pytorch.distance module

alibi_detect.utils.pytorch.distance.batch_compute_kernel_matrix(x, y, kernel, device=None, batch_size=10000000000, preprocess_fn=None)[source]

Compute the kernel matrix between x and y by filling in blocks of size batch_size x batch_size at a time.

Parameters:
  • x (Union[list, ndarray, Tensor]) – Reference set.

  • y (Union[list, ndarray, Tensor]) – Test set.

  • kernel (Union[Module, Sequential]) – PyTorch module.

  • device (Optional[device]) – Device type used. The default None tries to use the GPU and falls back on CPU if needed. Can be specified by passing either torch.device(‘cuda’) or torch.device(‘cpu’).

  • batch_size (int) – Batch size used during prediction.

  • preprocess_fn (Optional[Callable[..., Tensor]]) – Optional preprocessing function for each batch.

Return type:

Tensor

Returns:

Kernel matrix in the form of a torch tensor

alibi_detect.utils.pytorch.distance.mmd2(x, y, kernel)[source]

Compute MMD^2 between 2 samples.

Parameters:
  • x (Tensor) – Batch of instances of shape [Nx, features].

  • y (Tensor) – Batch of instances of shape [Ny, features].

  • kernel (Callable) – Kernel function.

Return type:

float

Returns:

MMD^2 between the samples x and y.

alibi_detect.utils.pytorch.distance.mmd2_from_kernel_matrix(kernel_mat, m, permute=False, zero_diag=True)[source]

Compute maximum mean discrepancy (MMD^2) between 2 samples x and y from the full kernel matrix between the samples.

Parameters:
  • kernel_mat (Tensor) – Kernel matrix between samples x and y.

  • m (int) – Number of instances in y.

  • permute (bool) – Whether to permute the row indices. Used for permutation tests.

  • zero_diag (bool) – Whether to zero out the diagonal of the kernel matrix.

Return type:

Tensor

Returns:

MMD^2 between the samples from the kernel matrix.

alibi_detect.utils.pytorch.distance.permed_lsdds(k_all_c, x_perms, y_perms, H, H_lam_inv=None, lam_rd_max=0.2, return_unpermed=False)[source]

Compute LSDD estimates from kernel matrix across various ref and test window samples

Parameters:
  • k_all_c (Tensor) – Kernel matrix of similarities between all samples and the kernel centers.

  • x_perms (List[Tensor]) – List of B reference window index vectors

  • y_perms (List[Tensor]) – List of B test window index vectors

  • H (Tensor) – Special (scaled) kernel matrix of similarities between kernel centers

  • H_lam_inv (Optional[Tensor]) – Function of H corresponding to a particular regulariation parameter lambda. See Eqn 11 of Bu et al. (2017)

  • lam_rd_max (float) – The maximum relative difference between two estimates of LSDD that the regularization parameter lambda is allowed to cause. Defaults to 0.2. Only relavent if H_lam_inv is not supplied.

  • return_unpermed (bool) – Whether or not to return value corresponding to unpermed order defined by k_all_c

Return type:

Union[Tuple[Tensor, Tensor], Tuple[Tensor, Tensor, Tensor]]

Returns:

Vector of B LSDD estimates for each permutation, H_lam_inv which may have been inferred, and optionally the unpermed LSDD estimate.

alibi_detect.utils.pytorch.distance.squared_pairwise_distance(x, y, a_min=1e-30)[source]

PyTorch pairwise squared Euclidean distance between samples x and y.

Parameters:
  • x (Tensor) – Batch of instances of shape [Nx, features].

  • y (Tensor) – Batch of instances of shape [Ny, features].

  • a_min (float) – Lower bound to clip distance values.

Return type:

Tensor

Returns:

Pairwise squared Euclidean distance [Nx, Ny].