Aprendizaje automático confidencial. Biblioteca PySyft

Habr, hola!


Este artículo trata sobre el aprendizaje automático con privacidad preservada. Discutiremos por qué y cómo garantizar la privacidad de los usuarios al entrenar, por ejemplo, redes neuronales.


La mayor parte del artículo es un recuento de los discursos y conferencias de Andrew Trask. Es el líder de la comunidad OpenMined . Estas son personas unidas por el tema de la privacidad en el aprendizaje automático. En particular, OpenMined está trabajando en la biblioteca PySyft . Este es un contenedor sobre PyTorch, Tensorflow o Keras para el aprendizaje automático privado. Conoceremos PySyft durante este artículo.


MotivaciĂłn


Queremos hacer un clasificador de tumores humanos. Si podemos hacer tal clasificador, ayudaremos a millones de personas. Entonces, nuestro primer paso es encontrar un conjunto de datos adecuado. Tenga en cuenta que estos datos son privados, es difĂ­cil acceder a ellos. La mayorĂ­a de las personas no quieren hablar pĂşblicamente sobre sus enfermedades.


Aclararé por qué el anonimato de datos no es suficiente. En 2007, Netflix publicó 10 millones de clasificaciones de películas de 500,000 usuarios. Este conjunto de datos fue parte de una competencia para crear el mejor sistema de recomendaciones. En él, los nombres de las personas y los nombres de las películas fueron reemplazados por identificadores. Sin embargo, los investigadores pudieron identificar a los individuos utilizando datos abiertos con IMDb. Más detalles en el artículo original .


Entonces, necesitas algo más que anonimato. Además, convenzo de que es posible entrenar redes neuronales en datos a los que no tenemos acceso. Entonces se garantizará la privacidad y podremos construir un clasificador de tumores. Además, podremos trabajar en otras enfermedades, como la demencia o la depresión. Si aprendemos a trabajar con datos privados en el aprendizaje automático, podemos resolver problemas mundiales importantes.


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