Pembelajaran Mesin Rahasia. Perpustakaan PySyft

Habr, halo!


Artikel ini adalah tentang Pembelajaran Mesin Diawetkan Privasi. Kami akan membahas mengapa dan bagaimana memastikan privasi pengguna saat pelatihan, misalnya, jaringan saraf.


Sebagian besar artikel tersebut menceritakan kembali pidato dan ceramah Andrew Trask. Dia adalah pemimpin komunitas OpenMined . Ini adalah orang-orang yang disatukan oleh topik privasi dalam pembelajaran mesin. Secara khusus, OpenMined bekerja pada pustaka PySyft . Ini adalah pembungkus lebih dari PyTorch, Tensorflow, atau Keras untuk pembelajaran mesin pribadi. Kita akan mengenal PySyft selama artikel ini.


Motivasi


Mari kita membuat penggolong tumor manusia. Jika kita dapat membuat penggolong seperti itu, kita akan membantu jutaan orang. Kemudian, langkah pertama kami adalah menemukan dataset yang sesuai. Perhatikan bahwa data ini bersifat pribadi, sulit diakses. Kebanyakan orang tidak ingin berbicara di depan umum tentang penyakit mereka.


Saya akan menjelaskan mengapa anonimisasi data tidak cukup. Pada 2007, Netflix menerbitkan 10 juta peringkat film dari 500.000 pengguna. Dataset ini adalah bagian dari kompetisi untuk menciptakan sistem rekomendasi terbaik. Di dalamnya, nama-nama orang dan nama-nama film digantikan oleh pengidentifikasi. Namun, para peneliti dapat mengidentifikasi individu yang menggunakan data terbuka dengan IMDb. Lebih detail di artikel aslinya .


Kemudian, Anda membutuhkan sesuatu yang lebih dari sekadar anonimisasi. Lebih lanjut, saya meyakinkan bahwa mungkin untuk melatih jaringan saraf pada data yang kita tidak memiliki akses. Kemudian privasi akan dipastikan dan kami akan dapat membangun penggolong tumor. Selain itu, kita akan dapat mengatasi penyakit lain, seperti demensia atau depresi. Jika kita belajar bekerja dengan data pribadi dalam pembelajaran mesin, kita dapat memecahkan masalah dunia yang penting.


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