强化学习-DQN改进及一些强化学习路由优化论文笔记

RL

  • 通用超参数

DQN改进

Duel Structure

VS→该state在当前policy下的value

QSA→该state进行这个action在当前policy下的value

advantage = VS - QSA

裁剪区域的确定?

34194按行输出min,33193min为90*90

Replay buffer

background knowledge

[bisect Module]

python自带的二分查找的包

重要函数

基本使用

jsx 复制代码
bisect.bisect_left(2)//返回2左端index
bisect.bisect()//与bisect_right()相同
bisect.bisect_right()//返回右端index

bisect with list

在一个increasing array插入一个元素并仍保持有序

jsx 复制代码
def list_insert(arr,num):
	ind = bisect.bisect_left(arr,num)
	arr.insert(ind,num)

a = [0,1,2,2,2,3,4]
list_insert(a,2.1)

[Sum Tree]

概念

Sum Tree 线段树,结构是二叉树,父节点是子节点的和,且只有度为0和2的情况。

可以认为叶结点表示一个相连的区间,每个叶节点的数值表示该区间长度,此时可以轻易找到任意值的对应区间的叶节点

Basic Replay Buffer

  • 记录新加入的transition→存储在list中
  • 忘记太久之前的transition→用deque数据自动遗忘,也可以覆盖list中已存在的transition
  • 从存储的记忆中抽样→用random.sample()抽样

Proportion-based Replay Buffer

Sum Tree用于记录和更新cumulative weight以进行快速采样,时间复杂度为O(logn)新功能:

  • 一个Sum Tree储存和更新每个transition的weight
  • 更新Sum Tree的方法

Rank-based Repley buffer

需要知道每个transition的td_error的rank1以调整weight,基于该rank需要计算和储存分割点,从而进行抽样,复杂度为o(n),新功能:

  • 1.对于所有transition TD_error及对应rank的存储
  • 2.更新rank的方法

由于训练过程中有大量TDerror变更,以及新加入的transition,快速更新rank需要一直维持记录一个排好序的所有TD-error的序列,这样才能在o(logn)的时间内确定rank,否则每个新样本加入时更新rank都需要O(n)的时间

快速抽样的方法是在有序TD-error的序列上抽样在对应到具体的transition,此处有俩种存储方式

  • 将transition与TD-error一起储存在tuple中
  • 将transition储存在list中,将其index和TD-error一起存储到tuple中

第一钟方式缺点:当我们删除transition时,会需要O(n)时间寻找应该删除的rank和TD-error。选择第二种存储方式,locate时间复杂度为o(1),具体如下

  • 与之前的方式类似,建立一个list存储transition
  • 建立另一个list存储transition对应rank
  • 建立第三个list储存TD-error,transition index的tuple

删改操作时间复杂度O(n)

  • gnn meets rl

    https://github.com/knowledgedefinednetworking/DRL-GNN/blob/master/DQN/README.md

  • sp

    OSPF:OSPF 即开路最短路径优先,依据该规则,网络会把数据流转发在长度最短的路径上,

    由于没有考虑链路的传输能力,个别链路容易陷入拥塞。

    MCFCSP:多物网络流流约束最短路径方案将链路的传输能力作为约束条件,在保证网络不出现

    拥塞的条件下传输数据流。

    KSP:k 路最短路径方案会在两节点对间选择前 k 条最短的路径作为路由路径对数据流完成转发操作。

    多路径路由(ECMP)**:**在多个传输路径上均匀地分配流量

  • rsir

  • 牵引控制

    DRL算法分类:基于下一跳控制的 DRL 路由方案、基于逐个数据流路径调整的 DRL 路由方案和基于全网链路权重调整的路由方案

    通过分析网络拓扑特征,结合牵引控制理论,选取部分链路作为代表链路,DRL对代表链路生成控制信号,结合网络路由算法扩展到全网路由。

    优点:避免输出动作空间过大,解决DRL维度灾难问题,策略更加健壮

    牵引链路选取:由于牵引控制理论目前尚未对复杂网络的具体牵引控制元素选择做出选择,设计启发式算法选取牵引节点

    • 在线路由策略部署阶段主要分为 3 个环节:

      1. 网络信息收集

        OpenFlow端口数据量统计字段结合采集间隔,近似计算相应端口的数据吞吐量,形成牵引链路的流量视图,作为DRL 神经网络的输入参数

      2. 智能策略生成:每个输出层对应于一个牵引链路的权重

      3. 策略执行

        默认将所有链路权重设置为 1,用DRL输出更新相应链路权重,通过 Floyd-Warshall 算法计算路由。

    DRL算法: TD3

    state为网络中链路的吞吐量信息

    action对应于牵引链路的权重

    reward综合考虑路由策略在平均时延、负载均衡和抖动等

  • Scalable DRL

    中心性的概念类似于描述一个顶点与其他顶点的关系的图中的度的概念,该链路与其他链路共享更多的转发路径,即具有较高的中心性。

    在ScaleDRL中,我们根据每个链路的中心性来选择关键链路。根据所有链路的中心性值按降序排序,并从排序的链路列表中选择中间的k个链路作为关键链路。

    • DRL:ACKTR

      行为网络以网络状态作为输入,其输出作为动作a

      批评网络以网络状态和临时动作a作为输入,对临时策略生成评价值。奖励r用于更新批评者网络。

      状态:每个链路上的流量强度分布

      动作:a^|L|·d,表示关键链接的数量,其中|L|表示关键链接的数量,d表示每个流的候选路径数。

      奖励:使用平均端到端延迟作为评估TE策略的度量标准。

  • Scalable Routing

    优点:提高路由性能和对拓扑变化的弹性。

    ScaleDeep将网络的节点分为两类:驱动节点和跟随节点。驱动节点是可以模拟网络运行的关键节点,采用钉扎控制理论进行选择,其余节点为跟随节点。

    通过从驱动节点轮询网络信息,DRL代理可以有一个近似的网络全局视图。调整驱动节点的链路权值,以动态更新路由策略。

    驱动节点选择的启发式算法:以不同的选择概率分配不同程度的节点,然后根据选择概率选择驱动节点。根据节点的程度分配(分类?)不同概率的节点,然后根据其概率选择驱动节点。

    DRL:ddpg

    DRL框架使用了两种类型的神经网络:门控递归单元(GRU)和前馈神经网络。GRU是一种先进的递归神经网络(RNN),善于从输入数据中提取与时间相关的信息。

    状态:状态是网络状态信息表示的吞吐量矩阵大小t×n,其中t表示时间步长的长度,d表示流类型的数量,和n表示总数的交通强度

    奖励r:网络中所有流的平均流完成时间

  • 基于深度强化学习的软件定义网络 QoS 优化

    优点:保证了端到端传输时延和分组丢失率,而且提高了 22.7%的网络负载均衡程度,增加了 8.2%的网络吞吐率。

    解决:基于启发式算法的 QoS 优化方案因参数与网络场景不匹配出现性能下降的问题

    方案:首先将网络资源和状态信息统一到网络模型中,然后通过长短期记忆网络提升算法的流量感知能力,最后基于深度强化学习生成满足 QoS 目标的动态流量调度策略。

    状态:某一次网络测量时网络中的流请求信息和所有链路的时延和利用率信息

    动作:各节点对之间可用转发路径的分流比重

    奖赏:优化目标是最小化网络使用率U。r=-U。

    LSTM 网络负责对网络状态信息 s 进行预处理生成隐含状态 h,并将该隐含状态传输给 Actor 和 Critic 架构中的神经网络,提高神经网络的决策的效率和准确性;Actor 和 Critic 架构中的神经网络依据LSTM网络提供的网络状态数据生成动作,并更新内部网络参数。

相关推荐
数据猎手小k8 分钟前
FineTuneBench:由斯坦福大学创建,包含625个训练问题和1075个测试问题,覆盖4个领域。目的评估商业微调API在不同泛化任务中的知识注入能力。
人工智能·深度学习·机器学习·数据集·机器学习数据集·ai大模型应用
傻瓜学习16 分钟前
机器学习知识点
人工智能·机器学习
IT古董7 小时前
【机器学习】如何使用Python的Scikit-learn库实现机器学习模型,并对数据进行预处理和特征缩放以提高模型性能?
python·机器学习·scikit-learn
至善迎风9 小时前
施密特正交化与单位化的情形
线性代数·算法·决策树·机器学习
Hali_Botebie12 小时前
拉格朗日乘子(Lagrange Multiplier)是数学分析中用于解决带有约束条件的优化问题的一种重要方法,特别是SVM
算法·机器学习·支持向量机
GOTXX12 小时前
基于深度学习的手势识别算法
人工智能·深度学习·算法·机器学习·数据挖掘·卷积神经网络
Jurio.12 小时前
【论文笔记】Large Brain Model (LaBraM, ICLR 2024)
大数据·论文阅读·人工智能·深度学习·数据挖掘
chnyi6_ya12 小时前
论文笔记:RAR: Retrieving And Ranking Augmented MLLMs for Visual Recognition
论文阅读
roman_日积跬步-终至千里15 小时前
【人工智能基础】机器学习基础
人工智能·机器学习
摆烂仙君16 小时前
代码纪元——源神重塑无序
人工智能·机器学习