Logistic Function Challenge

This topic for discussions on the Logistic Function challenge posted at https://fherma.io/challenges

I would like to take part in this challenge.
Is bootstrapping allowed? If yes where can I find the bootstrapping keys?

Is it allowed to use Chebyshev approximation implemented in OpenFHE to solve this challenge?

Hello John! For this particular challenge, we assume that bootstrapping will not be used.
However, it will be allowed for some other challenges in the future.

Hello Mike128,

Of course, you can use any available methods.

How is the accuracy actually computed? I understand that it is a value in [0, 1] but it is not clear how |f(x) - g(x)| is mapped to this interval. Is the mapping using as reference for the normalization the maximum possible precision enabled by the scheme parameters?

1 Like

The overall accuracy is determined based on the accuracy in each slot.
The slot accuracy is based on the double-precision accuracy in the clear and is unrelated to maximum CKKS precision. For the slot v_i accuracy is evaluated using the following formula:
\text{accuracy}(v_i) = \begin{cases} 1 - \text{relative_error}(v_i) & \text{if } 1 - \text{relative_error}(v_i) \geq threshold \\ 0 & \text{else} \end{cases}
\text{relative_error}(v_i) is an relative error evaluated based on expected and received values,
threshold is a challenge-dependent parameter. For Logistic Function challenge threshold = 0.8


And what is the formula for \text{relative_error} ? Is it \tfrac{|a_i-b_i|}{\max(|a|)} ? For a the expected values and b the received values.

For the expected value a and the received value b, if a_i \neq 0

relative\_error(b_i) = \frac{|a_i -b_i|}{|a_i|}

if a_i =0

relative\_error(b_i) = \begin{cases} |b_i| & \text{if } 0 \leq|b_i| <1 \\ 1 & \text{else} \end{cases}


Thanks! Interesting choice to choose not to take into account that CKKS is fixed point arithmetic.

Hi @Pro7ech,
I realized that I provided the incorrect formula for the relative error for Logistic Function Challenge above.
For Logistic Function we estimate relative error, as you mentioned earlier, because otherwise for small values the error would always be large, so
relative\_error (b_i)= \frac{|a_i-b_i|}{max(|a|)}

1 Like