有效
一种基于多智能体深度强化学习的多路径视频传输方法
韩彪、韩雪强、李金融、郦苏丹、赵锋、荀鹏、宋丛溪、计晓岚、梁观平、陈鑫
中国人民解放军国防科技大学
韩
韩彪 专利 35
中国人民解放军国防科技大学数字信息传输电通信技术电学
韩
韩雪强 专利 2
中国人民解放军国防科技大学电通信技术电学网络流控
李
李金融 专利 1
中国人民解放军国防科技大学点播内容图像通信电通信技术
郦
郦苏丹 专利 52
中国人民解放军国防科技大学数据交换网数字信息传输电通信技术
赵
赵锋 专利 114
中国人民解放军国防科技大学雷达系统探测部件无线电定位导航
荀
荀鹏 专利 38
中国人民解放军国防科技大学网络协议数字信息传输电通信技术
宋
宋丛溪 专利 5
中国人民解放军国防科技大学电通信技术数字信息传输电学
计
计晓岚 专利 2
中国人民解放军国防科技大学电通信技术电学网络流控
梁
梁观平 专利 1
中国人民解放军国防科技大学点播内容图像通信电通信技术
陈
陈鑫 专利 1
中国人民解放军国防科技大学点播内容图像通信电通信技术
摘要
本发明公开了一种基于多智能体深度强化学习的多路径视频传输方法,目的是解决当前多路径调度传输方法面对动态网络环境性能下降的问题;技术方案是构建基于多智能体强化学习驱动的MPQUIC视频传输系统;MPQUIC视频传输系统初始化并加载智能模型,在多路径调度视频过程中视频传输系统收集训练数据并综合应用对服务质量的多种需求进行模型训练;客户端的握手模块A和服务端的握手模块B进行握手,建立MPQUIC会话;客户端向服务端请求待播放的视频,服务端向客户端传输响应视频数据,客户端播放视频。采用本发明可使得调度策略更加趋向最优策略,极大提升传输的吞吐量,且在面对动态网络变化时,可以较好的满足应用需求。
1.一种基于多智能体深度强化学习的多路径视频传输方法,其特征在于包括以下步骤:第一步:构建基于多智能体强化学习驱动的MPQUIC视频传输系统,方法是:基于多智能体强化学习驱动的MPQUIC视频传输系统由服务端、客户端构成,客户端上安装有视频播放器A和MPQUIC传输模块A;视频播放器A由视频播放模块A、视频解码模块A和视频请求模块A组成;MPQUIC传输模块A由握手模块A、数据发送模块A、乱序重排模块A和接收模块A、乱序队列长度计算模块A组成;其中,数据发送模块A由数据流模块A、数据加密模块A、应答模块A、拥塞控制模块A和调度模块A组成;服务端上安装有视频播放器B、MPQUIC传输模块B、训练器;视频播放器B由请求解析模块B、视频存取模块B和请求响应模块B组成;MPQUIC传输模块B由握手模块B、数据发送模块B、乱序重排模块B和接收模块B组成;数据发送模块B由数据流模块B、数据加密模块B、应答模块B、拥塞控制模块B、调度模块、B路径状态收集模块B、智能模型加载模块B组成;训练器包括奖励计算模块B、训练数据存取模块B、模型训练模块B和模型存取模块B;客户端的视频请求模块A与数据流模块A相连;视频请求模块A向数据流模块A发送请求数据,以请求所要播放的视频数据;客户端视频解码模块A与乱序重排模块A和视频播放模块A相连;视频解码模块A从乱序重排模块A接收视频数据,进行视频数据解码,将解码后的视频数据输出到视频播放模块A;客户端视频播放模块A接收来自视频解码模块A解码后的视频数据,进行视频播放;客户端的握手模块A与服务端的握手模块B、客户端的数据加密模块A以及接收模块A相连;在传输请求数据前,客户端的握手模块A和服务端的握手模块B完成连接建立;客户端的握手模块A向服务器的握手模块B发送探测报文,探测报文包含连接参数,连接参数包括客户端支持的协议版本、连接ID、密钥;客户端的握手模块A还从服务端的握手模块B接收响应报文,验证服务端的证书和密钥的有效性;客户端的握手模块A根据响应报文生成会话信息A,将会话信息A发送给客户端的数据加密模块A和接收模块A;会话信息A包含响应报文中的协议版本、连接ID、密钥;服务端的握手模块B和客户端的握手模块A、服务端的数据加密模块B和接收模块B相连;服务端的握手模块B在接收到客户端的探测报文后,回复一个响应报文给客户端的握手模块A;响应报文包含确认信息、服务器证书和密钥等信息;服务端的握手模块B根据探测报文生成会话信息B,并向数据加密模块B和接收模块B输出会话信息B,会话信息B包含探测报文中的协议版本、连接ID、密钥;客户端的数据流模块A与视频请求模块A、数据加密模块A相连;数据流模块A从视频请求模块A接收请求数据,将M A 个请求数据生成M A 个数据流,并将M A 个数据流中的数据切分成N A 个客户端数据段,将N A 个客户端数据段输出到数据加密模块A;M A 和N A 均为正整数;服务端的数据流模块B与请求响应模块B、数据加密模块B相连;数据流模块B从请求响应模块B接收响应数据,将M B 个响应数据生成M B 个数据流,并将M B 个数据流中的数据切分成N B 个服务端数据段,将N B 个服务端数据段输出到数据加密模块B;M B 和N B 均为正整数;客户端的数据加密模块A与数据流模块A、握手模块A、调度模块A相连,数据加密模块A从数据流模块A接收切割后的客户端数据段,使用从握手模块A接收到的会话信息A中的密钥对切割后的客户端数据段加密,之后封装成数据报文A输出到调度模块A;服务端的数据加密模块B与数据流模块B、握手模块B和调度模块B相连,数据加密模块B接收数据流模块B发出的切割后的服务端数据段,使用从握手模块B接收到的会话信息B中的密钥对切割后的服务端数据段加密,封装成数据报文B输出到调度模块B;客户端的应答模块A与乱序队列长度计算模块A、拥塞控制模块A和服务端应答模块B相连,应答模块A从乱序队列长度计算模块A接收乱序队列长度V OFO ;从应答模块B接收应答帧B,形成路径信息,将路径信息输出到拥塞控制模块A;应答模块A将应答帧A输出到应答模块B,告知服务端数据报文B已成功接收;应答帧A新增了乱序队列长度V OFO ,V OFO 为8个字节;服务端的应答模块B与拥塞控制模块B和客户端应答模块A相连,应答模块B从应答模块A接收应答帧A,将应答帧B输出到应答模块A,告知客户端数据报文A已成功接收,将路径信息B输出到拥塞控制模块B;客户端的拥塞控制模块A与应答模块A、调度模块A相连;拥塞控制模块A接收应答模块A的路径信息A,决定客户端路径的拥塞窗口,将客户端路径的拥塞窗口输出到调度模块A;服务端的拥塞控制模块B与应答模块B、路径状态收集模块B相连;拥塞控制模块B接收应答模块B的路径信息B,决定服务端路径的拥塞控制窗口,并形成路径状态B,并将服务端路径的路径状态B输出到路径状态收集模块B;客户端的调度模块A与数据加密模块A、拥塞控制模块A相连;调度模块A接收数据加密模块发出的数据报文A,从拥塞控制模块A接收客户端路径的拥塞窗口,决定如何将数据报文分配给多条路径并传输到服务端的接收模块B;服务端的路径状态收集模块B与拥塞控制模块B、调度模块B、训练器中的奖励计算模块B相连;路径状态收集模块B接收来自拥塞控制模块B的服务端路径的路径状态B,将服务端路径的路径状态B分别发送到调度模块B和奖励计算模块B;服务端的智能模型加载模块B与调度模块B、训练器中的模型存取模块B、相连;智能模型加载模块B从模型存取模块B读取智能模型,将智能模型发送给调度模块B;服务端的调度模块B与数据加密模块B、路径状态收集模块B、智能模型加载模块B和客户端的接收模块A相连;调度模块B接收数据加密模块B发出的数据报文B,从路径状态收集模块B接收路径状态B,从智能模型加载模块B接收智能模型,使用智能模型决定每条路径可以发送的数据包的数量,并采用调度算法决定如何将数据报文分配给多条路径并传输到客户端的接收模块A;客户端的接收模块A与服务端的调度模块B、客户端握手模块A、乱序队列长度计算模块A和乱序重排模块A相连;客户端的接收模块A接收来自服务端调度模块B的数据报文B,使用从握手模块A接收的会话信息A中的密钥对数据报文B解密,取出数据段,从数据段收集数据报文信息,将数据报文信息输出到乱序队列长度计算模块A,同时将数据段输出到乱序重排模块A;服务端的接收模块B与客户端的调度模块A、服务端握手模块B和乱序重排模块B相连;服务端的接收模块B接收来自客户端调度模块A的数据报文A,使用从握手模块B接收的会话信息B中的密钥对数据报文B解密,取出数据段,将数据段输出到乱序重排模块B;客户端的乱序队列长度计算模块A与接收模块A、应答模块A相连;乱序队列长度计算模块A从接收模块A接收数据报文信息,计算接收模块A中乱序队列长度V OFO ,将乱序队列长度V OFO 输出到应答模块A;客户端的乱序重排模块A与接收模块A、视频解码模块A相连;乱序重排模块A从接收模块A接收数据段,将数据段缓存下来并按序排列,拼装成完整的视频数据,将视频数据输出到视频解码模块A;服务端的乱序重排模块B与接收模块B、请求解析模块B相连;乱序重排模块B从接收模块B接收数据段,将数据段缓存下来并按序排列,拼装成完整的请求数据,将请求数据输出到请求解析模块B;服务端的请求解析模块B与乱序重排模块B、视频存取模块B相连;请求解析模块B从乱序重排模块B接收请求数据,从请求数据解析出请求的视频信息,将请求的视频信息输出到视频存取模块B;服务端的视频存取模块B与请求解析模块B、请求响应模块B相连;视频存取模块B从请求解析模块B接收请求的视频信息,从请求的视频信息取出相应的视频数据,将相应的视频数据发送到请求响应模块B;服务端的请求响应模块B与视频存取模块B、数据流模块B相连;请求响应模块B接收来自视频存取模块B的视频数据,将视频数据进行封装,打包成响应数据,将响应数据输出到数据流模块B;服务端的奖励计算模块B与路径状态收集模块B和训练数据存取模块B相连;奖励计算模块B接收来自路径状态收集模块B的路径状态B,根据路径状态B中的信息计算奖励值,将奖励值和路径状态B封装成训练数据,将训练数据输出到训练数据存取模块B;服务端的训练数据存取模块B与奖励计算模块B、模型训练模块B相连;训练数据存取模块B接收来自奖励计算模块B的训练数据,对训练数据进行缓存,供模型训练模块B读取;服务端的模型训练模块B与训练数据存取模块B、模型存取模块B相连;模型训练模块B从训练数据存取模块B读取训练数据,训练智能模型,将训练完成的智能模型传输到模型存取模块B;智能模型是包含N个独立学习和做决策的智能体的集合,每个智能体包含一个Actor深度神经网络、一个Critic深度神经网络、一个目标Actor深度神经网络和一个目标Critic深度神经网络;每条路径对应一个Actor深度神经网络,其余神经网络均在训练过程使用;N等于客户端和服务端之间的路径条数;服务端的模型存取模块B与模型训练模块B、智能模型加载模型B相连;模型存取模块B接收来自模型训练模块B的训练完成的智能模型,将训练完成的智能模型存储下来,为智能模型加载模块B提供训练完成的智能模型;第二步:初始化并加载智能模型,方法是:2.1智能模型加载模块B检测模型存取模块B中是否存在智能模型,若不存在,则转到2.2进行智能模型初始化;若存在,则直接转到2.3进行智能模型加载;2.2为基于多智能体强化学习驱动的MPQUIC视频传输系统提供初始的神经网络结构和参数初始值,并将神经网络结构和权重参数以文件形式保存到模型存取模块B中,供智能模型加载模块B加载;2.3智能模型加载模块B读取模型存取模块B中包含神经网络结构和权重参数的智能模型文件,加载智能模型;第三步:客户端的握手模块A和服务端的握手模块B进行握手,尝试建立MPQUIC会话,方法是:3.1客户端的握手模块A向服务端的握手模块B发送探测报文,探测报文包含客户端支持的协议版本、连接ID、密钥;3.2服务端的握手模块B从客户端的握手模块A接收探测报文;3.3服务端的握手模块B回复一个响应报文给客户端的握手模块A;响应报文包含确认信息、服务器证书和密钥,并生成会话信息B;3.4客户端的握手模块A从服务端的握手模块B接收响应报文;3.5客户端的握手模块A验证服务端的连接ID,验证的方法为:判断从服务端收到的响应报文中的连接ID是否和客户端握手模块A探测报文携带的连接ID相同;如果相同,则客户端和服务端握手成功,并建立一条MPQUIC会话,生成会话信息A,将会话信息A发送给数据加密模块A和接收模块A,转第四步;如果不同,则握手失败,转3.1;第四步,客户端按4.1的流程向服务端发送请求数据,请求待播放的视频;同时服务端按4.2的流程接收客户端发出的数据报文:4.1客户端向服务端发送请求数据,请求待播放的视频,方法是:4.1.1客户端的视频请求模块A将用户要求播放的视频信息封装进请求数据,将请求数据发送到数据流模块A;4.1.2客户端的数据流模块A对请求数据生成一个数据流,并将请求数据切割成N A 个属于该数据流的数据段,将切割后的N A 个数据段发送到客户端的数据加密模块A;4.1.3客户端的数据加密模块A从客户端的握手模块A获取会话信息A,并从数据流模块A接收N A 个数据段;4.1.4客户端的数据加密模块A使用会话信息A中的密钥将N A 个数据段加密,并将多个数据段为一组封装成D A 个数据报文A,直到数据报文A大小达到最大限制字节数,即1500字节,将D A 个数据报文A输出到客户端的调度模块A,D A ≤N A ;4.1.5令数据报文初始序号d A =1;4.1.6客户端的调度模块A使用调度算法,在多条路径中选择一条路径将第d A 个数据报文A发出,若没有空闲的路径,则转4.1.6等待空闲路径;若有合适路径,转4.1.7;4.1.7客户端的调度模块A通过选择的空闲路径将第d A 个数据报文A发送到服务端接收模块B,令d A =d A +1,客户端的应答模块A等待接收来自服务端应答模块B的应答帧B,形成路径信息A发送给拥塞控制模块A,使用拥塞控制算法生成拥塞控制窗口;如果d A ≤D A ,转4.1.6;如果d A >D A ,说明该数据流的所有数据段发送完毕,转4.1.1等待发送下一个请求数据;4.2服务端接收客户端发出的数据报文,方法是:4.2.1服务端的接收模块B等待从某条路径接收第d A 个数据报文A,若服务端的接收模块B未接收到数据报文A,转4.2.1等待,若接收到数据报文A,转4.2.2;4.2.2服务端的应答模块B从接收模块B获取数据报文信息,生成一个应答帧B发送到应答模块A,表示已成功接收到第d A 个数据报文A;4.2.3服务端的接收模块B解封装收到的第d A 个数据报文A,使用握手模块B的会话信息B中的密钥对第d A 个数据报文A进行解密,取出数据段;接收模块B将数据段输出到乱序重排模块B;4.2.4服务端的乱序重排模块B根据数据段的序号对接收的数据段进行重排序;若d A <D A ,转4.2.1等待接收后续的数据报文;若d A ≥D A ,则得到请求数据,将请求数据交付给请求解析模块B,结束数据报文的接收,转第五步;第五步,服务端获取客户端的请求数据,形成响应数据,方法是:5.1服务端的请求解析模块B从服务端的乱序重排模块B接收请求数据,将请求数据解析成请求的视频信息,将请求的视频信息发送给服务端视频存取模块B;5.2服务端的视频存取模块B根据请求的视频信息调取存储在服务端的视频数据,将视频数据发送到请求响应模块B;5.3服务端请求响应模块B从服务端视频存取模块B接收视频数据,将视频数据进行封装,形成响应数据,将响应数据发送到数据流模块B;5.4服务端的数据流模块B从请求响应模块B接收响应数据;第六步,服务端按6.1-6.4的流程向客户端发送响应数据;同时客户端按6.5的流程接收服务端发出的数据报文,方法是:6.1服务端的数据流模块B对响应数据生成一个数据流,并将响应数据切割成N B 个属于该数据流的数据段,将切割后的N B 个数据段发送到服务端的数据加密模块B;6.2服务端的数据加密模块B从握手模块B获取会话信息B,并从数据流模块B接收N B 个数据段;6.3服务端的数据加密模块B使用会话信息B中的密钥将N B 个数据段加密,并将多个数据段为一组封装成D B 个数据报文B,直到数据报文大小达到最大限制字节数,即1500字节,将D B 个数据报文B输出到服务端的调度模块B,D B ≤N B ;6.4服务端调度模块B将D B 个数据报文B发送到客户端接收模块A,方法是:6.4.1初始化时间步t=1,初始化客户端和服务端之间的N条路径的拥塞控制窗口CWND 1 ,...CWND i ,...CWND N 为1,1≤i≤N,CWND i 为路径i的拥塞控制窗口;初始化时间步t-1时的路径状态B即s total (t-1)为MPQUIC连接建立时的初始状态信息,由MPQUIC协议提供,初始化时间步t-1时的智能模型的N个智能体产生决策集合a total (t-1)==(a 1 (t-1),a 2 (t-1),...,a i (t-1),...,a N (t-1))=(1,1,...,1,...,1);6.4.2若t=1,服务端智能模型加载模块B从模型存取模块B中读取初始的智能模型,服务端智能模型加载模块B将初始的智能模型发送给调度模块B,转6.4.3;若t≥2,服务端智能模型加载模块B从模型存取模块B中读取训练后的智能模型,服务端智能模型加载模块B将训练后的智能模型发送给调度模块B,转6.4.3;6.4.3服务端的调度模块B加载从服务端智能模型加载模块B接收的智能模型;6.4.4服务端的调度模块B根据时间步t时的路径状态B即s total (t),为所有路径输出一个决策;s total (t)包含信息如下:s total (t)=(s 1 (t),s 2 (t),...,s i (t),...,s N (t));s i (t)为时间步t时客户端与服务端间第i条路径的信息,表示为五元组(d i (t),c i (t),w i (t),p i (t),u i (t)),其中,d i (t)为时间步t时第i条路径的往返时延,由MPQUIC协议生成;c i (t)为时间步t时第i条路径的拥塞窗口,由MPQUIC协议生成;w i (t)为时间步t时第i条路径的发送窗口,由MPQUIC协议生成;p i (t)为时间步t时第i条路径中已经发送但未被确认的数据包数量,由MPQUIC协议生成;u i (t)为时间步t时发送缓冲区中待发送的字节数,由MPQUIC协议生成;对于时间步t,智能模型的N个智能体产生决策集合a total (t),a total (t)=(a 1 (t),a 2 (t),...,a i (t),...,a N (t));a i (t)是时间步t时第i个智能体通过智能模型输出的决策,a i (t)∈[1,4];当t=1时,令a total (t)=(1,1,...,1,...,1);对于路径i,a i (t)用于限制路径i的拥塞控制窗口CWND i ,限制后路径i的拥塞控制窗口大小为 其中,RTT i 为第i条路径上数据包往返时延,RTT min i 为RTT i 的最小值;6.4.5服务端的调度模块B执行智能模型中N个智能体的决策;6.4.6服务端的调度模块B使用调度算法在N条路径中选择一条空闲路径,将第d B 个数据报文发出,若没有空闲的路径,则转6.4.5等待空闲路径;若有合适路径,转6.4.7;6.4.7服务端的调度模块B通过选择的空闲路径将第d B 个数据报文发送给客户端的接收模块A,令d B =d B +1,令t=t+1,如果d B ≤D B ,转6.5;如果d B >D B ,说明该数据流的所有数据段发送完毕,转6.1等待服务端发送下一个响应数据;6.5客户端接收服务端发出的数据报文,方法是:6.5.1客户端的接收模块A等待从某条路径接收第d B 个数据报文B,若未接收到第d B 个数据报文B,转6.5.1等待;若接收到第d B 个数据报文B,转6.5.2;6.5.2客户端的接收模块A解封装收到的第d B 个数据报文B,使用会话信息A的密钥对第d B 个数据报文B进行解密,取出数据段;若d B <D B ,则将第d B 个数据段输出到乱序重排模块A,转6.5.3;若d B ≥D B ,说明来自服务端的N B 个数据段已经全部接收完毕,得到视频数据,客户端的视频解码模块A将解码之后的视频数据传送到视频播放模块A,转6.7;6.5.3客户端的接收模块A记录不连续的数据段,形成数据报文信息,将数据报文信息输出到乱序队列长度模块A;6.5.4乱序队列长度计算模块A将数据报文信息中的不连续数据段的个数累加形成乱序队列长度V OFO ,将乱序队列长度V OFO 发送给客户端的应答模块A;6.5.5客户端的应答模块A从乱序队列计算模块A获取乱序队列长度V OFO ,生成一个应答帧A发送到应答模块B,表示已成功接收到第d B 个数据报文B;6.5.6服务端的应答模块B接收到来自客户端应答模块A的应答帧A后,形成路径信息B发送给拥塞控制模块B;6.5.7拥塞控制模块B将路径信息B打包成五元组形成路径状态B,将路径状态B发送给服务端路径状态收集模块B;6.5.8服务端路径状态收集模块B从拥塞控制模块B获取路径状态B,将路径状态B发送给服务端的奖励计算模块B;6.5.9服务端的奖励计算模块B从路径状态收集模块B接收路径状态B,根据路径状态B计算时间步t时的奖励,记为r total (t),r total (t)=(r 1 (t),r 2 (t),...,r i (t),...,r N (t)),其中r i (t)表示时间步t时第i条路径的奖励;6.6服务端的奖励计算模块B将当前时间步t时的s total (t)和r total (t)与t-1个时间步的s total (t-1),a total (t-1)组成四元组(s total (t-1),a total (t-1),r total (t),s total (t)),形成一条训练数据,并将该条训练数据发送到训练数据存取模块B,存储到训练数据集中,转第七步;6.7视频播放模块A进行视频播放,若视频播放结束,转第八步,否则转第四步,发送下一个请求数据;第七步,训练智能模型,方法是:7.1训练数据存取模块B判断存储的训练数据数量是否大于等于预设阈值A,如果大于等于预设阈值A,转7.2;否则不进行模型训练,转7.1等待;7.2令训练迭代次数k=1;令训练轮数阈值K为正整数;7.3模型训练模块B从训练数据存取模块B随机采样批量大小为batch_size个样本,形成训练数据,记为BB={(s j total (t),a j total (t),r j total (t),s j+1 total (t))|j=1,...,batch_size};BB中第j个样本为(s j total (t),a j total (t),r j total (t),s j+1 total (t)),即步骤6.6中的一条训练数据;7.4模型训练模块B从模型存取模块B读取智能模型,对智能模型进行训练;令第i个智能体的Actor深度神经网络在第k轮训练时为 令Actor深度神经网络参数在第k轮训练时为 令第i个智能体的Critic深度神经网络在第k轮训练时为 令Critic深度神经网络参数在第k轮训练时为 令 为第k轮训练时第i个智能体的目标Actor深度神经网络, 为第k轮训练时目标Actor深度神经网络参数;令 为第k轮训练时第i个智能体的目标Critic深度神经网络, 为第k轮训练时目标Critic深度神经网络参数;7.5模型训练模块B使用梯度下降法更新智能模型中的智能体的Actor深度神经网络权值,更新过程如下:其中a i ,是第i个智能体Actor深度神经网络输入为 时输出的动作,即 是训练数据中第j个样本(s j total (t),a j total (t),r j total (t),s j+1 total (t))的第i条路径的路径状态; 表示对Actor深度神经网络的参数求解梯度; 表示对Critic深度神经网络的参数求解梯度;E[]表示期望平均函数;7.6模型训练模块B计算第i个智能体的Critic深度神经网络的期望累计奖励值y i :其中, 是训练数据中第j个样本(s j total (t),a j total (t),r j total (t),s j+1 total (t))的第i条路径的奖励函数值; 是训练数据中第j个样本(s j total (t),a j total (t),r j total (t),s j +1 total (t))所有路径的状态集合;γ是折扣因子,取值在[0,1); 是对深度Actor神经网络输入 后的输出值;7.7模型训练模块B计算Critic深度神经网络的损失函数的估计值 7.8模型训练模块B使用梯度下降方法将第k轮训练时的Critic深度神经网络权值 更新为第k+1轮训练时的Critic深度神经网络权值θ i Q (k+1):其中, 表示求损失函数 关于 的梯度;7.9模型训练模块B更新第i个智能体的目标Actor深度神经网络和目标Critic深度神经网络:其中,τ是目标网络更新系数;7.10模型训练模块B将训练完成的智能模型发送到模型存取模块B;7.11令k=k+1;7.12模型训练模块B判断k是否大于训练轮数阈值K,若k≤K,转7.2;若k>K,结束训练,将训练后的模型保存到模型存取模块B,转6.4.2;第八步,客户端和服务端之间一次视频传输和播放结束。
2.如权利要求1所述的一种基于多智能体深度强化学习的多路径视频传输方法,其特征在于所述路径状态B包含的信息是:路径的往返时延、拥塞窗口、发送窗口、已经发送但未被确认的数据包数量以及缓冲区中待发送的字节数。
3.如权利要求1所述的一种基于多智能体深度强化学习的多路径视频传输方法,其特征在于所述智能体中的Actor深度神经网络和Critic深度神经网络结构相同,均拥有三层,包括输入层,含64个神经元;隐藏层,含32个神经元;输出层,含1个神经元;目标Actor深度神经网络的结构与Actor深度神经网络结构相同,目标Critic深度神经网络的结构与Critic深度神经网络结构相同。
4.如权利要求1所述的一种基于多智能体深度强化学习的多路径视频传输方法,其特征在于2.2步所述为基于多智能体强化学习驱动的MPQUIC视频传输系统提供初始的神经网络结构和参数初始值的方法是:将Actor深度神经网络和目标Actor深度神经网络的学习率初始化为10 -5 ,将Critic深度神经网络和目标Critic深度神经网络的学习率初始化为10 -4 ;将Actor深度神经网络、Critic深度神经网络、目标Actor深度神经网络、目标Critic深度神经网络的权重参数使用随机初始化方法进行随机初始化,数值范围在0.0001-0.001之间。
5.如权利要求1所述的一种基于多智能体深度强化学习的多路径视频传输方法,其特征在于6.5.9步所述服务端的奖励计算模块B根据路径状态B计算时间步t时的奖励r total (t)的方法是:6.5.9.1计算第i条路径的权重α i , 其中, 为第i条路径的最小往返时延,由MPQUIC协议生成;η是一个系数,η∈[-1,1];η取为0,表示所有路径的权重相等;sigmod()是归一化函数,用于将α i 放缩到0-1之间;6.5.9.2计算所有路径的加权总吞吐量,记作V th , 其中,1≤p≤N;th i,t 表示第i条路径在时间步t时的吞吐量,th p,t 表示第p条路径在时间步t时的吞吐量;6.5.9.3计算 其中d i (t)为第i条路径在时间步t时的往返时延;6.5.9.4计算时间步t时第i条路径的奖励r i ,r i =V th -βV RTT -ρV OFO ,第一奖励参数β取2.5,第二奖励参数ρ取1.5,V OFO 表示乱序队列长度。
6.如权利要求1所述的一种基于多智能体深度强化学习的多路径视频传输方法,其特征在于7.1步所述预设阈值A设置为5210,7.2步所述训练轮数阈值K设置为100;7.3步所述batch_size取值为512。
7.如权利要求1所述的一种基于多智能体深度强化学习的多路径视频传输方法,其特征在于7.6步所述折扣因子γ=0.99,7.9步所述目标网络更新系数τ=0.01。



