该论文的全称为“Internet Congestion Control via Deep Reinforcement
Learning”,收录于NIPS 2018。
该论文提出了一个新的拥塞控制算法,并命名为了Custard(CUSTomized And Robust Decision)。
启示
拥塞控制协议设计分类
拥塞控制协议的设计主要分为两类:
- 针对于某一特定的网络环境或预先设定好的一类网络环境进行的协议的设计或者自动生成。例如移动网络、卫星网络、数据中心网络等等。
- 针对于更加通用的网络环境进行的设计,例如Pantheon平台中就预置的PCC(Performance-oriented Congestion Control)拥塞控制算法。
尽管当网络环境符合前置的假设时,第一类的拥塞控制协议可能拥有更高的性能和表现,但是当环境不符合时,它们的表现也往往会更差。当然,有时通用的设计也可能在特定的网络环境下表现优于针对该网络环境所设计的特定的拥塞控制协议。
强化学习应用于拥塞控制的本质
Agent
在网络数据传输中,发送者即为强化学习中的代理人(Agent)。
Action
在网络数据传输中,动作(Action)即为针对数据发送速率的调整。
主要思想
一些参数
Monitor Intervals
MIs, 时间被分割成连续的间隔,定义每一个间隔的开始时刻为MI.
Sending Rate
在时刻的发送速率定义为
,在整个间隔中是固定的。
State
State使用发送速率以及一些统计数据进行表示,我们使用来表示时刻
时的状态向量。决定State的参数有:
- 在间隔MI中的发送速率。
- 平均接收速率。
- 丢包率。
- 平均时延。
- 时延梯度。
- 回报(Reward)。
由此,时刻的状态被表示为
,其计算方式为:
对于一个前置的参数和一个小数
表示发送速率和收集结果之间的延迟。
训练过程
神经网络的引入
使用了一个含隐层的神经网络将输入(状态向量)映射成为输出(对于发送数据的改变)
,实验表明即使是一个结构十分简单的神经网络,即一个全连接网络,也能表现得非常好。
决策函数的更新
使用以下公式对决策函数进行更新:
其中,是一个规则化参数。
网络环境
使用了四个不同的网络环境进行了训练,它们仅仅在传输容量和延迟上有区别。