Abstract
摘要:在這篇文章中,我們打算從利用新興深度學習的全新的角度研究網絡問題,開發一個experience-driven方法,使網絡或協議從自己的經驗(例如,運行時統計數據)中學習最好的辦法來control itself,正如人類的學習技能一樣。我們提出了基於 深度強化學習(DRL) 的擁塞控制框架DRL- cc (DRL for control)的設計、實現和評估,實現了基於多路徑TCP擁塞控制的經驗驅動設計思想。DRL-CC使用一個(而不是多個獨立的)代理來動態、聯合地對終端主機上的所有活動MPTCP流執行擁塞控制,其目標是最大化總體效用。我們的設計的新穎之處在於利用靈活的 循環神經網絡LSTM ,在DRL框架下學習所有活動流的表示並處理它們的動態性。此外,我們首次將上述基於LSTM的表示網絡集成到一個用於持續(擁塞)控制的 actor-critic 框架中,該框架利用新興的確定性策略梯度以端到端方式訓練critic, actor和LSTM網絡。我們在Linux內核中基於MPTCP實現了DRL-CC。實驗結果表明:1)在不犧牲公平性的前提下,DRL-CC在實際吞吐量方面一致且顯著地優於一些著名的MPTCP擁塞控制算法;2)在具有時變流量的高動態網絡環境下,DRL-CC具有靈活性和魯棒性;3)對於常規的TCP非常友好。
1 Introduction
本文的思路比較清晰,結構如下:
- 簡介部分
- 介紹DRL部分
- 如何將DRL運用到MPTCP CC問題中(重點)
- 評估(僅爲了學習方法,此部分可以跳過)
- 做的相關工作
- 結論
2 DEEP REINFORCEMENT LEARNING (DRL)
介紹DRL基礎知識的前戲不必多說,不懂的自行查閱資料,光看論文裏講的學DRL不一定能看懂。
3 DRL-BASED CONGESTION CONTROL FOR MPTCP
A. Overview
設計的DRL-CC有兩部分:
- Representation Network:利用 LSTM 以序列學習的方式學習當前所有MPTCP和TCP的狀態的 representation
- Actor-Critic:基於Representation Network,訓練Actor網絡和Critic網絡
接下來介紹下State、Action、Reward 如何表示。
State
原文中的 倆公式自己感覺有筆誤(也有可能自己理解不對)。按照原文意思 代表的是 epoch t
下 第 i
個flow(如果此flow是MPTCP,則代表第k個subflow, 代表flow裏有多少個subflow)的狀態,所以第一個公式出現的N讓人很費解,感覺有問題,而且感覺也有問題。最後以自己的理解,這兩公式應該是:
其中,裏面的指的是corresponding sending rate, goodput, average RTT, the mean deviation of RTTs and the congestion window size respectivel
. 也就是發送速率、吞吐量、平均RTT,RTTs的平均偏差和擁塞窗口大小。
Action
這個很好理解:在第 t 個 epoch 中,。其中表示擁塞控制窗口的改變大小,正數、負數和0代表着增大、減小和不改變窗口大小。並且需要注意的是每一個epoch中,僅僅只會對一個MPTCP做出action, 也稱之爲目標 MPTCP
Reward
這個也簡單。在第 t 個 epoch 中,,文中也說了,效用函數不用侷限於特定的效用函數(比如常見的就是通過throughput和delay之間的權衡),可以根據實際需要選擇,本文選取的是,表示平均的吞吐量。
B. Representation Network
- input: 狀態。需要注意的是,MPTCP流的數量是可變的,所以的長度是可變的。傳統的DNN的輸入是固定的,所以引入了LSTM神經網絡。神經網絡結構如fig2,每個流一個接一個的輸入LSTM。
- ouput:如fig2,輸入就是
值得說的是LSTM可以和Actor-Critic一起訓練。
C. Actor Critic Method
- input:和目標MPTCP流的狀態的連結一起
- output:action
具體算法如下圖,裏面具體步驟不做解釋,原文講解的很清楚。
以上三個網絡的具體結構: - representation network:single-layer LSTM unit
- actor network:是一個含有兩個隱藏層的全連接網絡,每個隱藏層都有128個神經元。隱含層的激活函數是ReLU,輸出層激活函數用的是 Hyperbolic tangent(tanh)。
- critic network:和actor network結構一樣,除了輸出層爲僅有一個神經元的線性函數。
訓練的一些參數:
- 優化器:Adam
- 學習率:0.0001 ~ 0.001
- discount factor :0.9
- 程序框架:TFLearn,是一個對tensorflow進行更高的封裝API。
D. implementation of DRL-CC
講了下如何具體的實施。
最後講了下,如果網絡環境發生變化,本方法就需要重新蒐集數據來訓練,目前還沒有很好的重新訓練的方法。也是他們將後研究的方向。
PERFORMANCE EVALUATION
跳過,後面幾章也一併跳過。