$ cd ../
Federated Learning — bash

user@devops:~$ cat README.md

Federated Learning

# Descripción

Proyecto de Aprendizaje Federado (Federated Learning) que simula el algoritmo FedAvg desde cero con PyTorch. 5 clientes reciben particiones No-IID (Dirichlet α=0.5) de Fashion-MNIST (4 clases: T-shirt, Trouser, Pullover, Dress). Cada cliente entrena una CNN local (Conv16→Conv32→FC64→FC4, 114K parámetros) durante 3 épocas, luego un servidor central promedia los pesos (FedAvg). 12 rondas de comunicación. El modelo centralizado alcanza 95.25% test accuracy; el federado 93.20% (diferencia solo 2.05%), demostrando que el aprendizaje colaborativo preserva la privacidad sin sacrificar precisión. 5 visualizaciones: distribución No-IID, curvas de convergencia, comparativa final, evolución por ronda y t-SNE de embeddings.

# Características principales

$ FedAvg (Federated Averaging): promediar pesos de modelos locales

$ Partición No-IID con Dirichlet (α=0.5): cada cliente tiene datos heterogéneos

$ Privacidad por diseño: los datos nunca salen del dispositivo del cliente

$ Comparativa Centralizado (95.25%) vs Federado (93.20%) — solo 2.05% de diferencia

$ CNN pequeña para CPU: Conv16→Conv32→FC64, 114K parámetros

$ 5 visualizaciones: distribución, convergencia, comparativa, evolución, t-SNE

# Galería

Vista escritorio
Federated Learning - Vista escritorio
Vista móvil
Federated Learning - Vista móvil

# Tecnologías utilizadas

Python PyTorch scikit-learn matplotlib seaborn