import math class LogBarrierReward: def calculate(self, recall: float, fpr: float, syntax_error: bool = False) -> float: """ Recall = True Positive Rate on adversarial FPR = False Positive Rate on benign Reward = (1.0 * Recall) - (2.0 * math.log1p(FPR)) """ if syntax_error: return -10.0 if recall == 0.0: return -5.0 reward = (1.0 * recall) - (2.0 * math.log1p(fpr)) return float(reward)