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)