Skip to content

Sensivity Misscalibration for the JAM algorithm #65

@tudorcebere

Description

@tudorcebere

File: mbi/mechanisms/jam.py
Lines: 231-234

Score_sensitivity_exp_mech = 2
...
selected_marg, mtype = self.exponential_mechanism(
    score_dict,
    selection_eps,
    sensitivity=score_sensitivity_exp_mech
)

Bug Description: The sensitivity of the exponential mechanism should be 4, as we are running the exp mechanism on scores computed as: model_error[m] - pub_errors[m]. Both terms depend on the private inputs and can shift by up to 2. Because these changes can occur in opposite directions, the true sensitivity is 4. The original implementation of Fuentes et al. https://github.com/Miguel-Fuentes/JAM_AiStats seems to use a sensitivity of 4, too.

Impact: The algorithm underestimates the privacy loss by underestimating sensitivity.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions