ll2909 / LinReg-pyseal

Linear Regression using Microsoft SEAL Homomorphic Encription API
0 stars 0 forks source link

can you try encrypting a DL model. maybe alexnet #1

Open tolusophy opened 2 years ago

tolusophy commented 2 years ago

do you have a sample where the HE was used to encrypt a deep neural network for image classification'

ll2909 commented 2 years ago

Time ago I made some experiments with TenSEAL (https://github.com/OpenMined/TenSEAL), which can perform just one convolution step if you're using CKKSVector, as in Tutorial 4 notebook (https://github.com/OpenMined/TenSEAL/blob/main/tutorials/Tutorial%204%20-%20Encrypted%20Convolution%20on%20MNIST.ipynb). According to one of the developers, theoretically it's possible to have multiple convolutions with CKKSTensor, however I can't find any implementation. The problem is to implement pooling layers (I don't think it's possible to implement max/avg pooling), as well as good approximation of activation functions (like ReLU, sigmoid or softmax) in encrypted domain, avoiding the data disruption due to noise (especially with multiplications).