Настройка скорости обучения при вызове функции tff.learning.build_federated_averaging_process - PullRequest
4 голосов
/ 03 августа 2020

Я выполняю процесс федеративного обучения и использую функцию tff.learning.build_federated_averaging_process для создания итеративного процесса федеративного обучения. Как упоминалось в руководстве по TFF, эта функция имеет два аргумента, называемых client_optimizer_fn и server_optimizer_fn, которые, на мой взгляд, представляют оптимизатор для клиента и сервера соответственно. Но в статье FedAvg кажется, что только клиенты выполняют оптимизацию, в то время как сервер выполняет только операцию усреднения, так что именно делает server_optimizer_fn и что означает его скорость обучения?

Ответы [ 2 ]

2 голосов
/ 03 августа 2020

В McMahan et al., 2017 клиенты передают серверу веса модели после локального обучения, которые затем усредняются и повторно транслируются для следующего раунда. Оптимизатор сервера не требуется, этап усреднения обновляет глобальную / серверную модель.

tff.learning.build_federated_averaging_process использует несколько иной подход: дельта модели взвешивает клиента получен, и веса модели после локального обучения отправляются обратно на сервер. Эта дельта может рассматриваться как псевдоградиент, позволяющий серверу применять его к глобальной модели с использованием стандартных методов оптимизации. Reddi et al., 2020 исследует эту формулировку и то, как адаптивные оптимизаторы (Adagrad, Adam, Yogi) на сервере могут значительно улучшить скорость сходимости. Использование SGD без импульса в качестве оптимизатора сервера со скоростью обучения 1.0 в точности восстанавливает метод, описанный в McMahan et al., 2017.

0 голосов
/ 04 августа 2020

Спасибо за ответ, Захари. В McMahan et al., 2017 представлены два способа реализации федеративного обучения: либо вычисление средних градиентов клиентов и отправка их на сервер для выполнения операции усреднения, либо применение средних градиентов к каждой клиентской модели и отправка клиенту модели на сервер для выполнения операции усреднения. Алгоритм 1 McMahan et al., 2017 использует второй способ реализации федеративного обучения, в то время как TFF использует первый способ согласно вашему ответу. Что меня смущает, так это то, что, по моему мнению, должна быть только одна скорость обучения независимо от того, какой способ использования TFF, то есть для первого способа должен быть только server lr и нет клиента lr, а для второго способа должно быть только клиент lr и без сервера lr. Как упоминалось в McMahan et al., 2017, существует только один символ Eta для представления lr, без Eta_client или Eta_server.

...