玩具专利数据库

一种能够快速且安全地利用对手的改进CFR算法

发布日期:2024-09-02 浏览次数:

本发明属于作战,具体涉及一种能够快速且安全地利用对手的改进cfr算法。背景技术:1、在作战领域,智能体间的非完美信息博弈是一个至关重要的研究课题。军事作战环境复杂多变,参与方往往无法完全获取对手的信息,这就构成了非完美信息博弈的典型场景。在此类博弈中,智能体需要根据有限的已知信息进行分析推测,并制定出科学的策略,以取得作战优势,目前,对手建模技术已经成为智能博弈领域的一大重要技术。2、如何在合作、竞争的复杂任务场景中自主决策是当前人工智能领域所要解决的关键问题。在游戏人工智能、军事仿真、自动驾驶、机器人集群控制等应用场景的多智能体系统中,智能体具有感知、记忆、规划、决策、交流、行动等许多能力,其中对其他智能体行为、意图、信念等的推理十分重要。在此过程中,智能体往往需要通过观察其他智能体,建立除自身以外的其他智能体抽象模型,推理其行为、意图、信念等要素,并用于辅助自身决策,此过程涉及到的方法被称为对手建模。对手建模技术使智能体能够快速适应对手的行为方式并且在对抗中利用其弱点获取更高收益,或在合作中使团队获得更大回报。神经网络和贝叶斯推理由于其复杂的数据分析能力和适应性而成为主流。3、神经网络在复杂场景中表现出色,因为它们具有分析大量数据和辨别复杂模式的能力。其中用于对手建模领域最著名的算法是mnih等人在2015年提出的深度q网络(deepq-network,dqn)(mnih,v.,kavukcuoglu,k.,silver,d.et al.human-level controlthrough deep reinforcement learning.nature 518,529–533(2015))。尽管dqn本身并不是专门为对手建模设计的,但它可以扩展到多智能体环境中,用于理解和预测对手的行为。其流程是通过智能体与环境交互收集经验数据,构建一个深度神经网络来近似q值函数,利用经验回放稳定学习过程,并通过最小化预期q值与实际奖励之间的差异来训练网络,最终输出能够最大化预期奖励的动作策略。而贝叶斯算法是一种基于贝叶斯定理与特征条件独立假设的分类方法。它通过学习到的数据,不断更新和完善一个已有的知识库(也就是先验概率),从而对新的数据做出更准确的预测。目前较为先进的算法有贝叶斯网络(a.torkaman and 611r.safabakhsh.robust opponent modeling in real-time612strategy games using bayesian networks.journal of ai 613and datamining,7:149–159,2019.),贝叶斯策略重用(yan zheng,zhaopeng meng,jianye 620hao,zongzhang zhang,tianpei yang,and changjie 621fan.a deep bayesian policy reuseapproach against non-622stationary agents.in proceedings of the 32nd interna-623tional conference on neural information processing sys-624tems,page 962–972,2018.)和深度业务流程再造(rosman b,hawasly m,ramamoorthy s.bayesian policyreuse[j].machine learning,2016,104:99-127.)等等。他们的框架都是类似的:首先根据历史数据或先验知识初始化对手行为的概率分布,然后实时观测对手的行为并更新这些概率分布,接着利用更新后的概率分布来预测对手未来的行为策略,最后将预测结果融入自身决策过程中,从而制定出更加有效的应对策略。4、神经网络方法在对手策略建模中的缺陷主要有以下几点:5、可解释性差:神经网络通常被视为“黑盒子”模型,因为它们的内部工作原理很难解释。在对手建模中,这可能使得我们难以理解模型为何做出特定预测,以及在什么情况下模型可能失败。6、对参数敏感:神经网络的性能通常对其参数(如学习率、网络结构等)非常敏感。在对手建模中,这可能需要进行大量的实验和调整,才能找到最优的参数设置。7、模型不稳定:神经网络在训练过程中可能会出现不稳定的情况,例如梯度消失或梯度爆炸等问题。这可能导致模型在训练过程中的性能波动,甚至可能导致训练失败。8、贝叶斯算法缺点在于:9、假设条件独立:贝叶斯算法假设各个特征之间是独立的,但在实际情况下,这个假设往往不成立。在对手建模中,对手的各种行为之间可能存在复杂的依赖关系,这可能导致贝叶斯算法的预测结果不准确。10、对输入数据的敏感度高:贝叶斯算法对输入数据的敏感度高,这意味着如果输入数据存在噪声或异常值,那么算法的预测结果可能会受到严重影响。在对手建模中,由于对手的行为可能受到各种不可预测的因素的影响,因此输入数据可能存在较大的不确定性,这可能导致贝叶斯算法的预测结果不稳定。11、而且,贝叶斯算法在实际应用中往往对计算能力有着较高的要求,尤其是在处理大规模数据集或复杂模型时,其计算复杂度和资源消耗显著增加,这使得它在需要快速响应的实时场景中很难得到有效应用,从而限制了它的实时性能。技术实现思路1、本发明的目的在于提供一种能够快速且安全地利用对手的改进cfr算法,以解决上述背景技术中提出的问题。2、为实现上述目的,本发明提供如下技术方案:一种能够快速且安全地利用对手的改进cfr算法,包括如下步骤:3、s1:存在分层次的对手时,在与真实对手z的实际博弈中,收集其对局轨迹iz,并整理成网络输入的标准格式,调用在s1中训练至收敛的分层推理神经网络m,将iz输入m,得到预测层次l,并计算轨迹iz与层次l的策略池中策略的相似性权重weight;4、s2:初始化四个策略,安全利用优化前策略seb、安全利用优化后策略sea、虚拟对手优化前策略sob、虚拟对手优化后策略soa,四个策略均初始化为空字典,初始化四个字典安全利用策略的动作历史概率和字典ae、安全利用策略的遗憾值字典re、虚拟对手的动作历史概率和字典ao、虚拟对手的遗憾值字典ro,四个字典都记录了博弈对局各信息集下的对应变量,并初始化为空字典;初始化三个变量分别统计安全利用策略的历史行动概率pi_e、虚拟对手的历史行动概率pi_o、策略集slk的历史行动概率数组pi_theta,其中pi_e和pi_o是概率标量,pi_theta是由k个概率元素组成的数组,每个元素代表一个策略集策略的历史行动概率,pi_e、pi_o及pi_theta的各元素均初始化为1;5、固定sob、seb,令对手策略为先手玩家,更新soa,令对手策略为后手玩家,更新soa;6、令sob=soa,固定sob、seb,令安全利用策略为先手玩家,更新sea,令安全利用策略为后手玩家,更新sea;7、令seb=sea,其中四次对策略的更新是通过lagrcfr算法不断递归调用实现,lagrcfr算法函数的输入参数包括要更新的策略玩家类型type,更新策略是否为先手flag、当前游戏节点node、sob、seb、soa、sea、slk、weight、pi_e、pi_o、pi_theta、ao、ro、ae、re、融合权重参数λ=0.7。8、优选地,所述s1具体包括步骤:9、s11:将z的对局轨迹iz输入分层推理神经网络m,推理该策略所属层次为l,并获取s12中生成的策略池中同层次的所有对手策略sl={s1,s1,…sm};10、s12:通过贝叶斯推理计算iz与sl中所有对手的相似性权重,并取前k=10个策略。11、优选地,所述贝叶斯推理具体计算方法为:12、将交互数据iz拆解为其中包含的所有轨迹中该策略所作的单一决策a_i及决策前的环境观测o_i的动作-观测对ao_i,共计w个;13、对sl中所有策略s_x,x∈[0,m-1],各自查询所有ao_i中决策a_i的执行概率p_x_i并连乘,其结果即为策略s_x的相似性权重weight_x,即weight_x=πp_x_i,i∈[0,w-1];14、保留前k个weight_x最大的策略构成预测层次策略集slk,同时保留它们的相似性权重构成集合weight,并且对weight归一化,使σweight[x]=1,x∈[0,k-1]。15、优选地,所述lagrcfr算法流程如下:16、若node为游戏终止节点,返回type玩家的收益;17、其他情况即node是两位玩家之一的行动节点,进行预设操作。18、优选地,所述其他情况即node是两位玩家之一的行动节点,进行预设操作具体包括步骤:19、获取本节点的行动玩家p、信息集info、可选动作集合avai,初始化节点价值value=0,各可选动作导致的子节点的价值value_0=value_1=value_2=…=0;20、如果info未被记录在任意策略中,在sob、seb中对该info的可能动作均等概率初始化即sob[info]=seb[info]=[1/可选动作数量,1/可选动作数量…,1/可选动作数量],在ro/re中对该info的可选动作的遗憾值零初始化即ro[info]=re[info]=[0,0,…,0];21、计算当前节点价值value,遍历可选动作集avai,对每个可选动作a_i进行预设操作;22、如果p=type,则更新其遗憾值字典。23、优选地,所述获取本节点的行动玩家p、信息集info、可选动作集合avai,初始化节点价值value=0,各可选动作导致的子节点的价值value_0=value_1=value_2=…=0具体包括步骤:24、计算该动作导致的下一节点node_i的历史行动概率new_pi_e或new_pi_o,如果p=o,则new_pi_e=pi_e,new_pi_o=pi_o*sob策略进行a_i行动的概率p_i,否则即p=e时,new_pi_o=pi_o,new_pi_e=pi_e*seb策略进行a_i行动的概率p_i;25、计算下一节点的策略池策略行动概率new_pi_theta,如果type=e,new_pi_theta=pi_theta*策略池各策略进行a_i行动的概率p_i_p,如果type=o,new_pi_theta=pi_theta;26、递归调用lagrcfr函数,并用下一节点价值value_i接收其返回值,本次递归调用的输入参数大多与父函数相同,变化的仅有以下四项:游戏节点node变为父函数中node采用动作a_i去往的子节点node_i,pi_e、pi_o、pi_theta则更改为前面计算的new_pi_e、new_pi_o、new_pi_theta;27、更新当前节点价值value:如果type=o:value+=p_i*value_i,如果type=e,且p=e,value+=p_i*value_i,如果type=e,且p=o:分子=(1-λ)*pi_o*p_i+λ*σpi_theta[x]*weight[x]*p_i,x∈[0,k-1],分母=(1-λ)*pi_o+λ*σpi_theta[x]*weight[x],x∈[0,k-1],value+=(分子*value_i)/分母。28、优选地,所述如果p=type,则更新其遗憾值字典具体包括步骤:29、如果info未被记录在该玩家的动作历史概率和字典中,将可选动作概率零初始化赋值给ao或ae的[info](p=o就赋值给ao,p=e就赋值给ae,后续所有o或e的变量都是如此逻辑);30、算变种的非当前玩家的历史行动概率pi_another:(ⅰ)如果type=o:pi_another=pi_e,如果type=e:pi_another+=λ*σpi_theta[x]*weight[x]+(1-λ)*pi_o,x∈[0,k-1];31、计算节点的动作历史概率ac=当前玩家历史行动概率pi_e或pi_o*p_i,然后更新ao或ae[info]+=ac;32、计算节点遗憾值re=(value_i-value)*pi_another,更新ro或re[info]+=re;33、更新策略soa或sea[info]:创建temp数组赋值为ro或re[info],并对其中的负值元素重新赋值为1e-7,然后计算soa或sea[info][i]=temp[i]/σtemp[x],i,x∈[0,k-1],最后对soa或sea[info]归一化,使各动作概率和为1。34、与现有技术相比,本发明的有益效果是:35、本发明提出的技术方案将深度学习与贝叶斯理论集成在层次对手推理模型中,用于对手策略建模,平衡了收益和计算复杂度,同时最大限度地提高安全性,通过在transit和leduchold'em等游戏中进行反复测试,表现出了优越的性能,特别是在利用不同的未知对手获得更高的平均回报方面,另外实验证明,利用神经网络的特征提取和归纳能力来减少候选策略空间是在策略空间广阔、交互有限的场景中快速预测对手策略的有效方法,此外,它不仅减少了后续贝叶斯推理的计算负荷,而且为评估对手模型的安全利用信心提供了关键参考。