f-Divergence DRO

class dro.src.neural_model.fdro_nn.Chi2NNDRO(input_dim, num_classes, task_type='classification', model_type='mlp', device=device(type='cpu'), size=0.1, reg=0.1, max_iter=100)

Bases: BaseNNDRO

Chi-square Divergence-based Neural DRO Model.

Initialize Chi-square DRO neural model.

Parameters:
  • input_dim (int) – Input feature dimension \(d \geq 1\)

  • num_classes (int) –

    Output dimension:

    • Classification: \(K \geq 2\) (number of classes)

    • Regression: Automatically set to 1

  • task_type (str) –

    Learning task type. Supported:

    • 'classification': Cross-entropy loss

    • 'regression': MSE loss

  • model_type (str) –

    Neural architecture type. Supported:

    • 'mlp': Multi-Layer Perceptron (default)

    • linear

    • resnet

    • alexnet

  • device (torch.device) – Target computation device, defaults to CPU

  • size (float) – Chi-square divergence radius \(\rho \geq 0\) controlling distributional robustness. Larger values increase conservativeness. Defaults to 0.1.

  • reg (float) – Regularization coefficient. Defaults to 0.1.

  • max_iter (int) – Maximum Sinkhorn iterations. Defaults to 100.

Raises:

ValueError

  • If size < 0

  • If reg ≤ 0

  • If max_iter < 1

class dro.src.neural_model.fdro_nn.CVaRNNDRO(input_dim, num_classes, task_type='classification', model_type='mlp', device=device(type='cpu'), size=0.1, reg=0.1, max_iter=100)

Bases: BaseNNDRO

Initialize Conditional Value-at-Risk DRO neural model.

Parameters:
  • input_dim (int) – Input feature dimension \(d \geq 1\)

  • num_classes (int) –

    Output dimension:

    • Classification: \(K \geq 2\) (number of classes)

    • Regression: Automatically set to 1

  • task_type (str) –

    Learning task type. Supported:

    • 'classification': Cross-entropy loss

    • 'regression': MSE loss

  • model_type (str) –

    Neural architecture type. Supported:

    • 'mlp': Multi-Layer Perceptron (default)

    • linear

    • resnet

    • alexnet

  • device (torch.device) – Target computation device, defaults to CPU

  • size (float) – CVaR ratio \(1 \geq \rho \geq 0\) controlling distributional robustness. Smaller values increase conservativeness. Defaults to 0.1.

  • reg (float) – Regularization coefficient. Defaults to 0.1.

  • max_iter (int) – Maximum Sinkhorn iterations. Defaults to 100.

Raises:

ValueError

  • If size < 0

  • If reg ≤ 0

  • If max_iter < 1