CTUAvastLab/JsonGrinder.jl

Better handling of outliers for numeric extractors

racinmat opened this issue · 1 comments

Numeric scalar extractor now performs min-max normalization, which is very sensitive to outliers. Large, during schema computation unseen outliers can be transformed to large values, leading to exploding gradient.
We could fix this aby applying following function at the end of scalar numeric extractor:

f(x) = x if x ∈ [0, 1]
f(x) = ln(x) + 1 if x > 1
f(x) = -ln(-x + 1) if x < 0

which lowers the magnitude of large numbers.