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:
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:
If size < 0
If reg ≤ 0
If max_iter < 1