# Federated learning with hierarchical clustering of local updates to improve training on non-IID data 此篇作者提出,non-iid中使用single model作為唯一訓練目標最後結果沒有辦法滿足所有local dataset,因此需要以分群(cluster)的方式聚集有相似(similar)data distribution的一起執行FL training,以此達到localized。 過去研究所提出的cluster方式都是預先決定有多少個cluster,但實際是無法預先知道每個dataset的dstribution,因此也就無法決定要如何分群,作者提出的方式是可以動態決定 NOTE: *我認為cluster其實就是multi-task FL的一種* **CONTRIBUTION**: 1. FL+cluster 2. 動態分群 3. 提供詳細實驗設定 4. 使用Hierarchical clustering來分群(機器學習一種用來分類資料的方式) **NON-IID type:** 1. **Feature distribution skew**: feature的機率分布在每個dataset不一樣 2. **label distribution skew**: label的機率分布在每個dataset不一樣 3. **Concept shift (same features, different label)**: 在不同dataset中,相同feature所對應到不同label的機率有所不同 4. **Concept shift (same label, different features)**: 在不同dataset中,相同label所對應到不同feature的機率有所不同 **ALGORITHM:** 簡單來講: 1. 執行傳統FL(FedAvg)n次 (1~6) 2. 執行Hierarchical clustering來分群 (7~10) 3. 對每個群執行傳統FL(FedAvg)直到收斂 作者提到可以調整的hyperparameter of HC: 1. 如何計算兩個cluster相似度 2. 如何選擇cluster中的點來決定計算相似度 ![螢幕擷取畫面 (285)](https://hackmd.io/_uploads/HkwJ_fUHa.png) **Hierarchical clustering**: 參考文章:(有空再整理),但基本概念就是所有點一開始都作為一個群,然後bottom up的一層一層往上把兩兩相似cluster合併,直到沒有相似的。(但真正HC會合到完全只剩下一個群,再依據要哪一層來分) 1. https://ithelp.ithome.com.tw/articles/10296825?sc=iThelpR 2. https://www.bing.com/search?pglt=171&q=Agglomerative+Hierarchical+Clustering&cvid=cb069d2d292445bfbc080bcc2a967dd4&gs_lcrp=EgZjaHJvbWUyBggAEEUYOTIGCAEQRRg7MgYIAhBFGDzSAQcxMjdqMGoxqAIAsAIA&FORM=ANNTA1&PC=ACTS&ntref=1 3. https://en.wikipedia.org/wiki/Hierarchical_clustering