Embodiments described herein are directed to methods and systems for performing neural network computations on encrypted data. Encrypted data is received from a user. The encrypted data is encrypted with an encryption scheme that allows for computations on the ciphertext to generate encrypted results data. Neural network computations are performed on the encrypted data, using approximations of neural network functions to generate encrypted neural network results data from encrypted data. The approximations of neural network functions can approximate activation functions, where the activation functions are approximated using polynomial expressions. The encrypted neural network results data are communicated to the user associated with the encrypted data such that the user decrypts the encrypted data based on the encryption scheme. The functionality of the neural network system can be provided using a cloud computing platform that supports restricted access to particular neural networks.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. One or more computer storage media having computer-executable instructions embodied thereon that, when executed, by one or more processors, causes the one or more processors to perform a method for generating encrypted neural network results data, the method comprising: receiving encrypted data having ciphertext, wherein the encrypted data is encrypted with an encryption scheme that allows for computations on the ciphertext to generate encrypted results data; performing neural network computations on the encrypted data, wherein the neural network computations are performed using approximations of neural network functions to generate encrypted neural network results data from encrypted data; generating encrypted neural network results data using the approximations of neural network functions; and communicating the encrypted neural network results data. 2. The media of claim 1, wherein the encrypted data is encrypted using a homomorphic encryption scheme, wherein the homomorphic encryption scheme is a fully homomorphic encryption scheme that supports performing neural network computations on encrypted data. 3. The media of claim 1, wherein the encrypted data is received with a public-key, wherein the public-key is used to encrypt access to a neural network for performing neural network computations. 4. The media of claim 1, wherein the approximations of neural network functions approximate activation functions, wherein the activation functions are approximated based on polynomial expressions. 5. The media of claim 1, wherein the approximations of neural network functions are approximated based on at least one of: Chebyshev approximation; and polynomial regression. 6. The media of claim 1, wherein the approximations of neural network functions are associated with one or more neural network operations selected from: a convolution operation, a pooling operation, and a normalization operation. 7. The media of claim 1, wherein generating the encrypted neural network data results further comprises the encryption scheme supporting addition operations, subtraction operations, and multiplication operations, and wherein the approximations of the neural network functions support division operations and comparison operations using polynomial expressions. 8. The media of claim 1, wherein generating the encrypted neural network data results comprises performing neural network computations on the neural network trained to produce one or more encrypted neural network results based on encrypted data, wherein training the neural network comprises a training workflow that includes a pre-training phase and a fine-tuning phase, wherein the pre-training phase utilizes activation functions for a defined number of iterations and the fine-tuning phase utilizes approximations of the activation functions. 9. A computer-implemented method for generating encrypted neural network results data using approximations of neural networks functions, the method comprising: accessing a neural network having a plurality of interconnected nodes including an input layer and output layer; and training the neural network to produce one or more encrypted neural network results based on encrypted data, wherein training the neural network comprises training the neural network to perform neural network computations with approximations of neural network functions. 10. The method of claim 9, wherein the approximations of neural network functions approximate activation functions based on polynomials. 11. The method of claim 10, wherein the polynomials are configured to emulate properties of the activation functions while preserving compatibility with homomorphic encryption. 12. The method of claim 10, wherein the activation functions include at least on of sigmoid function and a rectified linear function. 13. The method of claim 10, wherein training the neural network is based on one of the following workflows: a first training workflow comprising training the neural network using activation functions while performing neural network computation testing with polynomial approximations of the activation functions; a second training workflow comprising training the neural network using polynomial approximations of activation functions and performing neural network computation testing with polynomial approximations of the activation functions; and a third training workflow comprising a pre-training phase and a fine-tuning phase, wherein the pre-training phase utilizes activation functions for a defined number of iterations and the fine-tuning phase utilizes approximations of the activation functions. 14. The method of claim 13, wherein the pre-training phase operates to converge parameters of the activation functions to a point which is close to an optimal solution. 15. The method of claim 13, wherein the fine tuning phase operates to adapt the neural network to the approximations of the neural network functions. 16. A computer system for generating encrypted neural network results data using approximations of neural networks functions: an neural network training component configured for: selecting a neural network having a plurality of interconnected nodes including an input layer and output layer; and training the neural network to produce one or more encrypted neural network results based on encrypted data, wherein training the neural network comprises training the neural network to perform neural network computations with approximations of neural network functions; and a neural network computation component configured for: receiving the encrypted data having ciphertext, wherein the encrypted data is encrypted with an encryption scheme that allows for computations on the ciphertext to generate encrypted results data; performing neural network computations on the encrypted data, wherein the neural network computations are performed using approximations of neural network functions to generate encrypted neural network results data from encrypted data; generating encrypted neural network results data using the approximations of neural network functions; and communicating the encrypted neural network results data 17. The system of claim 16, further comprising a client component configured for: encrypting data using an encryption scheme, wherein the encryption scheme is a homomorphic encryption scheme; communicating the encrypted data to be used in neural network computations; receiving encrypted results data based on the encrypted data; and decrypting the encrypted results data to access unencrypted results. 18. The system of claim 17, wherein the client component is configured for: encrypting the encrypted data using an encryption mechanism, wherein the encryption mechanism is public cryptography that is used to generate a public key; and communicating the encrypted data and the public key, wherein the public key is used to restrict access to a particular neural network. 19. The system of claim 18, wherein the neural network component is implemented in a cloud computing platform that supports a plurality of neural networks, wherein access to the particular neural network computation of a neural network model is restricted using the encryption mechanism. 20. The system of claim 16, wherein neural network component is further configured to simultaneously support neural network computations on unencrypted data.