# Optimizing Federated Learning With Deep Reinforcement Learning for Digital Twin Empowered Industrial IoT https://ieeexplore.ieee.org/document/9815106 Digital twin可以想像成一個與真實環境對應的simulator,其透IIoT的協助收集資料來做到反映現況以及預測的功能。通常DT都會使用AI來做為simulator model,因此過程中每個IIoT所收集的資料同時也作為訓練用。而在privacy issue下以及IIoT communication traffic constraint下,將所有raw data直接傳遞到central server並不實際,因此採用federated learning架構來訓練simulator model。然而IIoT Device在resource(communication和computation)以及data(data size、data quality和data distribution)的異質性造成FL訓練結果不好且收斂速度慢。藉由**DRL來協助federated learning的client selection mechanism**以及**Asynchronous Federated Learning架構處裡device resource異質性問題(未看)** KEYWORD: 1. Digital twin + IIoT (paper calls DTEI) 2. DRL(DDPG) for selection mechanism 3. Asynchronous FL CONSIDERATION OF NON-IID: * 考量**data size**、**data distribution**和**data quality**。 * **local model prediction accuracy**包含data size, data distribution和data quality。因此後續不在個別討論non-iid而是直接以local model prediction accuracy來代替,同時作為utility計算。(local model prediction accuracy代表了non-iid程度,並且作為要不要選擇其來當作client的考量。其中包含了non-iid三因素) * THINKING: <font color="#f00">偏向選擇non-iid的dataset。如果今天整體每個client dataset都有強烈的distribution特性,那這樣的設計方式讓FL沒辦法考量到”合作方式”(把不同分布組合起來可能產生一個正常分布的合作方式),因此在有機會更好的情況下無法達到更好 ⇨ 有可能用多個很不同的分布來使得最終訓練出平均分布嗎? * </font> SUMMARY: 1. 此篇以盡可能選擇iid dataset來確保global mode與local mode間沒有drift(因此就不再特別針對global mode accuracy去optimize,而是透過改善local間接改善global),同時竟可能最大化所有client utility和 2. 實際可能發生client utility是負的情況(並沒有把constraint納入RL設計) UTILITY FUNCTION: 對每個個別IIoT device的utility: **Utilty = local model prediction accuracy – cost** * local model prediction accuracy: ![image](https://hackmd.io/_uploads/SJRx2foEp.png) * data size: <font color="#f00">leak privacy?</font> * data distribution: 使用EMD, ![image](https://hackmd.io/_uploads/SyOEhMsNT.png) * data quality: pape: 沒說怎麼算的 * **cost = consumption of local data(1) + computation of local training(2) + communication of the global aggregation(3)** * ![image](https://hackmd.io/_uploads/B1uw2zs4p.png) * ![image](https://hackmd.io/_uploads/HyJdnfs4T.png) * ![image](https://hackmd.io/_uploads/rJdO3GiNT.png) RL MODEL: * state * transmission power(VECTOR) * computing resource(VECTOR) * state of the model(VECTOR) => 沒有特別說這個是甚麼 * selection state of devices : 前一個time slot的action * k(t − 1) = {κt−1 1 , κt−1 2 , . . ., κt−1 i } * (κt−1 1在time slot t-1時client 1是否有被選到。有1;無0) * Action * k(t) = {κt 1 , κt 2 , . . ., κt i } * Policy * ![image](https://hackmd.io/_uploads/SkKxpfi46.png) * 輸出是一個action * <font color="#f00">這樣action space不會太大???尤其是在IIoT超級多個client</font> * <font color="#f00">這樣的output造成client數量不能夠變動?</font> * <font color="#f00">推測1: DT的IIoT client本來就是固定的</font> * <font color="#f00">推測2: 他的policy network設計並非output n個點每個點是零或一(那是怎樣?)</font> * Reward * reward是所有有加入此輪client的utility總和 * <font color="#f00">utility不考慮global model!!!</font> ![image](https://hackmd.io/_uploads/HkpcaMj4T.png)