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:
- 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)