# Aggregation algorithms

**URL:** <https://discuss.flower.ai/t/aggregation-algorithms/187>\
**Category:** Research\
**Created:** [March 31, 2024, 11:07am UTC](https://discuss.flower.ai/t/aggregation-algorithms/187 "2024-03-31T11:07:07Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![logic-magician](https://dub1.discourse-cdn.com/flex013/user_avatar/discuss.flower.ai/logic-magician/32/46_2.png) [@logic-magician](https://discuss.flower.ai/u/logic-magician)\
**Post date:** [March 31, 2024, 11:07am UTC](https://discuss.flower.ai/t/aggregation-algorithms/187/1 "2024-03-31T11:07:07Z")

</div>

Hello everyone, I am currently working on the experimental section of my paper. Since this is my first time using federated learning in my tasks, I need to conduct an experiment by trying different federated learning aggregation algorithms to observe the variations in results. Could you please suggest some classic aggregation algorithms that I should consider trying out?

---

<div class="post-metadata">

**Author:** ![charles](https://dub1.discourse-cdn.com/flex013/user_avatar/discuss.flower.ai/charles/32/92_2.png) [@charles](https://discuss.flower.ai/u/charles)\
**Post date:** [April 2, 2024, 1:17pm UTC](https://discuss.flower.ai/t/aggregation-algorithms/187/2 "2024-04-02T13:17:25Z")

</div>

Hi!

The most basic aggregation algorithm would be `FedAvg`: [`flwr.server.strategy.FedAvg`](https://github.com/adap/flower/blob/main/src/py/flwr/server/strategy/fedavg.py) ([paper](https://arxiv.org/abs/1602.05629)).

And then you could look into strategies that just replace the average function of `FedAvg`, like `FedMedian`: [`flwr.server.strategy.FedMedian`](https://github.com/adap/flower/blob/main/src/py/flwr/server/strategy/fedmedian.py) ([paper](https://arxiv.org/abs/1803.01498v1)) or `FedTrimmedAvg`: [`flwr.server.strategy.FedTrimmedAvg`](https://github.com/adap/flower/blob/main/src/py/flwr/server/strategy/fedtrimmedavg.py) ([paper](https://arxiv.org/abs/1803.01498)).

Next, you should have a look at `FedAvgM`, which adds momentum and learning rate to the aggregation: [`flwr.server.strategy.FedAvgM`](https://github.com/adap/flower/blob/main/src/py/flwr/server/strategy/fedavgm.py) ([paper](https://arxiv.org/abs/1909.06335)), and other adaptive optimization strategies like `FedAdam` ([`flwr.server.strategy.FedAdam`](https://github.com/adap/flower/blob/main/src/py/flwr/server/strategy/fedadam.py)), `FedAdagrad` ([`flwr.server.strategy.FedAdagrad`](https://github.com/adap/flower/blob/main/src/py/flwr/server/strategy/fedadagrad.py)), or `FedYogi` ([`flwr.server.strategy.FedYogi`](https://github.com/adap/flower/blob/main/src/py/flwr/server/strategy/fedyogi.py)), [here](https://arxiv.org/abs/2003.00295v5) is the paper proposing those strategies.

Hope this helps!

---

<div class="post-metadata">

**Author:** ![system](https://europe1.discourse-cdn.com/flex013/uploads/flower/original/1X/bc7fe36843c391cbd0b4e8b6f48275961d356abc.png) [@system](https://discuss.flower.ai/u/system)\
**Post date:** [April 9, 2024, 1:17pm UTC](https://discuss.flower.ai/t/aggregation-algorithms/187/3 "2024-04-09T13:17:31Z")

</div>

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.
