一种基于深度Q学习的路由规划方法技术

技术编号:17709641 阅读:56 留言:0更新日期:2018-04-14 21:15
本发明专利技术公开一种基于深度Q学习的路由规划方法,该方法为:根据网络拓扑生成奖励值矩阵,使用一个训练好的深度神经网络模型代替普通Q学习的Q值表进行路由规划。本发明专利技术利用了神经网络抽象化高层数据、自动学习的特点,相比于传统的Dijkstra算法,在大规模应用部署时能更快速地规划出最短路径。

【技术实现步骤摘要】
一种基于深度Q学习的路由规划方法
本专利技术涉及网络通信技术和强化学习领域,具体涉及一种基于深度Q学习的路由规划方法。
技术介绍
近年来,社交网络、移动互联网和物联网等领域正在快速发展,大数据正逐步成为当前关注的焦点。海量数据也对网络服务质量提出了更高的要求。大数据依赖于事先定义好的计算模式,在集中化的管理架构下操作,通常存在着非常大量的数据传输以及聚合和划分的操作。大数据每次聚合划分操作都将会导致服务器之间有海量数据进行交换,从而需要极高网络服务质量支持。传统的网络难以满足云计算和大数据等相关业务所需要的资源需求。正是在上述背景下,SDN概念被大家逐渐广泛接受和认可。SDN的概念由美国斯坦福大学CleanSlate课题组第一次提出。SDN旨在实现网络设备的数据层和控制层的彻底分离。数据层面只关注数据的传输,控制层面则关注网络的管理。随着控制层面需要管理的功能的逐步增多,学术界提出了将控制层管理系统化,抽象化。大致总结一下,SDN的精髓主要是把控制层面管理的复杂度以三种方式抽象出来:第一种是分布状态抽象。一个网络当中的多个状态主要是分散在各个路由器上面,路由器物理层面上的分散导致了处理上的困难。于是,分布状态抽象所做的工作就是将分散在各处的路由器上大量复杂状态抽象出来,然后向外部提供一个集中管理这些复杂状态的方式。这样其他部分就不需要一个一个路由器地去处理路由器查询问题,它们处理的是一个集中化的任务,这便是分布状态抽象。第二种是网络虚拟化。软件定义网络的目标就是希望网络管理员可以通过开放的编程接口来表达自己管理网络的实际需求。他们只要关心自己的网络需求,而不需要去关注这些需求具体是如何被实现的。网络控制程序不需要看到整个网络的复杂拓扑,它看到的网络只要复杂到能够实现它的需求就可以。即你看到的网络是一个虚拟的网络,这便是网络虚拟化。第三种是转发的抽象。SDN不仅仅要管理路由器上的状态,同时也需要向路由器发送相应的处理指令。各路由器由于硬件上的差异,路由器设置的细节也不尽相同。转发抽象要完成的工作就是忽略硬件上的差异,给外界抽象出一个统一的对所有路由器进行操作的界面。要实现上述功能,通信协议非常关键,现在SDN中比较流行的是OpenFlow,OpenFLow在得到了OVS(OpenVirtualSwitch)的支持后获得了广泛的应用。OpenFlow通过多级流表实现对SDN中数据流的控制。目前主流的SDN控制器如POX、FloodLight等均提供了完成数据包转发的模块,采用的也基本都是Dijkstra最短路径算法。所有数据包的转发如果都仅仅依赖于最短路径算法将会带来一个严重的问题,所有数据流很容易因为选择同一条转发路径而聚集到一起,这极大降低了网络率用率,同时也很容易导致网络拥塞。因此,需要一个更好的路由策略来管理SDN网络的路由。控制器集中式的管理模式,网络数据流量的逐步增加,急需一种新的SDN网络路由策略来保障网络的服务质量。新的网络路由策略不仅仅要考虑到面对海量数据的时候可以采用最短路径算法找到一条最短转发路径。同时还需要考虑到网络的可用带宽、时延和延迟抖动等其他链路因素,综合考虑网络各种因素的影响,给数据包选择出一条综合最优的路由策略。强化学习是多门学科多个领域交叉结合的产物,最早可以追溯到巴普洛夫的条件反射实验,但直到上世纪九十年代才逐渐被人们应用于自动控制、机器学习等领域。这主要得益于数学基础得到的突破性的进展,强化学习逐渐成为人工智能领域的核心技术之一,对强化学习的研究和应用也逐渐成为人们研究的热点。强化学习的本质是一个“decisionmaking”问题,即智能体自行做出一个最优抉择。强化学习的基本原理是:如果一个智能体的某个行为策略导致环境给出一个正的奖赏(强化信号),那么智能体之后再次产生这个行为策略的趋势便会增强。智能体的目标是在每个离散状态发现最优策略以获得最大期望奖励。现在常用的强化学习算法有TD(TemporalDifference)算法、Q学习算法、Sarsa算法等。深度Q学习(DeepQLearning,DQN),是第一个成功地将深度学习和强化学习结合起来的模型,它由Google的DeepMind首先提出。DQN算法的主要做法是通过经验回放(ExperienceReplay),将智能体探索环境得到的数据存储起来,之后随机采样,得到样本训练神经网络,更新神经网络中的参数。ExperienceReplay的动机是:1)深度神经网络作为有监督学习模型,要求数据满足独立同分布;2)Q学习算法得到的样本前后是有关系的。为了打破数据之间的关联性,ExperienceReplay通过存储-再采样的方法将数据前后的关联性打破了,使得用于训练的样本更加具有科学性。针对日益扩大的网络流量,为了解决现有路由规划方法速度慢、易拥塞等问题,研究设计一种更加合理的SDN路由策略是保证SDN网络架构下业务部署和最优化利用网络链路的前提。
技术实现思路
本专利技术为了克服Dijkstra算法的不足,提出了一种基于深度Q学习的路由规划方法。该方法利用了神经网络抽象化高层数据、自动学习的特点,相比于传统的Dijkstra算法,在大规模应用部署时能更快速地规划出最佳路径。本专利技术解决技术问题所采用的技术方案如下:一种基于深度Q学习的路由规划方法,该方法为:根据网络拓扑生成奖励值矩阵,使用一个训练好的深度神经网络模型代替普通Q学习的Q值表进行路由规划。进一步的,该方法具体为:对一个已训练完成的三层BP神经网络模型,输入当前状态s,输出当前状态可以执行的动作的q值表Q(s,allactions),根据q值表得到下一步状态s',然后,再将状态s'输入BP神经网络,重复上述操作,最终到达终点d。进一步的,所述已训练完成的三层BP神经网络模型通过以下方法训练得到:(1)训练样本m,单个样本是一个六元组{s,a,r,s',d,done},其中s代表当前状态,a代表执行动作,r代表奖励值,s'代表下一步状态,d代表终点状态,done代表是否结束,将每个样本中的s'作为一个三层BP神经网络(激活函数Relu,输入节点的数目等于网络节点的个数,输出节点数目等于动作的数目)的输入值,进行批量处理,得到s'状态下选择每个行为的q值组成的表Q(s',allactions);(2)根据公式计算出q值对应的target_q值,公式为target_q=r+γ×Max[Q(s',allactions)],g为经验折损率;(3)使用q与target_q计算损失函数loss=(target_q-q)2,优化神经网络参数,训练该三层BP神经网络模型。进一步的,所述训练样本m由深度Q学习的经验回放得到,具体如下:(1)随机初始化一个起点so和终点d,初始化经验池M,并且设置观察值(样本训练之前观察的次数);(2)自定义评价函数R,可以对状态和动作进行评价,给出奖励值r;(3)当前状态s,初始值等于so,根据随机策略选择一个行为a;(4)执行该行为a,得到对应的奖励值r,进入状态s',判断是否结束done,即s'是否为终点d;(5)将前三步所涉及的相关参数s、a、r、s'、d、done作为一条记录保存到经验池M中;(6)判断经验池中的数据是否足够,即本文档来自技高网
...
一种基于深度Q学习的路由规划方法

【技术保护点】
一种基于深度Q学习的路由规划方法,其特征在于,该方法为:根据网络拓扑生成奖励值矩阵,使用一个训练好的深度神经网络模型代替普通Q学习的Q值表进行路由规划。

【技术特征摘要】
1.一种基于深度Q学习的路由规划方法,其特征在于,该方法为:根据网络拓扑生成奖励值矩阵,使用一个训练好的深度神经网络模型代替普通Q学习的Q值表进行路由规划。2.根据权利要求1所述的一种基于深度Q学习的路由规划方法,其特征在于,该方法具体为:对一个已训练完成的三层BP神经网络模型,输入当前状态s,输出当前状态可以执行的动作的q值表Q(s,allactions),根据q值表决定下一步状态s',然后,再将状态s'输入BP神经网络,重复上述操作,最终到达终点状态d。3.根据权利要求2所述的一种基于深度Q学习的路由规划方法,其特征在于,所述已训练完成的三层BP神经网络模型通过以下方法训练得到:(1)训练样本m,单个样本是一个六元组{s,a,r,s',d,done},其中s代表当前状态,a代表执行动作,r代表奖励值,s'代表下一步状态,d代表终点状态,done代表是否结束,将每个样本中的s'作为一个三层BP神经网络(激活函数Relu,输入节点的数目等于网络节点的个数,输出节点数目等于动作的数目)的输入值,进行批量处理,得到s'状态下选择每个行为的q值组成的表Q(s',allactions)。(2)根据公式计算出q值对应的target_q值,公式...

【专利技术属性】
技术研发人员:李传煌吴艳程成钱正哲金蓉王伟明
申请(专利权)人:浙江工商大学
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1