incerto.ood.mixup_data

Contents

incerto.ood.mixup_data#

incerto.ood.mixup_data(x, y, alpha=1.0)[source]#

Apply mixup data augmentation.

Mixup creates virtual training examples by convex combination:

x_tilde = λ*x_i + (1-λ)*x_j y_tilde = λ*y_i + (1-λ)*y_j

where λ ~ Beta(α, α). This encourages linear behavior between examples and improves OOD detection by smoothing decision boundaries.

Reference:

Zhang et al. “mixup: Beyond Empirical Risk Minimization” (ICLR 2018)

Parameters:
  • x (Tensor) – Input batch (N, *)

  • y (Tensor) – Target labels (N,)

  • alpha (float) – Beta distribution parameter (default: 1.0)

Returns:

  • mixed_x: Mixed inputs

  • y_a, y_b: Original labels for mixing

  • lambda: Mixing coefficient

Return type:

Tuple of (mixed_x, y_a, y_b, lambda) where

Example

>>> mixed_x, y_a, y_b, lam = mixup_data(x, y, alpha=1.0)
>>> outputs = model(mixed_x)
>>> loss = lam * criterion(outputs, y_a) + (1-lam) * criterion(outputs, y_b)