Vertrauliches maschinelles Lernen. PySyft-Bibliothek

Habr, hallo!


Dieser Artikel befasst sich mit datenschutzrechtlich geschütztem maschinellem Lernen. Wir werden diskutieren, warum und wie die Privatsphäre der Benutzer beim Training von beispielsweise neuronalen Netzen gewährleistet werden kann.


Der größte Teil des Artikels ist eine Nacherzählung der Reden und Vorträge von Andrew Trask. Er ist der Anführer der OpenMined- Community . Dies sind Menschen, die durch das Thema Datenschutz beim maschinellen Lernen vereint sind. Insbesondere arbeitet OpenMined an der PySyft- Bibliothek . Dies ist ein Wrapper über PyTorch, Tensorflow oder Keras für privates maschinelles Lernen. Wir werden PySyft in diesem Artikel kennenlernen.


Motivation


Lassen Sie uns einen Klassifikator für menschliche Tumoren erstellen. Wenn wir einen solchen Klassifikator herstellen können, werden wir Millionen von Menschen helfen. Dann ist unser erster Schritt, einen geeigneten Datensatz zu finden. Beachten Sie, dass diese Daten privat sind und nur schwer zugänglich sind. Die meisten Menschen wollen nicht öffentlich über ihre Krankheiten sprechen.


Ich werde klarstellen, warum die Anonymisierung von Daten nicht ausreicht. Im Jahr 2007 veröffentlichte Netflix 10 Millionen Filmbewertungen von 500.000 Benutzern. Dieser Datensatz war Teil eines Wettbewerbs zur Erstellung des besten Empfehlungssystems. Darin wurden die Namen von Personen und die Namen von Filmen durch Bezeichner ersetzt. Die Forscher konnten jedoch Personen anhand offener Daten mit IMDb identifizieren. Weitere Details im Original - Artikel .


Dann brauchen Sie mehr als nur Anonymisierung. Außerdem bin ich davon überzeugt, dass es möglich ist, neuronale Netze auf Daten zu trainieren, auf die wir keinen Zugriff haben. Dann wird die Privatsphäre gewährleistet und wir können einen Tumorklassifikator erstellen. Darüber hinaus können wir an anderen Krankheiten wie Demenz oder Depressionen arbeiten. Wenn wir lernen, beim maschinellen Lernen mit privaten Daten zu arbeiten, können wir wichtige Weltprobleme lösen.


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