File size: 504 Bytes
005d862 80b34d1 005d862 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | 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)
|