---
# System prepended metadata

title: '[YWY+22]Optimizing Federated Learning With Deep Reinforcement Learning for Digital Twin Empowered Industrial IoT'

---

# 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)



    




