4 ms·
Sure but the output would still leak data. E.g: You give the RNN the phrase "Chase Bank" and it outputs "Sell the stock". Encrypting the data secures the data
by formalsystem 8y ago
Sure but the output would still leak data. E.g: You give the RNN the phrase "Chase Bank" and it outputs "Sell the stock".
Encrypting the data secures the data loading part but it's not like your model didn't learn anything.
- p1esk 8y agoThe output would be encrypted of course. You’d decrypt it on your end. Whoever hosts the model can’t know what it learned, without breaking your encryption.
- yorwba 8y agoUnless you use fully homomorphic encryption (way too expensive for machine learning), the model can't learn anything without breaking your encryption. So you fixed the leak only at the cost of making the model completely useless.
- p1esk 8y agoSource? Unless the encryption actually destroys information I don’t see why it would necessarily make the job harder for the rnn.
- yorwba 8y agoIf you want to learn the function y = f(x), but present x and y as encrypted data x' and y', the problem becomes finding g such that g(x') = y' = encrypt(y) = encrypt(f(x)) = encrypt(f(decrypt(x'))), so the model doesn't just have to learn f, it also has to solve for the decryption and encryption routines.
- p1esk 8y agoYou look at this as a human, but for an rnn this would be the same as learning to map x to y where both x and y are in a different language. It wouldn't need to also learn how to translate that language into ours. There might be encryption schemes which make learning such a "language" harder for an rnn, but it does not necessarily mean these methods are harder to break. So it might be possible to find/design an encryption method which is easy to learn (map x to y), but hard to break. I don't know much about encryption though, so I might be wrong.
- yorwba 8y agoIf an encryption scheme is easy to learn in the sense that if f is learnable, then so is g, then it is also easy to break. Proof: You can easily train an RNN to return the n-th letter of its input and ignore everything else. Take that function to be f_n. Then g_n is the function that takes the encrypted input and returns the n-th letter, encrypted. If the encryption scheme is learnable in the above sense, then you can also train an RNN to perform that task. You can use multiple of those RNNs to extract an encryption of each individual letter in the input, which is equivalent to having the input encrypted with a substitution cipher. Substitution ciphers are so easy to break with frequency analysis that people have been doing it by hand for more than a thousand years. Conversely, if you have a secure encryption scheme, then all statistical regularities in the input should be obfuscated so that they cannot be exploited by an RNN.
- p1esk 8y agoGood point. I didn't realize the goal of a good cipher is to remove statistical regularities (i.e. make it indistinguishable from random noise).