Apprentissage automatique confidentiel. Bibliothèque PySyft

Habr, bonjour!


Cet article concerne l'apprentissage automatique à confidentialité préservée. Nous discuterons pourquoi et comment garantir la confidentialité des utilisateurs lors de la formation, par exemple, les réseaux de neurones.


La majeure partie de l'article est une nouvelle version des discours et conférences d'Andrew Trask. Il est le leader de la communauté OpenMined . Ce sont des personnes unies par le thème de la vie privée dans l'apprentissage automatique. En particulier, OpenMined travaille sur la bibliothèque PySyft . Il s'agit d'un wrapper sur PyTorch, Tensorflow ou Keras pour l'apprentissage automatique privé. Nous découvrirons PySyft au cours de cet article.


Motivation


Souhaitons faire un classifieur des tumeurs humaines. Si nous pouvons faire un tel classificateur, nous aiderons des millions de personnes. Ensuite, notre première étape consiste à trouver un ensemble de données approprié. Notez que ces données sont privées, il est difficile d'y accéder. La plupart des gens ne veulent pas parler publiquement de leurs maladies.


Je vais expliquer pourquoi l'anonymisation des données ne suffit pas. En 2007, Netflix a publié 10 millions de classements de films de 500 000 utilisateurs. Cet ensemble de données faisait partie d'un concours pour créer le meilleur système de recommandation. Dans ce document, les noms des personnes et les noms des films ont été remplacés par des identifiants. Cependant, les chercheurs ont pu identifier des individus utilisant des données ouvertes avec IMDb. Plus de détails dans l' article d' origine .


Ensuite, vous avez besoin de quelque chose de plus que l'anonymisation. De plus, je suis persuadé qu'il est possible de former des réseaux de neurones sur des données auxquelles nous n'avons pas accès. Ensuite, l'intimité sera assurée et nous pourrons construire un classificateur de tumeurs. De plus, nous pourrons travailler sur d'autres maladies, comme la démence ou la dépression. Si nous apprenons à travailler avec des données privées dans l'apprentissage automatique, nous pouvons résoudre des problèmes mondiaux importants.


Remote Execution/Federated Learning


, Apple. . , . , : . , . !


, . . , . 'Remote Execution' , .. .


PySyft — python- . , . . , Torch-, .


#  PyTorch  PySyft
import torch as th
import syft as sy

#     PyTorch-
hook = sy.TorchHook(th)

#  "" ,  " " -    .
bob = sy.VirtualWorker(hook, id="bob")

#    x  y     .    .
x = th.tensor([1,2,3,4,5]).send(bob)
y = th.tensor([1,1,1,1,1]).send(bob)

#      . 
z = x + y

#  ,     
bob._objects
# {5102423178: tensor([1, 2, 3, 4, 5]),
#  6031624222: tensor([1, 1, 1, 1, 1]),
#  4479039083: tensor([2, 3, 4, 5, 6])}

#      ,    
z = z.get()
z
# tensor([2, 3, 4, 5, 6])

bob._objects
# {5102423178: tensor([1, 2, 3, 4, 5]), 
#  6031624222: tensor([1, 1, 1, 1, 1])}

tensor.get(). . , - ?


Differential Privacy


, , . , bag-of-words, , {"": " "}. . Differential Privacy — , .
.


. — . , . , , , . . , , . , . .


, - , 50/50. , . . , 60% ''. , . : 35% '', 25% '', 15% '' 25% ''. , 70% '' 30% ''. .


, . , , . , , .


. , . . , ( ).



. 'Remote Execution' , . , . .


. . , Secure multi-party computation Homomorphic Encryption. ?


:


  • Apple , . .
  • — "Differential Privacy". , . .

:



All Articles