Federované učenie
Federované učenie je technika strojového učenia, v ktorej model trénuje na dátach distribuovaných naprieč zariadeniami alebo organizáciami — bez toho, aby sa samotné dáta kdekoľvek centralizovali. V ére GDPR, EU AI Actu a rastúceho tlaku na ochranu súkromia sa stáva kľúčovým mostom medzi výkonnou AI a zodpovednou praxou.
1. Základný princíp: model cestuje, dáta nie
V klasickom strojovom učení zhromažďujeme dáta z rôznych zdrojov na jedno miesto — server alebo dátové centrum — a tam model trénujeme. To je rýchle a jednoduché, no prináša vážne problémy: dáta sa musia prenášať, ukladať centrálne a chrániť pred únikom. V zdravotníctve, bankovníctve alebo na mobilných zariadeniach to môže byť právne alebo technicky nerealizovateľné.
Federované učenie otočí tento postup naruby:
- Centrálny server odosiela globálny model na jednotlivé zariadenia alebo uzly.
- Každý uzol trénuje model lokálne na vlastných dátach.
- Uzly posielajú späť iba gradienty (zmeny váh modelu) — nie samotné dáta.
- Server agreguje tieto gradienty (typicky váženým priemerom) a aktualizuje globálny model.
- Cyklus sa opakuje, kým model nedosahuje požadovanú kvalitu.
Výsledok: model sa „učí" z distribuovaných dát, ale samotné dáta nikdy neopustia svoje pôvodné miesto.
2. Ako prebieha jedna tréningová runda
Konkrétne kroky jedného federovaného cyklu:
- Selekcia klientov — server náhodne vyberie podmnožinu dostupných uzlov (napr. 100 zo 10 000 smartfónov).
- Distribúcia modelu — každý vybraný klient dostane aktuálnu verziu globálneho modelu.
- Lokálny tréning — klient spustí niekoľko epoch gradientového zostupu na vlastných dátach.
- Odoslanie aktualizácií — klient odošle vypočítané gradienty alebo rozdiel váh späť na server.
- Agregácia — server použije algoritmus ako FedAvg (Federated Averaging) na zlúčenie aktualizácií.
- Aktualizácia globálneho modelu — nová verzia je pripravená na ďalšiu rundu.
Kľúčový algoritmus FedAvg (McMahan et al., 2017, Google) vypočíta vážený priemer gradientov podľa veľkosti trénovacej množiny každého klienta. Je to stále jeden z najviac používaných prístupov a formuje základ väčšiny dnešných federovaných systémov.
3. Tri hlavné typy federovaného učenia
| Typ | Popis | Kedy sa používa | Príklad |
|---|---|---|---|
| Horizontálne | Klienti majú rovnaké príznaky, iné vzorky | Zariadenia rovnakého typu | Klávesnice na smartfónoch |
| Vertikálne | Klienti majú rôzne príznaky pre rovnaké subjekty | Spolupráca organizácií | Banka + poisťovňa zdieľajú klientov |
| Federovaný transfer | Rôzne príznaky aj subjekty, malý prienik | Medziodvetvová spolupráca | Nemocnica + technologická firma |
Horizontálne federované učenie je najrozšírenejšie — práve tu FedAvg funguje najlepšie. Vertikálne vyžaduje kryptografické techniky (secure multi-party computation) na ochranu identít spoločných subjektov. Federovaný transfer je najkomplexnejší a vychádza z myšlienok transfer learningu.
4. Kde federované učenie mení prax
Mobilné zariadenia Google používa federované učenie na vylepšovanie prediktívneho textu v klávesnici Gboard od roku 2017. Klávesnica sa prispôsobuje návykom miliárd používateľov bez toho, aby Google videl ich správy. Apple aplikuje rovnaký princíp pri Siri a prediktívnych funkciách iOS.
Zdravotníctvo Nemocnice nemôžu zdieľať záznamy pacientov kvôli HIPAA (USA) alebo GDPR (EÚ). Federované učenie umožňuje spoločný tréning diagnostických modelov — napríklad detekcia nádorov na CT snímkach — pričom každá nemocnica drží dáta u seba. Iniciatívy ako TriNetX alebo projekt FL4Health takýto prístup aktívne nasadzujú v klinickej praxi.
Bankovníctvo a fintech Banky potrebujú detekovať podvody naprieč transakciami celého sektora, no nemôžu zdieľať záznamy zákazníkov. Federovaný model trénovaný naprieč viacerými inštitúciami dosahuje výrazne lepšiu presnosť než model trénovaný iba na dátach jednej banky — a celý proces ostáva v súlade s reguláciou.
IoT a priemysel Senzory v továrňach, autonómne vozidlá alebo chytré domáce zariadenia generujú obrovské množstvo dát, ktoré nemôžu odísť na cloud kvôli latencii alebo regulácii. Federované učenie priamo na hrane siete (v kombinácii s Edge AI) rieši oba problémy naraz.
5. Výzvy a bezpečnostné riziká
Federované učenie nie je bezproblémové. Niekoľko otvorených výziev zostáva aktívnou oblasťou výskumu:
Komunikačná záťaž Každá runda vyžaduje prenos gradientov medzi serverom a klientmi. Pri modeloch s miliardami parametrov môže byť objem prenesených dát obrovský. Riešenia zahŕňajú kompresiu gradientov, kvantizáciu a sparsifikáciu — posielanie iba nenulových alebo najvýznamnejších zmien.
Non-IID dáta (heterogenita) Dáta na rôznych klientoch nie sú identicky rozdelené — to je fundamentálny rozdiel oproti centralizovanému tréningu. Klient s inou demografiou tlačí model iným smerom. FedAvg s týmto bojuje; novšie algoritmy ako FedProx, SCAFFOLD alebo FedNova sa pokúšajú problém zmierniť pomocou regulácie a korigovaných odhadov gradientov.
Útoky cez gradienty Hoci dáta neopúšťajú klientov, samotný gradient môže prezradiť informácie o trénovacích vzorkách — útok nazývaný gradient inversion dokáže za určitých podmienok rekonštruovať pôvodné obrázky alebo texty. Ochranou sú diferenciálne súkromie (differential privacy) alebo secure aggregation pomocou kryptografických protokolov.
Byzantine útoky a otrávenie modelu Škodlivý klient môže posielať zámerné falošné gradienty s cieľom poškodiť alebo manipulovať globálny model (model poisoning). Server nikdy nevidí dáta, čiže nemôže priamo overiť čestnosť klienta. Obranou sú robustné agregačné algoritmy ako Krum alebo Trimmed Mean, ktoré odfiltrujú extrémne hodnoty.
Systémová heterogenita Zariadenia majú rôzny výkon, konektivitu a dostupnosť. Pomalý alebo nedostupný klient (straggler) môže spomaliť celý tréning alebo vniesť skreslenie. Produkčné systémy musia s výpadkami a asynchrónnosťou explicitne počítať.
6. FedAvg v pseudokóde
Jadro federovaného cyklu je prekvapivo jednoduché — server len váženo spriemeruje aktualizácie od klientov:
global_model = init_model()
for round in range(num_rounds):
clients = sample_clients(pool, k=100) # vyber podmnožinu
updates, sizes = [], []
for c in clients:
local = train_locally(global_model, c.data) # dáta neopustia klienta
updates.append(local.weights); sizes.append(len(c.data))
# FedAvg: priemer vážený veľkosťou lokálneho datasetu
global_model.weights = weighted_average(updates, sizes)
Posielajú sa len váhy/gradienty, nikdy nie samotné dáta — odtiaľ pramení ochrana súkromia aj výzvy (gradient inversion).
7. Súvislosti
- Strojové unlearning: príbuzná téma — ako z modelu „odstrániť" dáta.
- Gradient Descent: lokálny tréning na klientovi je klasický gradientový zostup.
- Machine Learning / Deep Learning: federované učenie je distribuovaný spôsob ich tréningu.
- Guardrails: differential privacy a secure aggregation sú „zábrany" proti úniku cez gradienty.
Zhrnutie: Federované učenie ponúka elegantné riešenie pre svet, kde dáta nemôžu — alebo nemajú — opustiť svoje zdroje. Napriek technickým výzvam sa stáva štandardom v zdravotníctve, mobilných aplikáciách aj financiách a jeho dôležitosť porastie s každou novou vrstvou regulácie okolo AI a súkromia.