A fair loss function
A fair PyTorch loss function
The goal of this loss function is to take fairness into account during the training of a PyTorch model. It works by adding a fairness measure to a regular loss value, following this equation:
pip install fair-loss
import torch from fair_loss import FairLoss model = torch.nn.Sequential(torch.nn.Linear(5, 1), torch.nn.ReLU()) data = torch.randint(0, 5, (100, 5), dtype=torch.float, requires_grad=True) y_true = torch.randint(0, 5, (100, 1), dtype=torch.float) y_pred = model(data) # Let's say the sensitive attribute is in the second dimension dim = 1 criterion = FairLoss(torch.nn.MSELoss(), data[:, dim].detach().unique(), accuracy) loss = criterion(data[:, dim], y_pred, y_true) loss.backward()
See the documentation.
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
fair_loss-0.5.tar.gz (29.8 kB view hashes)
fair_loss-0.5-py3-none-any.whl (16.3 kB view hashes)