Knoppia

Wiki de Informática y otras historias

Herramientas de usuario

Herramientas del sitio


pan:nfedelearning

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
pan:nfedelearning [2024/12/04 16:52] thejuanvisupan:nfedelearning [2024/12/04 17:05] (actual) thejuanvisu
Línea 7: Línea 7:
   * **Computación seguras entre múltiples partes**: Es la mejor manera de proteger machine learning, pero es excesivamente lenta. Hace que el calculo no dependa de nadie, pensado para entornos P2P. Sirve para solucionar problemas donde hay una función objetivo que se puede computar de forma colaborativa entre diferentes módulos sin necesidad de revelar información.   * **Computación seguras entre múltiples partes**: Es la mejor manera de proteger machine learning, pero es excesivamente lenta. Hace que el calculo no dependa de nadie, pensado para entornos P2P. Sirve para solucionar problemas donde hay una función objetivo que se puede computar de forma colaborativa entre diferentes módulos sin necesidad de revelar información.
  
-====== Que es Federated Learning ======+===== Que es Federated Learning =====
  
 La idea de Federated Learning es un proceso colaborativo y distribuido para entrenar modelos de Machine Learning sin revelar información de entrenamiento. La idea es que las computaciones se realizan en cada dispositivo que recopila información. Cada dispositivo debe tener bastantes recursos computacionales. Los datos nunca se deben transferir al servidor o a ningún medio de almacenamiento centralizado. El aprendizaje Federado es similar a la computación distribuida con la diferencia de que los datasets son independientes e idénticamente distribuidos. La idea de Federated Learning es un proceso colaborativo y distribuido para entrenar modelos de Machine Learning sin revelar información de entrenamiento. La idea es que las computaciones se realizan en cada dispositivo que recopila información. Cada dispositivo debe tener bastantes recursos computacionales. Los datos nunca se deben transferir al servidor o a ningún medio de almacenamiento centralizado. El aprendizaje Federado es similar a la computación distribuida con la diferencia de que los datasets son independientes e idénticamente distribuidos.
Línea 16: Línea 16:
   * Federated SDG and Federate Averaging Algorithm (Usado por el teclado de google para predicción.)   * Federated SDG and Federate Averaging Algorithm (Usado por el teclado de google para predicción.)
  
-====Funcionamiento del teclado de Google =====+==== Ejemplo: Funcionamiento del teclado de Google ====
  
  
 El servidor central crea un modelo con unos parámetros y se lo envía a todos los clientes, estos empiezan a utilizarlo en local. Al principio se usa un modelo base que pueda servir para todos los clientes. La idea es que según se va usando se va refinando el modelo con los inputs del usuario. Los resultados finales se envían al servidor central, que crea una relación, crea un nuevo modelo y pasa a la siguiente iteración.  El servidor central crea un modelo con unos parámetros y se lo envía a todos los clientes, estos empiezan a utilizarlo en local. Al principio se usa un modelo base que pueda servir para todos los clientes. La idea es que según se va usando se va refinando el modelo con los inputs del usuario. Los resultados finales se envían al servidor central, que crea una relación, crea un nuevo modelo y pasa a la siguiente iteración. 
  
 +===== Problemas del Federated Learning =====
 +No hay comunicación con el servidor central, lo que significa que no se sabe si se usan bien o mal los datos. Los modelos contienen información sensible, por lo que aunque se entrenen por separado, los datos siguen ahí y pueden ser recuperados. Si hay un atacante malicioso entre el servidor y los clientes o el servidor está corrupto, un atacante puede manipular los datos como quiera. Un atacante Man In The Middle también puede hacerse con la información al estar en el medio de las comunicaciones. Existen ataques como Model Inversión que pueden sacar datos. Existen 2 tipos de ataques:
 +  * Black Box (Pasivo): Su objetivo es el modelo ya entrenado final.
 +  * White Box (Activa): Monitoriza cambios en el modelo en cada ronda de entrenamiento.
  
 +También hay 2 tipos de atacantes:
 +  * Cliente
 +  * Servidor
 +
 +==== Poisoning ====
 +
 +Otro tipo de ataque que se puede realizar es el de poisoning, enviando un modelo corrupto al servidor para que o el modelo no funcione (Ataque Random) o un ataque de reemplazo, que cambia el modelo original por uno distinto y que conviva con el anterior, la idea es realizar una predicción colateral sin que el servidor se entere. Estos ataques suelen ser de tipo cliente.
 +
 +===== Prevención de ataques =====
 +**Frente ataques de inteferencia:**
 +  * Se puede aplicar Segure Agregation Through Secure Multiparty Computation (SMC) o Cifrado homomórfico.
 +**Frente ataque de poisoning:**
 +  * Se exploran los datos de los clientes (No tiene sentido ya que la idea de este sistema es que no se pueda hacer eso)
 +**Nodos individuales:**
 +  * SMC
 +  * Cifrado homomorfico
 +  * Mecanismos de privacidad diferencial
 +===== Frameworks para aprendizaje federado =====
 +
 +  * TensorFlow
 +  * Flower
 +  * Pyshift
 +  * Microsoft Flute
 +  * Nvidia Flare
  
pan/nfedelearning.1733331172.txt.gz · Última modificación: 2024/12/04 16:52 por thejuanvisu