Перейти к содержимому

Глава 172: FedProx для Finance

Обзор

В прошлой главе мы изучили FedAvg — простейшую форму федеративного обучения. Хотя FedAvg хорошо работает на однородных данных, он может работать нестабильно или даже расходиться в гетерогенных средах.

FedProx (Li et al., 2018) разработан для децентрализованных сетей, где:

  1. Данные Non-IID: Разные торговые дески имеют радикально разные портфели и профили риска.
  2. Вычисления гетерогенны: Некоторые клиенты — это высокопроизводительные сервера, другие — маломощные устройства.

Преимущество Proximal-подхода

FedProx вводит Проксимальное слагаемое (Proximal Term) в локальную целевую функцию каждого клиента: $$min_w h_k(w; w_t) = F_k(w) + \frac{\mu}{2} |w - w_t|^2$$

Где:

  • $F_k(w)$ — локальная функция потерь (например, MSE).
  • $w_t$ — веса глобальной модели от сервера.
  • $\mu$ — гиперпараметр, контролирующий “привязку” к глобальной модели.

Почему это важно для трейдинга

Стандартный FedAvg позволяет “зашумленным” клиентам или “выбросам” слишком сильно уводить глобальную модель в свою сторону. FedProx заставляет клиентов оставаться в разумной близости к глобальному консенсусу, предотвращая чрезмерную подстройку под индивидуальный рыночный шум.

Структура проекта

172_fedprox_finance/
├── README.md # Обзор на английском
├── README.ru.md # Обзор на русском
├── docs/ru/theory.md # Математические основы
├── python/
│ ├── model.py # Общая нейронная сеть
│ ├── fedprox_core.py # Реализация проксимального лосса
│ └── train.py # Симуляция гетерогенной среды
└── rust/src/
└── lib.rs # Оптимизированный расчет L2-дистанции