Knoppia

Wiki de Informática y otras historias

Herramientas de usuario

Herramientas del sitio


pan:nfedelearning

¡Esta es una revisión vieja del documento!


Federated learning (Aprendizaje Distribuido)

Muchas veces los datasets que se quieren procesar con Machine Learning son tan grandes que no pueden ser procesados con una sola máquina. En la computación distribuida clásica tenemos una plataforma central (Servidor) que almacena datos de manera distribuida en varios servidores esclavos. El problema que tenemos es que se debe realizar un envío de datos a un servidor central, estando el problema de que en caso de un ataque, un atacante puede quedarse escuchando para tomar los datos que se transportan al servidor. Otro problema es la latencia que hay de por medio, contando tanto el tiempo de transporte como el de procesado por parte del servidor.

Técnicas de protección de modelos de datos en Machine Learning:

  • Anonimización (De las peores para machine learning al enmascarar los datos): Eliminación de datos, K-Anonimidad, etc… Vulnerable a ataques de enlazado, también puede generar datasets inútiles
  • Privacidad diferencial: Consiste en añadir ruido a los datos, puede generar datasets inútiles.
  • 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

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.

El algoritmo está descentralizado pero hay un nodo coordinador. El conjunto esta dividido en diferentes trozos que operan de forma independiente. Cada trozo tiene un número de muestras diferente. Los datos no se solapan, una muestra de un conjunto K nunca aparece en un conjunto E. En vez de calcular una función objetivo a nivel global, se calcula en trozos. El coordinados se encarga de juntar todos los resultados para obtener los datos. Existen varias soluciones:

  • FSVRG (Federated Stochastic Variable Reducec Gradient)
  • Federated SDG and Federate Averaging Algorithm (Usado por el teclado de google para predicción.)
pan/nfedelearning.1733330969.txt.gz · Última modificación: 2024/12/04 16:49 por thejuanvisu