CKKS Bootstrapping

I would like to add a note on the precision of the result after bootstrapping. In CKKS, bootstrapping is approximate. So there is some loss in precision, primarily after the first bootstrapping. However, many machine learning applications are approximate in nature. So this loss of precision does not significantly affect the result. A good example is logistic regression training. We were able to run even hundreds of logistic regression iterations, with hundreds of bootstrapping calls, while still getting 4-5 decimal digits of accuracy.

When you need to do deep computations, I suggest using the 128-bit CKKS, i.e., setting NATIVE_SIZE=128, as the 64-bit CKKS is limited to 3-4 decimal digits (after first bootstrapping call).

4 Likes