CN112437690A - 确定执行设备的动作选择方针 - Google Patents
确定执行设备的动作选择方针 Download PDFInfo
- Publication number
- CN112437690A CN112437690A CN202080003374.2A CN202080003374A CN112437690A CN 112437690 A CN112437690 A CN 112437690A CN 202080003374 A CN202080003374 A CN 202080003374A CN 112437690 A CN112437690 A CN 112437690A
- Authority
- CN
- China
- Prior art keywords
- subtask
- specified
- vnn
- sequence
- previous
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000009471 action Effects 0.000 title claims abstract description 212
- 238000000034 method Methods 0.000 claims abstract description 161
- 238000013528 artificial neural network Methods 0.000 claims abstract description 67
- 238000004422 calculation algorithm Methods 0.000 claims description 86
- 238000012549 training Methods 0.000 claims description 50
- 230000015654 memory Effects 0.000 claims description 24
- 230000004044 response Effects 0.000 claims description 17
- 230000008569 process Effects 0.000 description 77
- 230000000875 corresponding effect Effects 0.000 description 46
- 238000005070 sampling Methods 0.000 description 33
- 238000012545 processing Methods 0.000 description 21
- 238000013473 artificial intelligence Methods 0.000 description 19
- 238000004590 computer program Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 15
- 230000001276 controlling effect Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 11
- 230000033001 locomotion Effects 0.000 description 9
- 230000003993 interaction Effects 0.000 description 8
- 230000008901 benefit Effects 0.000 description 7
- 238000007726 management method Methods 0.000 description 7
- 208000001613 Gambling Diseases 0.000 description 6
- 239000003795 chemical substances by application Substances 0.000 description 5
- 238000009826 distribution Methods 0.000 description 5
- 240000002853 Nelumbo nucifera Species 0.000 description 4
- 235000006508 Nelumbo nucifera Nutrition 0.000 description 4
- 235000006510 Nelumbo pentapetala Nutrition 0.000 description 4
- 238000010420 art technique Methods 0.000 description 4
- 238000005094 computer simulation Methods 0.000 description 4
- 238000013439 planning Methods 0.000 description 4
- 230000002265 prevention Effects 0.000 description 4
- 230000001373 regressive effect Effects 0.000 description 4
- 238000013468 resource allocation Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000001186 cumulative effect Effects 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000001537 neural effect Effects 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- 206010048669 Terminal state Diseases 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000003542 behavioural effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000010367 cloning Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- VEMKTZHHVJILDY-UHFFFAOYSA-N resmethrin Chemical compound CC1(C)C(C=C(C)C)C1C(=O)OCC1=COC(CC=2C=CC=CC=2)=C1 VEMKTZHHVJILDY-UHFFFAOYSA-N 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 229910003460 diamond Inorganic materials 0.000 description 1
- 239000010432 diamond Substances 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W60/00—Drive control systems specially adapted for autonomous road vehicles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
- G06F18/2148—Generating training patterns; Bootstrap methods, e.g. bagging or boosting characterised by the process organisation or structure, e.g. boosting cascade
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2415—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/15—Vehicle, aircraft or watercraft design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/27—Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
- G06F9/528—Mutual exclusion algorithms by using speculative mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/01—Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/25—Pc structure of the system
- G05B2219/25255—Neural network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Geometry (AREA)
- Computer Hardware Design (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Automation & Control Theory (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Human Computer Interaction (AREA)
- Transportation (AREA)
- Mechanical Engineering (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Aviation & Aerospace Engineering (AREA)
- Pure & Applied Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Medical Informatics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- User Interface Of Digital Computer (AREA)
- Supply And Distribution Of Alternating Current (AREA)
- Feedback Control In General (AREA)
- Computer And Data Communications (AREA)
Abstract
描述了计算机实现的用于生成促使执行设备完成任务的动作选择方针的方法、系统和装置,包括计算机可读介质。获得表示被划分为子任务序列的任务的数据。对于子任务序列中除第一个子任务之外的指定子任务,训练值神经网络(VNN)。该VNN接收包括达到指定子任务的子任务初始状态的达到概率的输入,并预测执行设备在指定子任务的子任务初始状态下的奖励。基于VNN训练针对指定子任务之前的先前子任务的策略神经网络(SNN)。该SNN接收包括达到先前子任务的子任务状态的动作序列,并预测执行设备在先前子任务的子任务状态下的动作选择方针。
Description
技术领域
本文涉及确定用于执行设备的动作选择方针,以在包括执行设备以及一个或多个其他设备的环境中完成任务。
背景技术
诸如自动驾驶车辆(AV)控制、资源分配、交通路线规划和控制、产品/服务推荐、网络攻击预测和/或预防、欺诈管理、贸易、投标以及公开拍卖之类的现实世界场景可以通过博弈中两个或更多个参与方(也称为玩家)之间的策略交互来建模、表示和模拟。例如,这些现实生活场景可以表示为涉及两个或更多个玩家的不完美信息博弈(ImperfectInformation Game,IIG),其中玩家在做出决策之前只能部分获得其对手的知识。由于信息隐藏,玩家必须在对对手的信息不确定的情况下做出决策,并且其还需要采取行动以利用对手对自己的信息不确定的优势。
在某些情况下,用于求解现实生活场景中存在的IIG问题的计算机模拟可以帮助找到针对现实生活场景的有用解决方案。特别是对于具有表示了涉及不同环境条件和决策的复杂现实生活场景的大量待选择的可能状态和可能行动的大型博弈而言,求解IIG可能会耗费大量计算资源和时间。例如,大型或超大型(very-large-scale,VLS)IIG可以表示涉及复杂地理区域中的大量车辆以及例如车辆方向和速度的各种控制动作的复杂自动驾驶车辆场景,该复杂地理区域具有不同的道路、天气和交通状况。对于大型IIG而言,找到最优解可能需要大量的计算资源,包括计算时间、处理能力和存储空间。期望以有效的方式求解大型或超大型IIG的技术,尤其是对于实时应用。
发明内容
主题的所述实施例可以单独地或以组合的形式包括一个或多个特征。
例如,在一个实施例中,一种计算机实现的用于生成促使执行设备在包括执行设备以及一个或多个其他设备的环境中完成任务的动作选择方针的方法,所述方法包括:获得表示被划分为子任务序列的任务的数据,其中,任务包括任务初始状态、多个非任务终点状态和多个任务终点状态,其中,每个任务终点状态是由执行设备以及一个或多个其他设备在多个非任务终点状态的子集下采取的动作序列导致的,并且多个任务终点状态具有任务终点状态下的对应奖励,子任务序列中的每个子任务包括该子任务的一个或多个子任务初始状态及多个子任务终点状态,除了子任务序列中的最后一个子任务外,子任务的多个子任务终点状态是子任务序列中该子任务之后的下一个子任务的多个子任务初始状态;对于子任务序列中除了第一子任务之外的指定子任务,训练针对该指定子任务的值神经网络(VNN),其中,针对该指定子任务的VNN接收包括执行设备以及一个或多个其他设备达到指定子任务的子任务初始状态的达到概率的输入,并预测执行设备在指定子任务的子任务初始状态下的奖励;以及基于针对该指定子任务的VNN,训练针对子任务序列中指定子任务之前的先前子任务的策略神经网络(SNN),其中,针对先前子任务的SNN接收包括由达到先前子任务的子任务状态的执行设备以及一个或多个其他设备采取的动作序列的输入,并预测执行设备在先前子任务的子任务状态下的动作选择方针。
在一些实施例中,可以使用系统、方法或计算机程序或者系统、方法和计算机程序的任何组合来实现这些一般和特定方面。以上和其他所述实施例可各自可选地包括一个或多个以下方面:
在一些实施例中,所述方法还包括基于由针对先前子任务的SNN生成的输出,确定用于完成先前子任务的动作选择方针;以及根据用于完成先前子任务的动作选择方针,控制执行设备在先前子任务中的操作。
在一些实施例中,训练针对指定子任务的VNN包括使用来自针对子任务序列中指定子任务之后的下一个子任务的VNN的输出来训练针对指定子任务的VNN,针对下一个子任务的VNN接收包括执行设备以及一个或多个其他设备达到下一个子任务的子任务初始状态的达到概率的输入,并且来自针对下一个子任务的VNN的输出包括执行设备在下一个子任务的子任务初始状态下的奖励。
在一些实施例中,训练针对指定子任务的值神经网络(VNN)包括:获得向针对指定子任务的VNN的多个样本输入,其中,多个样本输入中的每一个包括:达到指定子任务的子任务初始状态的执行设备以及一个或多个其他设备的公开信息、执行设备以及一个或多个其他设备达到指定子任务的子任务初始状态的达到概率;对于多个样本输入中的每一个,通过执行CFR算法,计算执行设备在指定子任务的子任务初始状下的样本奖励;以及基于多个样本输入中的每一个和执行设备在指定子任务的子任务初始状态下的样本奖励,训练针对指定子任务的VNN。
在一些实施例中,基于针对指定子任务的VNN训练针对先前子任务的SNN包括:基于针对指定子任务的VNN的输出,预测在先前子任务的多个子任务终点状态下的多个奖励;以及根据基于神经网络的CFR算法,基于在先前子任务的多个子任务终点状态下的多个奖励,训练针对先前子任务的SNN。
在一些实施例中,所述方法还包括:基于针对子任务序列中另一子任务之后的子任务的VNN来训练针对子任务序列中的另一子任务的另一策略神经网络(SNN),其中,训练针对另一子任务的SNN是独立于训练针对先前子任务的SNN执行的。
在一些实施例中,基于针对指定子任务的VNN来训练针对先前子任务的SNN是响应于确定先前子任务的复杂度超过阈值而执行的。
可理解的是,根据本文的方法可以包括本文描述的方面和特征的任意结合。也就是,根据本文的方法不限于本文具体描述的方面和特征的结合,而是包括所提供的方面和特征的任意结合。
在以下附图和描述中阐述了本文的一个或多个实施例的细节。本文的其他特征和优点将从描述和附图以及权利要求而显现。
附图说明
图1A和图1B是示出根据本文实施例的库恩扑克(Kuhn Poker)的博弈树和公开树的示例的图。
图2是示出根据本文实施例的计算机实现的被配置为求解超大型(VLS)不完美信息博弈(IIG)的系统的示例的图。
图3是根据本文实施例的用于求解大型或超大型(VLS)不完美信息博弈(IIG)的处理的示例的流程图。
图4是根据本文实施例的用于生成动作选择方针以促使执行设备在包括执行设备以及一个或多个其他设备的环境中完成任务的处理的示例的流程图。
图5是根据本文实施例的用于生成动作选择方针以促使执行设备在包括执行设备以及一个或多个其他设备的环境中完成任务的处理的另一示例的流程图。
图6描绘了示出根据本文实施例的计算机实现的系统的示例的框图,该计算机实现的系统被用于提供与所描述的算法、方法、功能、处理、流程和进程相关联的计算功能。
图7描绘了根据本文的实施例的装置的模块的示例。
图8示出了根据本文的实施例的另一装置的模块的示例。
各个附图中相同的附图标记和名称表示相同的元件。
具体实施方式
本文描述了用于确定执行设备的动作选择方针的技术,以在包括执行设备以及一个或多个其他设备的环境中完成任务,例如,用于执行设备与一个或多个其他设备之间的策略交互。设备之间的策略交互可以被表示和建模为博弈。例如,执行设备可以执行用于搜索执行设备与一个或多个其他设备之间的博弈的纳什均衡(包括近似纳什均衡)的计算机实现的方法,并获得导致纳什均衡或近似纳什均衡的动作选择方针(例如,解法或策略)。在一些实施例中,这些技术可以涉及执行反事实遗憾最小化(CFR)算法以求解不完美信息博弈(IIG)。在一些实施例中,这些技术可以降低计算复杂度和方差,同时提高CFR算法的收敛速度。
在一些实施例中,这些技术可以显著降低求解博弈所需的计算复杂度。在一些实施例中,这些技术可以求解表示复杂的现实世界场景但对于计算而言过于昂贵或以现有技术求解不实际的大型或甚至超大型(VLS)博弈(也称为超级大型(ultra-large-scale,ULS)博弈)。例如,与那些可以在合理的时间量内并且耗费合理的资源量通过现有技术能够求解的博弈相比,所描述的技术可以求解规模较大的博弈(例如,就博弈大小或复杂度而言,大约高两个数量级)。
在一些实施例中,与现有技术相比,所描述的技术可以节省存储空间。例如,所描述的技术可以使用比诸如表格式反事实遗憾最小化(counterfactual regretminimization,CFR)算法之类的现有技术小几个数量级的存储空间,而获得了与现有技术相似甚至比其更好的结果。
在一些实施例中,这些技术可以涉及执行反事实遗憾最小化(CFR)算法以求解不完美信息博弈(IIG)。IIG可以表示一种或多种现实场景,例如自动驾驶车辆(AV)控制、资源分配、产品/服务推荐、网络攻击预测和/或预防、交通路线规划、欺诈管理、贸易、投标等,其中涉及两个或更多个参与方(也称为玩家)的信息,且每个参与方可以具有关于另一参与方决策的不完美或不完全信息。本文使用扑克作为IIG的示例。所描述的技术可以在许多其他人工智能(AI)和机器学习应用中使用。
求解IIG的典型目标是找到纳什均衡,使得任何玩家都无法单方面提高奖励。换句话说,纳什均衡是涉及两个或更多个玩家的IIG的典型解法。反事实遗憾最小化(CFR)是一种旨在近似地找到大型博弈的纳什均衡的算法。CFR试图使整体反事实遗憾最小化。事实证明,所有迭代中策略的平均值将收敛到纳什均衡。在求解博弈时,原始形式的CFR(也称为原始CFR、标准CFR、普通CFR或简称为CFR)在每次迭代中遍历整个博弈树。
引入蒙特卡洛CFR(MCCFR)以最小化反事实遗憾。MCCFR可以根据采样的经验求解不完美信息博弈。与原始CFR不同,MCCFR在每次迭代中对博弈树中的节点子集进行采样。MCCFR可以计算反事实值的无偏估计,并避免遍历整个博弈树。由于在每次迭代中仅访问所有信息集的子集,因此MCCFR比原始CFR需要更少的存储空间。MCCFR可以包括不同的版本或变体,例如取决于不同的采样方针。MCCFR通常因采样而长期性能较差且方差较高。
原始CFR和MCCFR算法(以及它们各自的变体,例如MCCFR+算法)都在每次迭代期间例如在表格或其他数据结构中存储算法的迭代和平均策略。在一些实施例中,原始CFR和MCCFR算法可以被称为表格式CFR算法或方法,其在每次迭代期间使用一个或多个表格或其他数据结构来存储CFR算法的策略的方法。从表格式CFR算法输出的策略是在CFR算法经过迭代而收敛之后根据CFR算法实际计算的策略,而不是基于神经网络进行预测或生成的策略。
表格式CFR算法可能需要大量的存储空间和计算能力,因为博弈的大小可能很大(例如,就可能状态的数量或博弈树的大小而言),并且算法可能需要进行数千次迭代来收敛。因此,使用具有有限存储空间或计算能力的表格式CFR算法来求解大型博弈(例如,具有总数大约为104~109的可能状态的博弈)或超大型博弈(例如,可具有总数大约为109或以上的可能状态的博弈)可能是不现实的。
在一些实施例中,所描述的技术可以以有效的方式求解大型或超大型博弈。在一些实施例中,所描述的技术可以用于自动控制、自动驾驶车辆控制、机器人技术、AI扑克、推荐平台以及许多其他AI和机器学习应用中,以实时地或基本实时地提供解决方案(例如,策略或动作选择方针)。例如,所描述的技术可以在计算机实现的和人类玩家实时玩德州扑克的AI扑克系统中使用。
在一些实施例中,所描述的技术可以策略性地将大型或超大型IIG划分为多个时期或阶段,以将复杂的博弈解耦为可以更有效地求解的多个子博弈或子任务,特别是对于实时应用而言。例如,大型或超大型IIG可以由具有大量层级的深度的博弈树表示。通过该划分,多个子博弈中的每一个可以具有比整个博弈树更小的深度,该深度中具有更少的层级,并且可以以减少的计算资源需求和提高的计算效率来单独求解多个子博弈中的每一个。
在一些实施例中,在多个子博弈中,如果子博弈的复杂度仍然很大(例如,对应于子博弈的子树较宽),则可以使用基于神经网络的CFR算法来求解子博弈,这可以进一步减少计算资源需求并提高计算效率。基于神经网络的CFR算法使用一个或多个神经网络来预测接近博弈纳什均衡的策略。所描述的技术可以训练预测特定子博弈的策略的一个或多个策略神经网络(SNN)。所描述的技术可以利用神经网络的泛化能力,因此不需要超级计算机来计算和存储大量策略以遍历大型子博弈或博弈,特别是对于实时应用而言。
在一些实施例中,可以基于子博弈的终点状态的奖励(也称为效用或收益)来训练每个子博弈的SNN。子博弈的终点状态通常是原始博弈的非终点状态。因此,子博弈的终点状态的奖励(也称为中间奖励)是未知的。整个博弈的策略性划分允许预先确定子博弈的终点状态的中间奖励,例如,使用被称为值神经网络(VNN)的另一种类型的神经网络。在一些实施例中,可以基于来自VNN的输出来训练SNN。
在一些实施例中,所描述的技术允许在训练时期期间预先训练SNN和VNN。在应用/推理时期,所描述的技术可以使用训练的SNN实时有效地计算策略。
本文中描述的技术可以产生一个或多个技术优势。在一些实施例中,所描述的技术可以确定用于执行设备的动作选择方针,以在包括执行设备以及一个或多个其他设备的环境中完成任务。在一些实施例中,所描述的技术可以确定用于软件实现应用的动作选择方针,该软件实现应用在包括该应用支持的执行方以及一个或多个其他参与方的环境中执行动作。在一些实施例中,所描述的技术可以用于自动控制、自动驾驶车辆控制、机器人技术或涉及动作选择的其他应用中。例如,所确定的动作选择方针可以用于控制发动机、马达、致动器、阀和其他设备,或者可以应用于控制电路中以控制一个或多个设备的操作。在一个示例中,鉴于对环境中其他车辆的运动的预测,自动驾驶车辆的控制系统可以适于控制自动驾驶车辆的速度、加速度、方向和/或行驶时间。控制系统可以以更好的路线选择、减少的行驶时间和/或更低的燃料消耗来帮助自动驾驶车辆到达期望的目的地。例如,这可以促进交通规划、避免事故和提高操作安全性。
作为在自动驾驶车辆中的应用的示例,环境可以包括多个自动驾驶车辆,用于完成诸如交通规划或控制的任务,以避免碰撞并到达多个自动驾驶车辆的各个目的地。多个自动驾驶车辆中的每个都可以配备有执行设备,执行设备可以实施软件实现应用,以生成动作选择方针,从而在环境中完成任务。所生成的动作选择方针包括控制信息,该控制信息被配置为控制自动驾驶车辆的发动机、马达、致动器、制动器等中的一个或多个。因此,它可以被多个自动驾驶车辆中的每个用来控制自动驾驶车辆的一个或多个发动机、马达、致动器、制动器等,使得自动驾驶车辆可以遵循所生成的动作选择方针来实现任务。在一些实施例中,可以由IIG对任务进行建模,并且可以通过计算机模拟(例如,通过求解IIG)来生成动作选择方针以实现任务。多个自动驾驶汽车中的每个都可以表示IIG的一个参与方。动作可以包括例如自动驾驶车辆的指定方向、速度、距离、时间或任何其他度量中的一个或多个。自动驾驶车辆的动作选择方针可以包括在不同状态下(例如,地理位置中的不同十字路口)选择各个动作的策略,使得自动驾驶车辆可以在环境中导航并到达目的地。
作为机器人技术应用的另一示例,环境可以包括工业机器人(例如,仓库机器人),其与一个或多个其他参与方(例如,其他机器人)进行交互以完成任务(例如,在仓库中移动物品或组装一些产品)。在一些实施例中,可以由IIG对任务进行建模,并且可以通过计算机模拟(例如,通过求解IIG)来生成动作选择方针以实现任务。该动作可以包括例如工业机器人的指定方向、位置、速度或任何其他运动中的一个或多个。工业机器人的动作选择方针可以包括在不同状态下(例如,仓库中的不同位置)选择各个动作的策略,使得工业机器人可以在环境中导航并完成任务(例如,移动仓库中的物品)。
在一些实施例中,所描述的技术可以帮助找到诸如资源分配、产品/服务推荐、网络攻击预测和/或预防、交通路线规划、欺诈管理等的现实场景的更好策略,这些策略可以是由各方之间的策略交互来建模或表示,例如涉及两个或更多个参与方的IIG,尤其是现有技术由于存储空间或计算能力有限而无法处理的大型或超大型IGG。
在一些实施例中,与在求解涉及大量可能动作和状态的大型或超大型博弈中由于存储空间有限而只能存储有限数量的策略或粗糙策略的表格式CFR算法相比,所描述的技术可以计算更精细的策略,从而可以针对复杂的现实世界场景提供更好的策略或解决方案。
在一些实施例中,与现有的CFR算法相比,所描述的技术可以节省存储空间。例如,与表格式CFR算法相比,所描述的技术可以使用比表格式CFR算法小几个数量级的存储空间,而获得与表格式CFR算法相似甚至比其更好的收敛策略。
在一些实施例中,所描述的技术可以帮助以更有效的方式找到现实场景的策略。因此,可以用较少的计算机模拟量和/或在减少的等待时间/响应时间内找到现实场景的解法或策略。在一些实施例中,可以在显著更短的响应时间内找到解法或策略,从而有助于使需要实时或接近实时响应或控制的某些现实场景成为可能。
在一些实施例中,扩展式IIG可以表示为如下。IIG中有n个玩家(机会除外)。N={1,...,n}是玩家的有限集合,并且每个成员都是玩家。在两玩家博弈中,N={1,2}。这两个玩家由p1和p2表示。对手观察不到玩家i的隐藏信息(变量),该信息由hv i表示。每个成员h∈H指可能的历史(或状态)。历史(或状态)可以包括导致状态的动作序列(包括机会的动作)。
对于玩家i,指玩家i以外的所有玩家的隐藏信息。空序列是H的成员。表示hj是h的前提。Z表示终点历史的集合,并且任何成员z∈Z都不是任何其他序列的前提。终点历史也可以称为终点状态,其可以是IIG的结束状态。在终点历史中任何玩家都无需采取进一步的动作。每个终点历史z∈Z对每个玩家i都有关联的效用或收益。
玩家函数P将N∪{c}的成员分配给每个非终点历史,其中c表示机会玩家。P(h)是在h下采取动作的玩家。A(h)={a:ha∈H}是h∈H\Z之后的可用动作的集合。非终点历史也可以称为非终点状态,其可以是IIG的中间状态。一个或多个玩家可以在非终点状态下采取可能动作,从而导致另一状态。
历史{h∈H:P(h)=i}的Ii是玩家i的信息分划。集合Ii∈Ii是玩家i的信息集(infoset),并且Ii(h)是指状态h下的信息集Ii。对于Ii∈Ii,A(Ii)=A(h)和P(Ii)=P(h)。如果一个博弈中的所有玩家都可以回忆起他们以前的动作和信息集,则称为完美回忆博弈。
鉴于所有玩家的历史,可以递归建立前提树(trie)。这样的前提树在博弈理论中被称为博弈树。博弈树中的每个节点都指的是历史h。每个玩家的信息集树都建立在信息集而不是历史上。公开树是建立在公开序列上的前提树。每个公开序列都可以包括所有玩家甚至第三方观察者公开已知或可以观察到的动作。在一些实施例中,终点历史或终点状态可以由博弈树或公开树的终点节点或叶子节点表示。非终点历史或非终点状态可以由博弈树或公开树的非终点节点表示。终点历史z对应于动作序列(也称为终点动作序列),其包括所有玩家所采取的导致终点历史z的动作。例如,终点历史z对应于沿着从博弈树或公开树的根节点到终点节点z的轨迹或路径的动作序列,其包括所有玩家采取的导致终点历史z的动作。
图1A和图1B是示出根据本文的实施例的库恩扑克的博弈树100和公开树150的示例的图。库恩扑克是零和两玩家IIG扑克的示例。库恩扑克是扩展式博弈的示例。博弈规则定义如下。整付牌仅包含三张扑克牌,例如,国王(K)、女王(Q)和杰克(J)。向每个玩家发一张牌,其可与标准扑克博弈类似地下注。如果两个玩家都下注或两个玩家都过牌,则牌较高的玩家获胜,否则下注玩家获胜。
博弈树是有向图。博弈树的节点表示博弈中的位置(或玩家的状态)。如图1A所示,博弈树100的根节点110由圆圈表示,该圆圈是机会节点(也称为玩家0)。博弈树100的每个终点节点或叶子节点(例如,终点节点143a、153a、153b、143c、143d、147a、157a、157b、147c或147d)由菱形表示,表示博弈中一个或两个玩家的收益的终点状态。每个正方形(例如,非终点节点123、127、143b或147b)表示玩家1的状态。每个三角形(例如,非终点节点133a、133b、137a或137b)表示玩家2的状态。在一些实施例中,hi表示非终点节点,zi表示终点节点。
在向每个玩家发一张牌之后,有六个不同的可能状态。如从根节点110向外的六个箭头所示,六个不同的可能状态为[J,Q]、[J,K]、[Q,J]、[Q,K]、[K,J]、[K,Q],分别表示玩家1和玩家2收到的牌。博弈树100示出六个可能状态中的两个的子树103和107。对应于状态[J,Q]的左子树103指示两个玩家(玩家1和玩家2)分别被发到J和Q。对应于状态[J,K]的右子树107指示两个玩家(玩家1和玩家2)分别被发到J和K。
从博弈树的节点(或边)向外的箭头可以表示玩家在博弈状态下的可能动作。如图1A所示,节点123向外的箭头表示玩家1在与状态[J,Q]相对应的节点123的状态下的可能动作A1a和A1b。类似地,节点133a向外的箭头表示玩家2在与玩家1选择的[J,Q,A1a]状态相对应的节点133a的状态下的可能动作A2a和A2b。节点133b向外的箭头表示玩家2在与状态[J,Q,A1b]相对应的节点133b的状态下的可能动作A2c和A2d。
从根节点110到每个节点的轨迹是动作的序列或历史。例如,如子树103中所示,非终点节点143b对应于包括动作[J,Q,A1a,A2b]的动作(可以表示为h143b)的序列或历史。终点节点153b对应于包括动作[J,Q,A1a,A2b,A3b]的动作(可以表示为h153b)的序列或历史。由于节点153b是终点节点,因该动作序列[J,Q,A1a,A2b,A3b]可以称为终点动作序列(导致或引起终点状态153b)。在子树103中,节点143b是终点节点153b的前提。类似地,终点节点143c对应于包括动作[J,Q,A1b,A2c]的动作(可以表示为h143c)的序列或历史。
在IIG中,玩家2看不到玩家1的私牌。类似地,玩家1看不到玩家2的私牌。因此,玩家1在与状态[J,Q]相对应的节点123处和与状态[J,K]相对应的节点127处可用的信息实际上是相同的,因为玩家1只知道其私牌J,而不知道对手玩家2的私牌是Q还是K。信息集Ii可以用于表示这些未区分状态的集合。令h123表示节点123的状态,而I1(h123)表示在节点123的状态下的信息集,并且h127表示节点127的状态,而I1(h127)表示在节点127的状态下的信息集。在该示例中,I1(h123)=I1(h127)。通常,任何Ii∈I包括玩家i观察到的信息,其包括玩家i的隐藏变量(例如,私牌)和公开动作。在此示例中,I1(h123)=I1(h127)=J,其可以表示为I11。
类似地,玩家1在与状态[Q,J]和[Q,K]相对应的节点处可用的信息是相同的,可以由包括玩家1的私牌Q的相同信息集I12来表示。玩家1在与状态[K,J]和[K,Q]相对应的节点处可用的信息是相同的,可以由包括玩家1的私牌K的相同信息集I13来表示。
图1B示出对应于博弈树100的公开树150。公开树150中的每个节点125、135a、135b、145a、145b、145c、145d、155a或155b可以表示包括公开动作的序列或历史(也称为公开序列)的公开状态。每个节点对应于信息集的向量对于它们可以指示相同的公开序列。指向量的长度。例如,如图1B所示,节点125对应于初始公开序列,在该示例中其为空节点125与玩家1的信息集向量相关联,分别对应于玩家1的私牌J、Q、K。
作为另一示例,节点135a可以表示包括玩家1的动作[A1a]的公开序列并且对应于玩家2的信息集向量。类似地,节点135b可以表示包括玩家1的动作[A1b]的公开序列,并且对应于玩家2的信息集的另一向量。非终点节点145b对应于包括公开动作[A1a,A2b]的公开序列。终点节点155b对应于包括公开动作[A1a,A2b,A3b]的公开序列。
在一些实施例中,公开树150中的非终点节点145b可以表示六个不同的可能初始状态[J,Q]、[J,K]、[Q,J]、[Q,K]、[K,J]和[K,Q]之间的共同公开状态。非终点节点145b的共同公开状态包括包含公开动作[A1a,A2b]的公开序列,并且对应于玩家1在非终点节点145b处的信息集向量,I11(节点145b)可以表示玩家1在非终点节点145b处的信息集,其包括玩家1的私人动作和导致非终点节点145b的共同序列。即,I11(节点145b)=[J,A1a,A2b]。类似地,I12(节点145b)=[Q,A1a,A2b];以及I13(节点145b)=[K,A1a,A2b]。信息集I11(节点145b)可以由博弈树100中的两个节点143b和147b共享。节点143b对应于博弈中所有玩家的导致节点143b的私人动作和公开动作的序列。即,h143b=[J,Q,A1a,A2b]。类似地,节点147b对应于博弈中所有玩家的导致节点147b的私人动作和公开动作的序列。即,h1473b=[J,K,A1a,A2b]。可以看出,h143b和h1473b共享相同的信息集I11(节点145b)=[J,A1a,A2b]。
在一些实施例中,IIG的策略和纳什均衡可以表示如下。对于玩家i∈N,扩展式博弈中的策略σi(Ii)将A(Ii)上的动作分布分配给信息集Ii。策略组合(strategy profile)可以表示为σ={σi|σi∈Σi,i∈N},其中Σi是玩家i的所有可能策略的集合。σ-i是指σ中除σi之外的所有策略。σi(Ii)是信息集Ii的策略。σi(a|h)是指玩家i在状态h下采取动作a的概率。h2∈Ii,Ii=Ii(h1)=Ii(h2),σi(Ii)=σi(h1)=σi(h2),σi(a|Ii)=σi(a|h1)=σi(a|h2)。在一些实施例中,策略σi(Ii)指定并包括在策略σi(Ii)下在状态h下的多个可能动作中选择动作a的相应概率σi(a|h)。例如,对于图1A中的博弈树100的节点123处的玩家1,策略σ1(Ii)可以包括在节点123的状态下从两个可能动作A1a和A1b中选择动作A1a的概率σ1(A1a|节点123),以及在节点123的状态下从两个可能动作A1a和A1b中选择动作A1b的概率σ1(A1b|节点123)。如果策略σ1(Ii)是均匀的(例如,初始策略),则概率σ1(A1a|节点123)=0.5,概率σ1(A1b|节点123)=0.5。在一些实施例中,可以在CFR的每次迭代中更新策略σ1(Ii),使得当CFR收敛时,如果玩家在状态h下或给定信息集I的情况下遵循策略σ1(Ii)中指定的概率选择动作,则玩家可以达到纳什均衡(或近似纳什均衡)。例如,如果CFR输出的策略σ1(Ii)指定概率σ1(A1a|节点123)=0.2,并且概率σ1(A1b|节点123)=0.8,则玩家可以在状态h下或者在给定信息集I的情况下选择概率为0.8的动作A1b,以接近纳什均衡(或近似纳什均衡)。
在一些实施例中,可将达到概率分解为
对于两个历史h1和h2,πσ(h1,h2)指的是所有玩家从历史h1至h2的策略的乘积。可以类似的方式定义πi σ(h1,h2)和πσ -i(h1,h2)。Ii的信息集达到概率(信息集范围)可以通过来定义。类似地,
∈-纳什均衡是近似纳什均衡,其策略组合σ*=(br(σ-i),br(σi)),满足:
CFR是一种用于在零和完美回忆不完美信息博弈中找到纳什均衡的迭代方法。可以计算出反事实值以表示玩家i在当前策略组合σt下在信息集Ii处的预期效用,假设玩家i进行博弈以达到Ii。在一些实施例中,给定σt,可以通过下式计算反事实值
在一些实施例中,可以被计算为除玩家i之外的所有玩家沿历史h∈Ii的策略的乘积,表示给定玩家i在当前策略组合σt下达到了当前信息集Ii的情况下对手动作的后验概率。给定玩家i在当前策略组合σt下达到了当前信息集Ii并假设对手的私人动作是均匀分布的,则可以表示预期效用值矩阵。
例如,对于图1A和1B中的库恩扑克,可以表示当向玩家2分别发了具有均匀分布的私牌J、Q或K时,玩家1的预期效用值,而可以是给定玩家1在当前策略组合σt下达到了当前信息集Ii,向玩家2分别发私牌J、Q或K的概率向量。
t次迭代后动作a的累计遗憾是
其中Ri 0(a|Ii)=0。
CFR+与CFR类似,不同之处在于CFR+用遗憾匹配+替换遗憾匹配并使用加权平均策略。经过足够的迭代,事实证明CFR和CFR+可以达到纳什均衡。CFR和CFR+收敛到均衡的最著名的理论边界是此边界比以速率收敛的一阶方法慢。但是,在许多博弈中,CFR+的经验收敛速度远快于
MCCFR通过在每次迭代中对信息集的子集进行采样来计算反事实值的无偏估计。定义Q={Q1,Q2,...,Qm},其中Qj∈Z是由MCCFR生成的采样终点历史的集合(块),使得Qj覆盖集合Z。将定义为考虑块Qj的概率,其中定义为考虑特定的终点历史z的概率。特定的终点历史z对应于动作序列(也称为终点动作序列),其包括所有玩家所采取的导致终点历史z的动作。在一些实施例中,考虑特定的终点历史z的概率是对该特定的终点历史z进行采样的概率(也称为采样的终点动作序列的概率)。在一些实施例中,可以基于包括在导致采样终点历史z的采样终点动作序列中的所有动作的采样概率,来计算采样终点历史z的概率或采样终点动作序列的概率。例如,如果导致采样终点历史z的采样终点动作序列包括动作序列[A1,A2,...,Am],则可以将q(z)计算为采样终点动作序列[A1,A2,...,Am]中所有动作各自的采样概率的乘积。
Ii的采样反事实值的估计值(也称为估计反事实值)可以通过下式计算:
其中
经过t次迭代后,动作a的估计累计遗憾为
MCCFR可证明地保持了反事实值的无偏估计,并收敛到纳什均衡。结果采样和外部采样是两种流行的采样方法。原始结果采样根据两个玩家的当前策略方针(或∈-贪婪)选择一个历史。外部采样与结果采样非常相似,不同之处在于一个玩家在其决策节点处采取所有动作。在每次迭代中,经典MCCFR指定一个玩家作为遍历者,该玩家的累计遗憾和策略将在此迭代进行更新。之后,另一玩家将被指定为遍历者。提出了另一种采样方法,即鲁棒采样,其中遍历者对k个动作进行采样,而对手对一个动作进行采样。在鲁棒采样方案中,每个玩家都使用均匀采样方法在当前决策点处进行采样,而另一参与方根据对应策略进行采样。对应于不同迭代的达到概率可以是固定的。可以证明,鲁棒采样方案与MCCFR中的结果采样方案相比,方差更小,而与外部采样相比,存储效率更高。在一些实施例中,鲁棒采样方案可以使MCCFR以更快的收敛速度求解纳什均衡(包括近似纳什均衡)。
图2是示出了根据本文实施例的计算机实现的被配置为求解大型或超大型IIG的系统200的示例的图。计算机实现的系统200可以是计算机实现的AI扑克系统的示例,该AI扑克系统例如实时地与人类玩家290进行单挑无限注德州扑克游戏(HUNL)。注意,尽管HUNL被用作将计算机实现的系统200配置为求解的超大型IIG的示例,但是计算机实现的系统200可以被配置为求解表示包括执行设备(例如,与第一参与方或第一玩家相关联)以及一个或多个其他设备(例如,与可以视为第一参与方或第一玩家的对手的其他参与方或玩家相关联)的环境中的现实世界任务的一个或多个其他IIG。
在年度计算机扑克竞赛中使用的HUNL标准版本中,开始时两个玩家各自拥有20000个筹码。如果双方都没有提前弃牌,HUNL最多可以进行四个下注回合。这四个回合分别由翻牌前(preflop)、翻牌(flop)、转牌(turn)和河牌(river)来命名。
每局开始时,两个玩家均被从标准的52张牌组中分发两张私牌。52张牌组中有(52×51)/2=1,326种不同可能的两张牌组合。小盲位的玩家首先应将50个筹码放入底池,另一名大盲位玩家应将100个筹码放入底池。他们的位置在每局之后交换。每个玩家都可以选择包括弃牌、跟注或加注的动作。如果一个玩家选择弃牌,那么其将输掉底池中的钱,该局结束。如果一个玩家选择跟注,其应该在底池中放置一些筹码,以使其总筹码等于对手的筹码。如果一个玩家选择加注,其应该增加比对手更多的筹码。翻牌前回合后,显示三张公共牌,然后开始翻牌下注回合。在此回合之后,将显示另一张公共牌,并且进行第三下注回合。此后,将显示最后一张公共牌,然后开始河牌回合。
在一些实施例中,HUNL可以被用来对现实世界场景中多个设备之间的交互进行建模以完成任务。例如,HUNL可用于对工业机器人(例如,仓库机器人)以及一个或多个其他参与方(例如,其他机器人)之间的交互进行建模,以完成任务(例如,移动仓库中的物品或组装一些产品)。HUNL的四个回合可以代表在完成任务时的不同子任务。在示例中,HUNL的每个玩家都可以表示一个相应的机器人,在完成任务时,机器人可以具有不同的动作(例如,在运动、速度、方向方面)。在一些实施例中,HUNL可以被用来对附加的或不同的现实世界场景进行建模,并且某些现实世界场景可以由一些其他大型和超大型IIG表示。
HUNL是包含约10161个信息组(也被称为信息集)的超大型博弈。HUNL的变体或子博弈也可以是大型和超大型博弈,例如包括单挑无限注翻牌前德州扑克(NLPH)、单挑无限注翻牌前德州扑克(NLFH)和HUNL(HUNL-R)的河牌子博弈。NLPH仅进行一个下注回合,终点节点的值由可以预先计算并保存在磁盘上的均匀随机公用牌下的预期博弈效用表示。NLPH包含7.8×104个信息集和1.0×109个状态。除了前两个下注回合(翻牌前和翻牌)和三张公共牌之外,NLFH与HUNL相似。NLFH是一个大型博弈,并且包含4.3×109个以上的信息集和5.8×1012个以上的状态。HUNL-R是HUNL的第四下注回合。在第四回合开始时,每个玩家的底池中有$100,并且两个玩家的范围由均匀随机方针指定。HUNL-R包含2.6×104个信息集和3.5×107个状态。
计算机实现的系统200可以包括AI子系统210,荷官子系统240和图形用户界面(GUI)280。荷官子系统240可以是计算机实现的子系统,其被配置为模仿荷官的功能或IIG中的机会。例如,发牌并记录IIG的处理或进展。GUI 280是接收来自一个或多个人类玩家290的输入,并显示或以其他方式输出AI子系统210的动作以及IIG的结果的界面。在一些实施例中,GUI 280可以例如通过沿着表示IIG的博弈树281显示玩家的动作轨迹来实时显示IIG的处理。AI子系统210可以例如根据本文实施例描述的技术执行用于求解针对代理(例如,IIG的参与方或玩家)的IIG的算法,包括以下描述的处理300。在一些实施例中,AI子系统210可以用作代理的执行设备。
在一些实施例中,AI子系统210可以包括神经网络模块275,该神经网络模块275可以执行一个或多个基于神经网络的CFR算法来求解IIG或IIG的一个阶段。神经网络模块275可以例如基于双神经CFR算法在CFR算法的迭代期间学习IIG或IIG的一个阶段的策略。作为示例,双神经CFR算法可以使用一个神经网络(例如,遗憾求和网络(RegretSumNetwork))来学习累积遗憾,并使用另一个神经网络(例如,平均策略网络(AverageStrategyNetwork))来学习双神经CFR算法的每次迭代的平均策略。基于神经网络的CFR算法可以基于行为克隆功能来动态地学习和生成IIG或IIG的一个阶段的策略。在一些实施例中,基于神经网络的CFR算法可以提供对在训练的神经网络的预测或应用期间所生成的IIG或IGG的一个阶段的策略的持续改进。
在一些实施例中,神经网络模块275还可以训练一个或多个值神经网络(VNN)以推断、估计或以其他方式预测IIG的一个阶段的终点节点的中间奖励(例如反事实值(CFV))。
在一些实施例中,AI子系统210可以包括估计和方差减小模块285,其可以估计由神经网络模块275输出的策略的性能。估计和方差减小模块285可以执行一个或多个方差减小算法,以进一步减小输出策略的方差并提供进一步的性能改善。
图3是根据本文实施例的用于求解大型或超大型(VLS)不完美信息博弈(IIG)的处理300的示例的流程图。处理300可以是由AI子系统210执行的用于求解超大型IIG的算法的示例。
在一些实施例中,可以修改或重新配置图3中所示的示例性处理300以包括附加的、更少的或不同的操作,其可以以所示的顺序或以不同的顺序执行。在一些情况下,可以重复或迭代一个或多个操作,直到达到终止条件。在一些实施方式中,图3中所示的一个或多个单独的操作可以作为多个分开的操作来执行,或者图3中所示的操作的一个或多个子集可以被组合并作为单个操作来执行。
在310处,可以获得表示大型或超大型IIG的博弈树的数据。图2示出了表示例如HUNL的超大型IGG的博弈树A 205。博弈树205可以例如以与图1A和图1B的博弈树100和公开树150类似的方式对应于公开树202。博弈树205具有根节点201、多个非终点节点(例如,对应于由动作历史203产生的当前公开状态208的非终点节点231)以及多个终点节点209。
在320处,表示超大型IIG的博弈树可以被按顺序划分为多个时期或阶段(例如,N个阶段,N>=2)。可以依次遍历多个时期或阶段,以找到超大型IIG的纳什均衡。多个阶段可以包括从根节点201开始的顶部阶段或第一阶段(例如,阶段1 211)和以终点节点209结束的最后一个阶段(例如,阶段N 219)。多个阶段还可以包括一个或多个中间阶段(例如,阶段p,阶段N-2 215和阶段N-1 217)。一个或多个中间阶段中的每一个可以包括中间阶段中的一个以上的根节点和中间阶段中的一个以上的终点节点。多个阶段(最后一个阶段除外)的序列中指定阶段的终点节点(例如,阶段N-1 217的终点节点)是指定阶段紧后的阶段的根节点(例如,阶段N 219的根节点)。换句话说,指定阶段的根节点(例如,阶段N 219的根节点)是在该多个阶段的序列中的指定阶段紧前的先前阶段的终点节点(例如,阶段N-1 217的终点节点)。
在一些实施例中,可以基于AI子系统210的计算资源(例如,计算能力和/或存储空间)划分多个阶段,例如,以使多个阶段中的每个阶段都可以以有效的方式求解,使得AI子系统210可以在整个超大型IIG期间实时与人类玩家对战。多个阶段的总数可以与IIG的回合总数相同或不同。例如,尽管HUNL可以有四个下注回合(即翻牌前、翻牌、转牌和河牌),但HUNL可以分为三个阶段。第一阶段可以是翻牌前的回合,其从初始位置(或状态)开始并在机会节点(例如,荷官子系统240)发出三张公用牌(或公共牌)处结束。第二阶段可以是翻牌回合,其从第一阶段的终点状态开始,并在机会节点发出第四张公用牌处结束。第三阶段可以包括HUNL的最后两个回合(即转牌回合和河牌回合)。
在一些实施例中,将代表超大型IIG的博弈树划分为多个阶段可以压缩或缩短博弈树的深度,从而简化整个博弈树的计算。例如,表示超大型IIG的博弈树可以是具有大量层级(例如,深度为大约数十、数百甚至更大)的深博弈树。博弈树的一个阶段可以将博弈树的两个或更多个层级组合在一起,并且可以将博弈树的组合后的两个或更多个层级视为子博弈。因此,博弈树的划分可以将深博弈树转换成多个更易于管理的子博弈。在一些实施例中,多个阶段(或子博弈)可以被解耦并且独立于彼此被求解,从而允许例如通过分布式或并行处理来更有效地求解整个超大型IIG。在一些实施例中,为了解耦多个阶段,可能需要每个阶段的终点节点的中间奖励来求解该阶段的纳什均衡,例如,根据CFR算法来求解。
在330处,可以计算多个阶段(除了最后一个阶段)中的每个阶段的终点节点的中间奖励。通常,只有整个博弈树的终点节点(即,最后一个阶段的终点节点,例如,图2中的终点节点209)才具有相应的已知奖励(例如,效用值)。为了分别且独立地解耦和求解整个博弈的多个阶段中的每个阶段,可以计算多个阶段(除最后一个阶段外)中的每个阶段的终点节点的中间奖励。在一些实施例中,由于大型或超大型IIG的大小以及每个玩家的大量可能动作,即使对于大型或超大型IIG的一个阶段,枚举并计算该阶段的每个中间奖励在计算上也是昂贵或不切实际的。在一些实施例中,可以例如通过使用神经网络来计算多个阶段(除了最后一个阶段)中的每个阶段的每个终点节点的相应的中间奖励。
在一些实施例中,值神经网络(VNN)被训练以推断、估计或以其他方式预测多个阶段中的一个阶段的根节点的中间奖励(例如,反事实值(CFV))。在图2所示的示例中,对于阶段N-1 217,VNN 225被训练以预测阶段N-1 217的与当前公开状态208相对应的根节点231的奖励(例如,CFV)。VNN 225可以接收包括范围(即,达到概率)的输入,并且生成包括值226(例如,奖励)的输出。作为示例,在根节点231处的VNN 225可以在根节点231处接收包括代理的范围204的输入,并且在根节点231处产生包括对手的CFV 206的输出。
注意到阶段N-1 217的根节点231也是先前阶段N-2 215的终点节点。根节点231可分别基于代理在根节点231处的可能动作a、b和c,被分支为三个子树212a、212b和212c。这三个子树212a、212b和212c可以被称为根节点231上的前向树(lookahead tree)。三个子树212a、212b和212c中的每一个的终点节点都是下一阶段,即阶段N 219的根节点。在一些实施例中,对于阶段N 219,VNN 225a、VNN 225b和VNN 225c被训练以预测阶段N 219的根节点的奖励(例如,CFV),所述根节点是三个子树212a、212b和212c的终点节点。如图2所示,下一阶段,即阶段N 219的每个根节点具有对应的子树214,该子树214在下一阶段,即阶段N 219具有终点节点209。
在一些实施例中,可以根据本文实施例描述的示例性技术来训练多个阶段中的每一个阶段的VNN,所述技术包括在以下针对处理400描述的操作,或者其他技术(例如,用于干扰博弈树节点的值的算法博弈论技术)。
在HUNL的上述示例中,可以训练两个VNN:翻牌前VNN和翻牌VNN,以分别预测HUNL的第一阶段(例如,翻牌前回合)和第二阶段(例如,翻牌回合)的终点节点的中间奖励(例如CFV)。
在340处,可以例如根据CFR算法,基于多个阶段中的每个阶段的终点节点的中间奖励来计算多个阶段中的每个阶段的期望策略。期望策略可以是,例如,与根据CFR算法获得的纳什均衡、近似纳什均衡、最佳响应或给定特定限制(例如,迭代次数或收敛条件)的最优或优化策略相对应的策略。
CFR算法可以是一个或多个现有的表格式CFR算法或其变体,或者双神经CFR算法。在一些实施例中,如果指定阶段的复杂度不超过阈值(例如,将导致AI子系统210的较大计算负荷和/或存储空间的阈值),则可以使用一种或多种现有的表格式CFR算法或其变体来为特定阶段找到期望策略。可以例如通过状态空间复杂度、博弈树的大小或博弈的另一复杂度度量来测量指定阶段的复杂度。例如,可以通过博弈树的指定阶段的宽度来测量指定阶段的复杂度。
在一些实施例中,如果指定阶段的复杂度超过阈值,则可以使用基于神经网络的CFR算法(例如,双神经CFR算法)来找到用于指定阶段的期望策略。基于神经网络的CFR算法可以使用一个或多个神经网络来学习博弈树一个阶段的不同状态或节点的策略。例如,CFR算法通常需要多次迭代(例如,大约103或更多)来收敛。可以训练一个或多个神经网络,以经过多次迭代来学习博弈树的不同状态或节点的策略。神经网络可以接收诸如状态的信息之类的输入(例如,达到该状态的动作的历史、在该状态中已知的公开信息以及参与方在该状态下的私人信息),输出参与方在该状态下的计划的策略。
作为基于神经网络的CFR算法的示例,双神经CFR算法可以使用两个神经网络来计算IIG的与期望策略相对应的近似纳什均衡。例如,神经网络之一(例如,遗憾求和网络)可用于学习累积遗憾,另一个神经网络(例如“平均策略网络”)可用于学习经过双神经CFR算法的多次迭代的平均策略。达到收敛后,双神经CFR算法可以基于平均策略网络中学习的数据输出期望策略。于2019年1月17日提交的申请号为PCT/CN2019/072204的题为“STRATEGYSEARCHING IN STRATEGIC INTERACTION BETWEEN PARTIES(在多方策略互动中进行策略搜索)”的PCT专利申请和2019年6月21日提交的申请号为16/448,947的题为“STRATEGYSEARCHING IN STRATEGIC INTERACTION BETWEEN PARTIES(在多方策略互动中进行策略搜索)”的美国申请中描述了双神经CFR算法的示例性技术,以上每个申请的全部内容通过引用并入本文。
实际上,在获得多个阶段中每个阶段的终点节点的中间奖励之后,多个阶段中的每个阶段都可以被视为单个子博弈(可能包括一个以上根节点),并且在单个子博弈的终点节点处具有已知的奖励。基于神经网络的CFR算法(例如,双神经CFR算法)可以应用于求解单个子博弈。单个子博弈的大小比表示大型或超大型IIG的原始博弈树小得多。在一些实施例中,因为多个单个子博弈与其终点节点的相应已知中间奖励解耦,所以可以独立地求解对应于多个阶段的多个单个子博弈。在一些实施例中,可以并行求解与多个阶段相对应的多个单个子博弈,以进一步提高求解整个大型或超大型IIG的计算效率。
在上述HUNL的示例中,可以例如根据基于神经网络的CFR算法分别获得用于预测第一阶段(例如,翻牌前回合)的期望策略的翻牌前SNN和用于预测第二阶段(例如,翻牌回合)的期望策略的翻牌SNN。在一些实施例中,因为第三阶段(例如,包括最后两个回合)的复杂度相对较低,所以可以通过执行表格式CFR算法(例如,MCCFR算法)来获得第三阶段的期望策略。
在一些实施例中,不同于现有技术,其可以抽象原始HUNL,然后直接求解HUNL的四个回合,但是在每个决策点具有非常粗略的近似或非常少的动作(例如,由于与HUNL的大的大小相比计算资源有限),示例性处理300可以使用SNN使HUNL的每个阶段更易于管理。因此,示例性处理300可以执行更精细的动作抽象以得到针对整个HUNL的更好的策略。
在一些实施例中,在与一个或多个人类玩家对战的过程中,可以在训练的SNN上计算多个阶段中的每个阶段的期望策略或者通过针对多个阶段中的每个阶段实时执行CFR算法来计算多个阶段中的每个阶段的期望策略。在以上HUNL的示例中,可以基于翻牌前SNN来计算第一阶段(例如,翻牌前回合)的期望策略。可以基于翻牌SNN获得第二阶段(例如,翻牌回合)的期望策略。在一些实施例中,可以使用连续求解技术来求解HUNL的第三阶段(例如,包括最后两个回合)以实时找到第三阶段的期望策略。
图4是根据本文实施例的用于生成动作选择方针以促使执行设备在包括执行设备以及一个或多个其他设备的环境中完成任务的处理400的示例的流程图。处理400可以例如由AI子系统210在执行处理300的一些或全部操作以求解大型或超大型IIG时执行。可以例如在训练时期中执行处理400,以用于生成促使执行设备完成任务的动作选择方针。例如,可以执行处理400以针对任务的指定子任务训练策略神经网络(SNN),其中,可以基于来自值神经网络(VNN)的输出来训练SNN,该值神经网络估计所述任务的指定子任务的终点节点的中间奖励。
在一些实施例中,图4中示出的示例性处理400可以被修改或重新配置以包括附加、更少或不同的操作,其可以以所示的顺序或不同的顺序执行。在一些情况下,可以重复或迭代所述操作中的一个或多个,直到达到终止条件。在一些实施方式中,图4中所示的一个或多个单独操作可以作为多个分开的操作来执行,或者图4中所示的操作的一个或多个子集可以被组合并作为单个操作来执行。
在一些实施例中,处理400可以基于CFR算法(例如,表格式CFR算法和/或其变体)。博弈树的多个阶段(除最后一个阶段外)中的每个阶段的终点节点的中间奖励可以是例如根据等式(4)计算的反事实值(CFV)。CFR算法在收敛之前可以包括多次迭代。在一些实施例中,CFR算法的每次迭代可以包括用于计算CFV并更新不同状态的动作选择方针的自下而上的处理。在一些实施例中,状态可以由博弈树的节点(例如,图1A中的博弈树100的非终点节点123、127、143b或147b或者终点节点143a、153a、153b、143c、143d、147a、157a、157b、147c或147d)表示。在一些实施例中,状态可以是由公开树的节点(例如,图1B中的公开树150的非终点节点125、135a、135b或145b,或者终点节点145a、145c、145d、155a或155b)表示的公开状态。在一些实施例中,状态对应于公开序列,该公开序列包括执行设备以及一个或多个其他设备公开已知的一个或多个动作,所述一个或多个动作处于以初始状态(例如,公开树的根节点)开始并以该状态结束的轨迹中。例如,节点155b的状态对应于公开序列(例如,公开序列[A1a,A2b,A3]),其中包括从根节点125到其后的节点155b中执行设备公开已知的一个或多个动作(例如,A1a和A3b)以及一个或多个其他设备公开已知的一个或多个动作(例如,A2b)。在一些实施例中,CFR算法可以从博弈树的终点状态(例如,图1A中博弈树100的叶节点或终点节点143a、153a、153b、143c、143d、147a、157a、157b、147c或147d,或者图1B中的公开树150的终点节点145a、145c、145d、155a或155b)开始,并移动到博弈树的初始状态(例如,图1A中的博弈树100的根节点110,或者图1B中的公开树150的根节点125)。
在410,获得表示被划分为子任务序列的任务的数据。子任务序列的总数为N,其中N>=2。在一些实施例中,可以通过由博弈树(例如,图1A的博弈树100或图2的博弈树205)表示的IIG来对任务建模。在一些实施例中,任务可以是复杂的现实世界大型场景,其包括例如由大型或超大型IIG建模的大量可能动作和状态。在一些实施例中,将任务划分为子任务序列的数据可以包括例如表示任务的数据(例如,以针对图1至图3描述的博弈树的形式和/或其他关联数据(例如,节点、动作、状态或信息集))、表示划分的数据(例如,子任务的总数、子任务的序列、子任务序列中的每个子任务的开始和结束等),和/或表示子任务序列中的每个子任务的数据(例如,以包括在博弈树一个阶段中的一个或多个子树的形式)。
任务的每个状态可以对应于表示任务的博弈树的节点。例如,任务可以包括多个任务终点状态(例如,对应于博弈树的终点或叶节点)和多个非任务终点状态(例如,对应于博弈树的非终点节点)。多个任务终点状态具有所述任务终点状态下的对应奖励(或收益或效用值)。每个任务终点状态可以由执行设备以及一个或多个其他设备在多个非任务终点状态的子集下采取的动作序列(例如,动作历史203)而导致。作为另一示例,终点状态(例如,图1B中的终点节点155b)是由动作序列(例如,动作序列[A1a,A2b,A3b])导致的,所述动作序列包括在多个非终点状态(例如,非终点节点125、135a和145b)下由执行设备采取的动作(例如,A1a和A3b)以及由一个或多个其他设备采取的动作(例如,A2b)。
在一些实施例中,例如,可以将任务划分为子任务序列,以降低解决任务的复杂度。在一些实施例中,如针对图2至图3所描述的,子任务序列中的每个子任务可以对应于多个阶段中的每个阶段。在一些实施例中,例如,可以根据针对处理300的操作320所描述的技术或一些其他技术,基于执行设备的计算资源、对完成任务的响应时间的要求、表示任务的博弈树的大小等来划分任务。
子任务序列中的每个子任务包括该子任务的多个子任务状态。多个子任务状态可以包括该子任务的一个或多个子任务初始状态、多个子任务非终点状态以及多个子任务终点状态。
在N个子任务的序列中,子任务序列中的第一子任务包括任务初始状态作为第一子任务的子任务初始状态。子任务序列中的最后一个子任务(即第N子任务)包括最后一个子任务的多个子任务初始状态和最后一个子任务的多个子任务终点状态。最后一个子任务的多个子任务初始状态是在子任务序列中的最后一个子任务之前的倒数第二个子任务的子任务终点状态。最后一个子任务的多个子任务终点状态是多个任务终点状态。
例如,最后一个子任务可以对应于博弈树的最后一个阶段,诸如图2的博弈树205中的阶段N 219。最后一个子任务的多个子任务终点状态是多个任务终点状态(例如,终点节点209)。最后一个子任务的多个子任务初始状态可以对应于博弈树的最后一个阶段的根节点,例如非终点节点231。最后一个子任务的多个子任务终点状态可以对应于博弈树的最后一个阶段的终点节点,例如终点节点209。最后一个子任务的多个子任务初始状态是子任务序列中最后一个子任务之前的倒数第二个子任务(例如,对应于博弈树中的倒数第二个阶段,例如阶段N 217)的子任务终点状态。
处理400可以包括自下而上的处理,其按照N个子任务的序列训练每个子任务的对应VNN。当前子任务可以被标记或以其他方式指定为第p子任务,1<=p<=N。在420处,令p=N,并且处理400从N个子任务的序列中的最后一个子任务(即,第N子任务)开始。最后一个子任务可以对应于博弈树的最后一个阶段(例如,博弈树205中的阶段N 219)。
例如,给定博弈树(例如,表示例如HUNL的超大型IIG的博弈树)被划分为N个阶段,N>=2,则博弈树的当前阶段是第p阶段,其中1<=p<=N。处理400从博弈树中的最后一个阶段开始,即p=N,因为博弈树中的最后一个阶段的终点节点的奖励是博弈树的终点节点的奖励,该奖励是已知的并且可以用于根据CFR算法以自下而上的方式计算博弈树的每个其他阶段的终点节点的中间奖励(例如,CFV)。
在430,确定执行设备在子任务(第p子任务)的子任务终点状态下的奖励。对于N个子任务的序列中的最后一个子任务(即第N子任务),因为最后一个子任务的子任务终点状态是整个任务的终点任务状态,所以执行设备在最后一个子任务的子任务终点状态下的奖励是已知的。可以例如基于表示在410获得的任务的数据来确定执行设备在最后一个子任务的子任务终点状态下的奖励。
对于N个子任务的序列中除最后一个子任务(即第N子任务)之外的指定子任务(第p子任务),执行设备在指定子任务(第p子任务)的子任务终点状态下的奖励是执行设备在该N个子任务的序列中在指定子任务(第p子任务)紧后的下一个子任务(第p+1子任务)的子任务初始状态下的奖励。可以以下面针对450描述的类似方式基于针对下一个子任务(第p+1子任务)训练的值神经网络(VNN)确定执行设备在下一个子任务(第p+1子任务)的子任务初始状态下的奖励。
在440,基于执行设备在子任务(第p子任务)的子任务终点状态下的奖励,训练针对指定子任务(第p子任务)的值神经网络(VNN)。针对指定子任务(第p子任务)的VNN(例如,阶段N-1 217的根节点231处的VNN 225)预测执行设备在指定子任务的子任务初始状态(例如,在阶段N-1 217的根节点231)下的奖励(例如,代理的CFV(或等效地,由于零和博弈的对手的CFV))。在一些实施例中,可以针对指定子任务(第p子任务)训练一个以上的VNN。例如,如图2所示,针对阶段N 219训练了三个VNN 225a、225b和225c。
在一些实施例中,针对指定子任务(第p子任务)的VNN接收包括执行设备以及一个或多个其他设备达到指定子任务的子任务初始状态的达到概率(例如,范围224)的输入。在一些实施例中,一个或多个其他设备达到一个状态的达到概率包括由达到该状态的一个或多个其他设备采取的动作的概率的乘积。在图1A和图1B所示的示例中,如果执行设备对应于玩家1,则一个或多个其他设备(例如,对应于玩家2)达到一个状态(例如,终点节点155b)的达到概率包括由达到该状态的一个或多个设备采取的动作(例如,A2b)的概率的乘积。如果执行设备对应于玩家2,则一个或多个其他设备(例如,对应于玩家1)达到一个状态(例如,终点节点155b)的达到概率包括由达到该状态的一个或多个其他设备采取的动作(例如,A1a和A3b)的概率的乘积。
在一些实施例中,输入还包括达到指定子任务的子任务初始状态的执行设备以及一个或多个其他设备的公开信息。在一些实施例中,所述公开信息包括由达到指定子任务的子任务初始状态(例如,在阶段N-1217的根节点231处的公开状态208)的执行设备以及一个或多个其他设备采取的动作序列(例如,动作历史203),和/或将影响任务的结果的其他公开信息。例如,在HUNL的示例中,公开信息包括底池大小(和/或各参与方的动作历史)和在指定子任务的子任务初始状态下已知的公用牌。在一些实施例中,输入可以由如上所述的信息集表示。
在一些实施例中,训练针对指定子任务的VNN包括使用来自针对子任务序列中在指定子任务之后的下一个子任务(第p+1子任务)的VNN的输出来训练针对该指定子任务的VNN。针对下一个子任务(第p+1子任务)的VNN预测执行设备在下一个子任务(第p+1子任务)的子任务初始状态下的奖励。因此,来自针对下一个子任务(第p+1子任务)的VNN的输出包括执行设备在下一个子任务(第p+1子任务)的子任务初始状态下的奖励,该奖励是执行设备在指定子任务(第p子任务)的子任务终点状态下的奖励。针对下一个子任务(第p+1子任务)的VNN接收包括执行设备以及一个或多个其他设备达到下一个子任务(第p+1子任务)的子任务初始状态的达到概率的输入。
在一些实施例中,在训练针对指定子任务的VNN时,获得针对指定子任务的VNN的多个样本输入(例如,图2的采样的牌局235)。在一些实施例中,如上所述,多个样本输入中的每一个可以包括达到指定子任务的子任务初始状态的执行设备及一个或多个其他设备的公开信息,以及执行设备及一个或多个其他设备达到指定子任务的子任务初始状态的达到概率。在一些实施例中,可以例如通过随机采样或以其他方式来生成多个样本输入中的每一个。例如,在HUNL中,可以根据HUNL的规则通过对牌组和底池中的多个筹码进行采样来生成公开信息(例如,公用牌和底池大小)。可以基于一种或多种假定的、估计的或预定的概率分布来生成执行设备及一个或多个其他设备达到指定子任务的子任务初始状态的达到概率。例如,执行设备达到指定子任务的子任务初始状态的达到概率可以是基于预定概率分布随机生成的0到1之间的值。类似地,一个或多个其他设备达到指定子任务的子任务初始状态的达到概率可以是基于另一预定概率分布随机生成的0到1之间的另一随机值。
对于多个样本输入中的每一个,可以例如通过使用来自针对下一个子任务(第p+1子任务)的VNN的输出以自下而上的方式执行CFR算法来计算执行设备在指定子任务的子任务初始状态下的样本奖励,所述输出包括执行设备在指定子任务(第p子任务)的子任务终点状态下的奖励。在一些实施例中,CFR算法可能需要多次迭代(例如,大约103或更多)来收敛。这样,对于多个样本输入中的每一个,执行CFR算法的多次迭代以获得执行设备在指定子任务的子任务初始状态下的对应样本奖励。针对指定子任务的VNN是基于多个样本输入中的每个样本以及执行设备在指定子任务的子任务初始状态下的样本奖励而训练的。
在一些实施例中,向VNN的多个样本输入的总数可以是大约103、104或更多,以在学习和预测对执行设备的奖励时提供VNN的良好性能。在一些实施例中,多个样本输入的总数取决于子任务的复杂度。在一些实施例中,子任务越复杂(例如,博弈树的阶段越宽),可能需要越多的向VNN的样本输入以提供良好的近似和行为克隆。可以基于全部数量的多个样本输入和对应的样本奖励来训练针对指定子任务的VNN,以估计或预测执行设备在指定子任务的子任务初始状态下的奖励。
在450处,基于针对指定子任务(第p子任务)的VNN的输出来确定执行设备在子任务(第p子任务)的子任务初始状态下的奖励。利用针对指定子任务(第p子任务)训练的VNN,对于子任务(第p子任务)的每个子任务初始状态,通过向训练的VNN提供输入,VNN的输出可以包括执行设备在子任务(第p子任务)的每个子任务初始状态下的奖励。如果子任务(第p子任务)具有一个以上的子任务初始状态,则可以确定执行设备在子任务(第p子任务)的所有子任务初始状态下的相应奖励。执行设备在子任务(第p子任务)的所有子任务初始状态下的奖励是执行设备在先前子任务(第p-1子任务)的子任务终点状态下的对应奖励,如在460中所描述的,该奖励可用于训练针对先前子任务(第p-1子任务)的策略神经网络(SNN)。
在460,基于针对指定子任务(第p子任务)的VNN来训练针对先前子任务(第p-1子任务)的策略神经网络(SNN)。针对先前子任务(第p-1子任务)的SNN预测执行设备在先前子任务(第p-1子任务)的子任务状态下的动作选择方针。在一些实施例中,针对先前子任务(第p-1子任务)的SNN接收描述先前子任务(第p-1子任务)的子任务状态(例如,子任务初始状态或子任务非终点状态)的输入,并输出执行设备在先前子任务(第p-1子任务)的子任务状态下的动作选择方针。在一些实施例中,描述先前子任务(第p-1子任务)的子任务状态的输入可以包括执行设备以及一个或多个其他设备在先前子任务(第p-1子任务)的子任务状态下采取的动作序列。在一些实施例中,向SNN的输入可以进一步包括执行设备的私人信息(例如,HUNL中的玩家的私牌)。
在一些实施例中,在基于针对指定子任务(第p子任务)的VNN来训练针对先前子任务(第p-1子任务)的SNN时,指定子任务(第p子任务)的多个子任务初始状态下的多个奖励基于指定子任务(第p子任务)的VNN的输出来预测或确定。指定子任务(第p子任务)的多个子任务初始状态下的多个奖励是先前子任务(第p-1子任务)的多个子任务终点状态下的多个奖励。基于先前子任务(第p-1子任务)的多个子任务终点状态下的多个奖励,可以例如根据基于神经网络的CFR算法(例如,双神经CFR算法)来训练针对先前子任务(第p-1子任务)的SNN。
在某些实施例中,基于神经网络的CFR算法可能需要多次迭代(例如,大约103或更多)来收敛。因此,可以经过基于神经网络的CFR算法的多次迭代来训练SNN。基于神经网络的CFR算法可以使用至少一个神经网络经过CFR算法的多次迭代来学习子任务的不同子任务状态下的策略。
在一些实施例中,基于针对指定子任务的VNN来训练针对先前子任务(第p-1子任务)的SNN是响应于确定先前子任务的复杂度超过阈值而执行的。在某些实施例中,如果先前子任务的复杂度未超过阈值,则对于先前子任务可以跳过步骤460。在一些实施例中,可以执行表格式CFR算法以生成针对先前子任务的动作选择方针。
在一些实施例中,用于完成先前子任务(第p-1子任务)的动作选择方针可以基于由针对先前子任务(第p-1子任务)的SNN生成的输出来确定。针对先前子任务(第p-1子任务)训练的SNN可以接收包括表示先前子任务(第p-1子任务)的子任务初始状态的数据的输入,并输出执行设备在先前子任务(第p-1子任务)的子任务初始状态下的动作选择方针。基于输出的执行设备在先前子任务(第p-1子任务)的子任务初始状态下的动作选择方针,执行设备可以选择一个动作并移至先前子任务(第p-1子任务)的下一个子任务状态(例如,子任务非终点状态)。针对先前子任务(第p-1子任务)训练的SNN可以预测执行设备在先前子任务(第p-1子任务)的下一个子任务状态下的动作选择方针。该处理可以继续直到执行设备达到先前子任务(第p-1子任务)的子任务终点状态。因此,可以确定用于完成先前子任务(第p-1子任务)的动作选择方针。
在一些实施例中,执行设备在先前子任务(第p-1子任务)中的操作是根据用于完成先前子任务(第p-1子任务)的动作选择方针来控制的。在一些实施例中,动作选择方针可以用作软件实现应用的输出,以例如通过基于动作选择方针在多个可能动作中选择概率最高的动作来自动控制执行设备在每个状态下的动作。例如,环境包括交通路线规划环境,应用支持的执行设备包括计算机辅助车辆,动作选择方针包括用于控制计算机辅助车辆的方向的路线选择方针,并且根据动作选择方针控制执行设备的操作包括根据路线选择方针控制计算机辅助车辆的方向。控制计算机辅助车辆的操作可以包括控制节气门、转向、制动、导航、引擎模式中的一个或多个以实现方向、速度、在路线选择方针中指定的根据处理400生成的其他参数以完成例如,在包括共享道路的其他计算机辅助车辆的环境中到达期望目的地的任务。
在470,确定指定子任务是否达到第一子任务(例如,对应于博弈树的顶部或第一阶段),即,确定p是否等于1。第一子任务(例如,对应于博弈树205的阶段1 211)包括任务的初始状态(例如,图2的博弈树205的根节点201)。如果指定子任务达到子任务序列中的第一子任务(例如,p==1),则处理400在480处终止。如果没有,则处理400进行到490,其中p=p-1,将指定子任务替换为子任务序列中在该指定子任务紧前的先前子任务。对于490,处理400返回到430以确定执行设备在指定子任务(第p子任务)的子任务终点状态下的奖励。现在,指定子任务(第p子任务)不再是N个子任务的序列中的最后一个子任务(即,第N子任务)。
例如,指定子任务可以是子任务序列中的倒数第二个子任务(即第N-1子任务,p=N-1)。执行设备在指定子任务(第N-1子任务)的子任务终点状态下的奖励是执行设备在N个子任务的序列中在指定子任务(第N-1子任务)紧后的下一个子任务(第p+1子任务,即,第N子任务)的子任务初始状态下的奖励。可以例如基于先前迭代中的如针对450描述的针对下一个子任务(第N子任务)的VNN来确定执行设备在下一个子任务(第N子任务)的子任务初始状态下的奖励。对于430,处理400进行到440以基于执行设备在指定子任务(即,第N-1子任务)的子任务终点状态下的奖励来训练针对指定子任务(第p子任务,即,第N-1子任务)的VNN。处理400可以如上所述继续,直到其在480处结束。
在一些实施例中,训练针对先前子任务(第p-1子任务)的SNN的步骤460可以在训练了针对子任务序列中的所有子任务的VNN之后执行,或在训练了针对指定子任务(第p子任务)的VNN的另一时间点立即执行。在一些实施例中,基于针对在子任务序列中的另一子任务(第q-1个子任务,q≠p)之后的子任务(第q子任务)的VNN训练针对该另一子任务的SNN,其中,所述训练针对该另一子任务(第q-1子任务)的SNN是独立于训练针对先前子任务(第p-1子任务)的SNN进行的。在一些实施例中,可以并行训练针对对应的子任务的两个或更多个SNN。
图5是根据本文实施例的用于生成动作选择方针以促使执行设备在包括执行设备以及一个或多个其他设备的环境中完成任务的处理500的示例的流程图。处理500可以例如由AI子系统210在执行处理300的一些或全部操作以求解大型或超大型IIG时执行。可以例如在干扰或应用时期中执行处理500,以用于生成促使执行设备完成任务的动作选择方针。例如,处理500使用训练的策略神经网络(SNN)来预测针对任务的指定子任务的动作选择方针,其中,可以基于来自值神经网络(VNN)的输出来训练SNN,该输出估计所述任务的指定子任务的终点节点的中间奖励。
图5中示出的示例性处理500可以被修改或重新配置以包括附加、更少或不同的操作,其可以以所示的顺序或不同的顺序执行。在一些情况下,可以重复或迭代所述操作中的一个或多个,直到达到终止条件。在一些实施方式中,图5中所示的一个或多个单独操作可以作为多个分开的操作来执行,或者图5中所示的操作的一个或多个子集可以被组合并作为单个操作来执行。
在一些实施例中,处理500可以以迭代的方式执行,例如,通过执行两次或更多次迭代。在一些实施例中,处理500可以用在自动控制、机器人技术或涉及动作选择的任何其他应用中。在一些实施例中,处理500可以由执行设备执行,用于生成用于在包括执行设备及一个或多个其他设备的环境中完成任务(例如,找到由大型或超大型IIG表示的现实世界中大型场景的纳什均衡)的动作选择方针(例如,策略)。执行设备可以在该环境中执行处理500以根据动作选择方针控制执行设备的操作。
一些实施例中,执行设备可以包括数据处理装置,例如位于一个或多个位置并根据本文适当地编程的一个或多个计算机的系统。例如,被适当地编程的图2的AI子系统210或图8的计算机系统800可以执行处理500。执行设备可以与执行方或玩家(例如,图2的AI子系统210)相关联。执行方或玩家以及一个或多个其他参与方(例如,图2中与一个或多个其他设备相关联的人类玩家290)可以是环境中的参与者或玩家,例如,用于在执行方于一个或多个其他参与方的策略交互时进行策略搜索。
在一些实施例中,可以通过涉及两个或更多玩家的不完美信息博弈(IIG)来对环境进行建模。在一些实施例中,可以例如由计算机实现应用所支持的执行方来执行处理500以求解大型或超大型IIG。大型或超大型IIG可以表示涉及两个或更多个参与方的一个或多个现实世界场景,例如资源分配、产品/服务推荐、网络攻击预测和/或预防、交通路线规划、欺诈管理等,其中各参与方可能具有关于另一参与方的决策的不完美或不完全的信息。作为示例,IIG可以表示至少涉及第一玩家和第二玩家的协作产品服务推荐服务。第一玩家可以是例如具有客户(或用户)信息、产品和服务信息、客户的购买历史等的在线零售商。第二玩家可以是例如具有客户的社交网络数据的社交网络平台、拥有客户的财务信息的银行或其他金融机构、汽车经销店或在预测并向客户推荐产品和服务时可能拥有关于客户的偏好、需求、财务状况、位置等客户信息的,任何其他第三参与方。第一玩家和第二玩家可能各自具有该玩家不想与他人共享的专有数据。第二玩家可以在不同时间向第一玩家仅提供部分信息。这样,第一玩家可能仅具有对第二玩家的信息的有限访问权。在一些实施例中,可以执行处理500以向具有第二参与方的有限信息的参与方进行推荐、从而利用有限的信息规划路线。
在510,获得表示被划分为N个子任务的序列的任务的数据。该数据可以与针对410描述的数据相同。
在一些实施例中,处理500可以用于基于如处理400中所描述的训练的SNN来例如实时地生成动作选择方针。处理500可以以N个子任务的序列的顺序依次进行(即,从表示任务的博弈树的顶部到底部)。例如,如图2所示,处理500可以依次从博弈树205的顶部阶段:阶段1 211、…,阶段p、…,阶段N-2 215,阶段N-1 217开始,进行到底部或最后一个阶段,阶段N 219。
当前子任务被指定为第p子任务,1<=p<=N。在520处,令p=N,并且处理500从N个子任务的序列中的第一子任务(即,第1子任务)开始。第一子任务可以对应于博弈树的第一阶段(例如,博弈树205中的阶段1 211)。
在530,可以例如根据针对图3描述的示例性技术,确定指定子任务的复杂度是否超过阈值。可以例如通过状态空间复杂度、博弈树大小或博弈的另一复杂度度量来测量指定子任务的复杂度。例如,可以通过博弈树的指定阶段的宽度来测量指定子任务的复杂度。
如果指定阶段的复杂度超过阈值,则处理500进行到540。如果指定阶段的复杂度未超过阈值,则处理500进行到545。
在540,获得指定了针对子任务序列中的指定子任务的策略神经网络(SNN)的数据。针对指定子任务的SNN接收包括由达到指定子任务的子任务初始状态的执行设备以及一个或多个其他设备采取的动作序列的输入,并预测执行设备针对指定子任务的动作选择方针。在一些实施例中,针对指定子任务的SNN是例如根据图4所描述的技术,基于针对子任务序列中的该子任务之后的下一个子任务的值神经网络(VNN)来训练的。针对指定子任务的VNN接收包括执行设备以及一个或多个其他设备达到下一个子任务的子任务初始状态的达到概率的输入,并预测执行设备在下一个子任务的子任务初始状态下的奖励。在540之后,处理500进行到550。
在550,可以确定向针对指定子任务的SNN的输入。在一些实施例中,输入可以包括由达到指定子任务的子任务初始状态(例如,阶段N-1217的根节点231处的公开状态208)的执行设备以及一个或多个其他设备采取的指定动作序列(例如,动作历史203)。在一些实施例中,如果指定子任务不是第一子任务,则指定子任务的子任务初始状态可以是指定子任务的多个子任务初始状态之一。在一些实施例中,指定子任务的子任务初始状态可以是子任务序列中在指定子任务之前的先前子任务的子任务终点状态,例如,基于针对该先前子任务的SNN的输出来确定的指定子任务的子任务初始状态。在一些实施例中,指定动作序列可以包括由从任务初始状态达到指定子任务的子任务初始状态的执行设备以及一个或多个其他设备采取的动作序列,该指定子任务的子任务初始状态是基于针对子任务序列中指定子任务之前的一个或多个子任务的一个或多个对应SNN的输出确定的。在一些实施例中,输入还可以包括执行设备的私人信息(例如,HUNL中的玩家的私牌)。在550之后,处理500进行到560。
在560,利用向针对指定子任务的SNN的指定输入基于针对指定子任务的SNN的输出来确定用于完成指定子任务的动作选择方针。针对指定子任务训练的SNN可以接收包括表示指定子任务的子任务初始状态的数据的输入,并输出执行设备在指定子任务的子任务初始状态下的动作选择方针。基于输出的执行设备在指定子任务的子任务初始状态下的动作选择方针,执行设备可以选择一个动作并移至指定子任务的下一个子任务状态(例如,子任务非终点状态)。针对指定子任务训练的SNN可以预测执行设备在指定子任务的下一个子任务状态下的动作选择方针。该处理可以继续直到执行设备达到指定子任务的子任务终点状态。因此,可以确定用于完成指定子任务的动作选择方针。在560之后,处理500进行到570。
在545,响应于确定子任务序列中的指定阶段(例如,另一子任务,第q-1子任务,q≠p)的复杂度未超过阈值,可以通过执行CFR算法(例如,表格式CFR算法)来确定用于完成指定阶段的动作选择方针。
在570,根据用于完成指定子任务的动作选择方针,控制执行设备在指定子任务中的操作。在一些实施例中,动作选择方针可以用作软件实现应用的输出,以例如通过基于动作选择方针在多个可能动作中选择概率最高的动作来自动控制执行设备在每个状态下的动作。例如,环境包括交通路线规划环境,应用支持的执行设备包括计算机辅助车辆,动作选择方针包括用于控制计算机辅助车辆的方向的路线选择方针,并且根据动作选择方针控制执行设备的操作包括根据路线选择方针控制计算机辅助车辆的方向。控制计算机辅助车辆的操作可以包括控制节气门、转向、制动、导航、引擎模式中的一个或多个以实现方向、速度、在路线选择方针中指定的根据处理500生成的其他参数以完成例如,在包括共享道路的其他计算机辅助车辆的环境中到达期望目的地的任务。在570之后,处理500进行到580。
在580,确定指定子任务是否达到最后一个子任务(例如,对应于博弈树的底部或最后一个阶段),即,确定p是否等于或超过N。最后一个子任务(例如,对应于博弈树205的阶段N 219)包括任务的终点状态(例如,图2的博弈树205的终点节点209)。如果指定子任务达到子任务序列中的终点子任务(例如,p==N),则处理500在590处终止。如果没有,则处理500进行到585,其中p=p+1,将指定子任务替换为子任务序列中在该指定子任务紧后的下一个子任务。处理500从585返回到530。
例如,在处理500的另一次迭代中,例如,响应于在530确定另一子任务的复杂度超过阈值,可以在540获得针对任务序列中的另一子任务(例如,第q子任务,q≠p)的另一SNN。另一子任务(例如,第q子任务)是子任务序列中指定子任务(例如,第p子任务)之后的子任务(例如,q>p)。针对另一子任务(例如,第q子任务)的另一SNN是独立于处理500的此次迭代中针对指定子任务(例如,第p子任务)的SNN而训练的。在550,可以确定向针对另一子任务的另一SNN的另一输入。在一些实施例中,另一输入可包括由达到另一子任务(例如,第q子任务)的子任务初始状态的执行设备以及一个或多个其他设备采取的另一动作序列。在一些实施例中,因为针对另一子任务(例如,第q子任务)的另一SNN位于指定子任务(例如,第p子任务)之后,所以输入到针对另一子任务(例如,第q子任务)的另一SNN的另一动作序列可以包括输入到针对指定子任务(例如,第p子任务)的SNN的动作序列。在560,用于完成另一子任务(例如,第q子任务)的另一动作选择方针是利用向针对另一子任务(例如,第q子任务)的SNN的另一输入基于针对另一子任务(例如,第q子任务)的SNN的另一输出来确定的。
处理500可以继续直到其在590处终止。在一些实施例中,可以通过根据从包括初始状态的第一子任务到包括多个任务终点状态的最后一个子任务的子任务序列的顺序,来确定针对子任务序列中的每一个子任务的对应动作选择方针,从而确定用于完成任务的总体动作选择方针。在一些实施例中,可以通过根据子任务序列的顺序将针对子任务序列中的每一个子任务的对应动作选择方针进行合并或以其他方式组合,来确定用于完成任务的总体动作选择方针。
图6描绘了示出根据本文实施例的计算机实现的系统的示例的框图,该计算机实现的系统被用于提供与所描述的算法、方法、函数处理、流程和进程相关联的计算功能。图6是示出根据本公开实施例的计算机实现的用于提供与所描述的算法、方法、函数、处理、流程和过程相关联的计算功能的系统600的示例的框图。在所示的实施例中,系统600包括计算机602和网络630。
所示的计算机602旨在包括任何计算设备,诸如服务器、台式计算机、手提电脑/笔记本电脑、无线数据端口、智能手机、个人数据助理(PDA)、平板电脑、这些设备内的一个或多个处理器、另一计算设备或计算设备的组合,包括计算设备的物理或虚拟实例,或计算设备的物理或虚拟实例的组合。此外,计算机602可以包括输入设备诸如键区、键盘、触摸屏、另一输入设备或可接受用户信息的输入设备的组合以及在图形用户界面(UI或GUI)或其他UI上传送与计算机602的操作相关的信息的输出设备,信息包括数字数据、视频、音频、其他类型的信息或信息类型的组合。
计算机602可以在分布式计算系统中充当客户端、网络组件、服务器、数据库或其他持久性、其他作用或用于执行本公开中所述主题的作用的组合。所示的计算机602与网络630通信地耦接。在一些实施例中,计算机602的一个或多个组件可以被配置为在环境中操作,环境包括基于云计算的、本地的、全局的、另一环境或环境的组合。
在高等级上,计算机602是电子计算设备,其可以用于接收、传输、处理、存储或管理与所述主题相关联的数据和信息。根据一些实施例,计算机602还可以包括服务器或与服务器通信地耦接,服务器包括应用服务器、电子邮件服务器、Web服务器、高速缓存服务器、流数据服务器、另一服务器或服务器的组合。
计算机602可以通过网络630接收请求(例如,来自另一计算机602上执行的客户端软件应用程序),并响应于于接收到的请求,通过使用软件应用程序或软件应用程序的组合处理所述接收到的请求。此外,请求还可以从内部用户(例如,从命令控制台或通过其他内部访问方法)、外部或第三方或者其他实体、个人、系统或计算机被发送至计算机602。
计算机602的每个组件可以使用系统总线603通信。在一些实施例中,计算机602的任何或所有组件(包括硬件、软件、或者硬件和软件的组合)可以使用应用程序编程接口(API)612、服务层613、或者API612和服务层613的组合在系统总线603上接口。API 612可以包括进程、数据结构和对象类的规范。API 612既可以是计算机语言无关的,也可以是计算机语言相关的,并且可以引用完整的接口、单个函数,甚至一组API。服务层613向计算机602或与计算机602通信耦接的其他组件(无论是否示出)提供软件服务。计算机602的功能使用服务层613对于所有的服务消费者是可以访问的。软件服务(诸如由服务层613提供的服务)通过定义的接口提供可重用的、定义的功能。例如,接口可以是用JAVA、C++、其他计算语言、或者以可扩展标记语言(XML)格式、其他格式、或者格式的组合提供数据的计算语言的组合书写的软件。虽然被示出为计算机602的集成组件,但替代实施例可以将API 612或服务层613示出为关于计算机602的其他组件或与计算机602通信地耦接的其他组件(无论是否示出)的独立组件。此外,在不脱离本公开的范围的情况下,API 612或服务层613的任何或所有部分可以被实现为另一软件模块、企业应用或硬件模块的子模块(child or sub-modules)。
计算机602包括接口604。尽管被示出为单个接口604,但根据计算机602的特定需求、期望或特定实施例可以使用两个或更多个接口604。接口604被计算机602用于与在分布式环境中通信地链接到网络630的另一计算系统(无论是否示出)通信。通常,接口604可操作以与网络630通信,并且包括编码在软件、硬件、或者软件和硬件的结合中的逻辑。更具体地,接口604可以包括支持与通信相关联的一个或多个通信协议的软件,使得网络630或接口604的硬件可操作以在所示计算机602的内部和外部传送物理信号。
计算机602包括处理器605。尽管被示出为单个处理器605,但根据计算机602的特定需求、期望或特定实施例可以使用两个或更多个处理器605。通常,处理器605执行指令和操作数据以执行计算机602的操作以及本公开中所述的任何算法、方法、功能、处理、流程和进程。
计算机602还包括可以保存计算机602的数据的数据库606、与网络630通信地链接的另一组件(无论是否示出)、或者计算机602和另一组件的结合。例如,数据库606可以是内存中的、常规的或其他类型的数据库,其存储与本公开一致的数据。在一些实施例中,数据库606根据计算机602的特定需求、期望或特定实施例以及所述功能可以是两种或多种不同的数据库类型(例如,混合的内存中和常规数据库)的结合。尽管被示出为单个数据库606,但根据计算机602的特定需求、期望或特定实施例以及所述功能可以使用两个或更多个类似或不同类型的数据库。虽然数据库606是计算机602的组成部分,但在替代实施例中,数据库606可以在计算机602的外部。作为示例,数据库606可以包括上述指定了被划分为多个阶段616的IIG的数据、用于该IIG的一个或多个阶段的一个或多个VNN 618、用于该IIG的一个或多个阶段的一个或多个SNN 622、用于该IIG的一个或多个阶段的一个或多个动作选择方针(策略)626、以及IIG的一个或多个阶段的终点状态下的奖励(包括中间奖励)628。
计算机602还包括可以保存计算机602的数据的存储器607、与网络630通信地链接的另外一个或多个组件(无论是否示出)、或者计算机602与另一组件的结合。存储器607可以存储与本公开一致的任何数据。在一些实施例中,存储器607根据计算机602的特定需求、期望或特定实施例以及所述功能可以是两种或更多种不同类型的存储器(例如,半导体和磁存储器的结合)的结合。尽管被示出为单个存储器607,但根据计算机602的特定需求、期望或特定实施例以及所述功能可以使用两个或更多个存储器607或类似或不同的类型。虽然存储器607被示出为计算机602的组成部分,但在替代实施例中,存储器607可以在计算机602的外部。
应用程序608是算法软件引擎,其根据计算机602的特定需求、期望或特定实施例提供功能,特别是关于本公开中所述的功能。例如,应用程序608可以用作一个或多个组件、模块或应用程序。此外,尽管被示出为单个应用程序608,但应用程序608可以在计算机602上作为多个应用程序608实现。此外,尽管被示出为计算机602的组成部分,但是在替代实施例中,应用程序608可以在计算机602的外部。
计算机602还可以包括电源614。电源614可包括可充电或不可充电电池,其可配置为用户可更换或用户不可更换。在一些实施例中,电源614可以包括电源转换或管理电路(包括充电、待机或其他电源管理功能)。在一些实施例中,电源614可以包括电源插头,以允许计算机602插入墙壁插座或其他电源,例如为计算机602供电或为可充电电池充电。
可以有任意数量的计算机602与包含计算机602的计算机系统相关联或在包含计算机602的计算机系统外部,每台计算机502通过网络630通信。此外,术语“客户端”、“用户”或其他适当术语可以根据需要互换使用,而不背离本公开的范围。此外,本公开考虑到许多用户可以使用一台计算机602,或者一个用户可以使用多台计算机602。
图7是根据本文实施例的装置700的模块的示例的示图。装置700可以是用于生成动作选择方针以促使执行设备在包括执行设备以及一个或多个其他设备的环境中完成任务的数据处理装置或执行设备的示例性实施例。装置700可以对应于上述实施例,装置700包括以下:获得模块701,用于获得表示被划分为子任务序列的任务的数据,其中,任务包括任务初始状态、多个非任务终点状态和多个任务终点状态,其中,每个任务终点状态是由执行设备以及一个或多个其他设备在多个非任务终点状态的子集下采取的动作序列导致的,并且多个任务终点状态具有任务终点状态下的对应奖励,子任务序列中的每个子任务包括该子任务的一个或多个子任务初始状态及多个子任务终点状态,除了子任务序列中的最后一个子任务,子任务的多个子任务终点状态是子任务序列中在该子任务之后的下一个子任务的多个子任务初始状态,第一训练模块702,用于对于子任务序列中除第一子任务之外的指定子任务,训练针对该指定子任务的值神经网络(VNN),其中,针对该指定子任务的VNN接收包括执行设备以及一个或多个其他设备达到指定子任务的子任务初始状态的达到概率的输入,并预测执行设备在指定子任务的子任务初始状态下的奖励;第二训练模块703,用于基于针对该指定子任务的VNN,训练针对子任务序列中指定子任务之前的先前子任务的策略神经网络(SNN),其中,针对先前子任务的SNN接收包括由达到先前子任务的子任务状态的执行设备以及一个或多个其他设备采取的动作序列的输入,并预测执行设备在先前子任务的子任务状态下的动作选择方针。
在一些实施例中,装置700还包括以下:确定模块704,用于基于由针对先前子任务的SNN生成的输出,确定用于完成先前子任务的动作选择方针;以及控制模块705,用于根据用于完成先前子任务的动作选择方针,控制执行设备在先前子任务中的操作。
在一些实施例中,其中,训练针对指定子任务的VNN包括使用来自针对子任务序列中指定子任务之后的下一个子任务的VNN的输出来训练针对指定子任务的VNN,针对下一个子任务的VNN接收包括执行设备以及一个或多个其他设备达到下一个子任务的子任务初始状态的达到概率的输入,并且来自针对下一个子任务的VNN的输出包括执行设备在下一个子任务的子任务初始状态下的奖励。
在一些实施例中,其中,训练针对指定子任务的值神经网络(VNN)包括:获得向针对指定子任务的VNN的多个样本输入,其中,多个样本输入中的每一个包括:达到指定子任务的子任务初始状态的执行设备以及一个或多个其他设备的公开信息、执行设备以及一个或多个其他设备达到指定子任务的子任务初始状态的达到概率;对于多个样本输入中的每一个,通过执行CFR算法,计算执行设备在指定子任务的子任务初始状下的样本奖励;以及基于多个样本输入中的每一个和执行设备在指定子任务的子任务初始状态下的样本奖励,训练针对指定子任务的VNN。
在一些实施例中,其中,基于针对指定子任务的VNN训练针对先前子任务的SNN包括:基于针对指定子任务的VNN的输出,预测在先前子任务的多个子任务终点状态下的多个奖励;以及根据基于神经网络的CFR算法,基于在先前子任务的多个子任务终点状态下的多个奖励,训练针对先前子任务的SNN。
在一些实施例中,装置700还包括以下:第三训练模块706,用于基于针对子任务序列中另一子任务之后的子任务的VNN来训练针对子任务序列中的另一子任务的另一策略神经网络(SNN),其中,训练针对另一子任务的SNN是独立于训练针对先前子任务的SNN执行的。
在一些实施例中,基于针对指定子任务的VNN来训练针对先前子任务的SNN是响应于确定先前子任务的复杂度超过阈值而执行的。
图8是根据本文实施例的装置800的模块的示例的示图。装置800可以是用于生成动作选择方针以促使执行设备在包括执行设备以及一个或多个其他设备的环境中完成任务的数据处理装置或执行设备的示例性实施例。装置800可以对应于上述实施例,装置800包括以下:第一获得模块801,用于获得表示被划分为子任务序列的任务的数据,其中,任务包括任务初始状态、多个非任务终点状态和多个任务终点状态,其中,每个任务终点状态是由执行设备以及一个或多个其他设备在多个非任务终点状态的子集下采取的动作序列导致的,并且多个任务终点状态具有任务终点状态下的对应奖励,子任务序列中的每个子任务包括该子任务的一个或多个子任务初始状态及多个子任务终点状态,除了子任务序列中的最后一个子任务外,子任务的多个子任务终点状态是子任务序列中在该子任务之后的下一个子任务的多个子任务初始状态,第二获得模块802,用于获得指定了针对子任务序列中的指定子任务的策略神经网络(SNN)的数据,其中,针对指定子任务的SNN接收包括由达到指定子任务的子任务初始状态的执行设备以及一个或多个其他设备采取的动作序列的输入,并预测执行设备针对指定子任务的动作选择方针,针对指定子任务的SNN是基于针对子任务序列中的该子任务之后的下一个子任务的值神经网络(VNN)而训练的,针对指定子任务的VNN接收包括执行设备以及一个或多个其他设备达到下一个子任务的子任务初始状态的达到概率的输入,以及预测执行设备在下一个子任务的子任务初始状态下的奖励;第一确定模块803,用于确定向针对指定子任务的SNN的指定输入,其中,该输入包括由达到指定子任务的子任务初始状态的执行设备以及一个或多个其他设备采取的指定动作序列;以及第二确定模块804,用于利用向针对指定子任务的SNN的输入,基于针对指定子任务的SNN的输出来确定用于完成指定子任务的动作选择方针。
在一些实施例中,装置800还包括以下:控制模块805,用于根据用于完成指定子任务的动作选择方针,控制执行设备在指定子任务中的操作。
在一些实施例中,其中,指定子任务的复杂度超过阈值。
在一些实施例中,装置800还包括以下:第三确定模块806,用于确定子任务序列中复杂度低于阈值的另一子任务;以及第四确定模块807,用于通过对该另一子任务执行表格式CFR算法,确定用于完成该另一子任务的另一动作选择方针。
在一些实施例中,装置800还包括以下:第三获得模块808,用于获得针对子任务序列中复杂度超过阈值的另一子任务的另一SNN,其中,另一子任务位于子任务序列中的指定子任务之后,并且针对另一子任务的另一SNN是独立于针对指定子任务的SNN而训练的;以及第五确定模块809,用于通过将从任务初始状态达到另一子任务的初始状态的执行设备以及一个或多个其他设备采取的另一动作序列输入到针对该另一子任务的另一SNN中,来确定用于完成该另一子任务的另一动作选择方针。
在一些实施例中,装置800还包括以下:第六确定模块810,用于通过根据从包括初始状态的第一子任务到包括多个任务终点状态的最后一个子任务的子任务序列的顺序,来确定针对每一个子任务的对应动作选择方针,从而确定用于完成任务的总体动作选择方针。
先前实施例中所述的系统、装置、模块或单元可以通过使用计算机芯片或实体来实现,或者可以使用具有特定功能的产品来实现。典型的实施例设备是计算机,计算机可以是个人计算机、笔记本电脑、手机、照相手机、智能手机、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、博弈控制台、平板电脑、可穿戴设备、或这些设备的任何结合。
对于装置中每个模块的功能和角色的实施例过程,可以参考前一方法中相应步骤的实施例过程。为简单起见,这里省略了细节。
由于装置实施方式基本上对应于方法实施例,对于相关部分,可参考本方法实施例中的相关描述。上述装置实施例只是示例。被描述为单独部件的模块可以是或不是物理上分离的,并且被显示为模块的部件可以是或不是物理模块,可以位于一个位置,或者可以分布在多个网络模块上。可以基于实际需求来选择一些或所有模块,以实现本文方案的目标。本领域普通技术人员无需付出创造性劳动就能理解和实现本文的实施例。
再次参照图7-8,每个图可以解释为示出了生成用于在包括执行设备和一个或多个其他设备的环境中完成任务的动作选择方针的数据处理装置或执行设备的内部功能模块和结构。本质上,执行主体实质上可以是电子设备,该电子设备包括以下:一个或多个处理器;以及被配置为存储一个或多个处理器的可执行指令的一个或多个计算机可读存储器。在一些实施例中,一个或多个计算机可读存储器耦接至一个或多个处理器且其上存储有编程指令,所述编程指令能够由所述一个或多个处理器执行以执行如本文中所述的算法、方法、函数、处理、流程和程序。本文还提供了耦接到一个或多个处理器并且其上存储有指令的一个或多个非暂态计算机可读存储介质,当所述指令由所述一个或多个处理器执行时,促使所述一个或多个处理器执行根据本文提供的方法的实施例的操作。
本文还提供一种用于实现本文提供的方法的系统。该系统包括一个或多个处理器以及耦接到所述一个或多个处理器并且其上存储有指令的计算机可读存储介质,当所述指令由所述一个或多个处理器执行时,促使所述一个或多个处理器执行根据本文提供的方法的实施例的操作。
本文中描述的主题的实施例以及动作和操作可以在数字电子电路、有形体现的计算机软件或固件、计算机硬件中实现,包括本文中公开的结构及其结构等同物,或者它们中的一个或多个的组合。本文中描述的主题的实施可以实现为一个或多个计算机程序,例如,在计算机程序载体上编码的、用于由数据处理装置执行或控制数据处理装置的操作的计算机程序指令的一个或多个模块。例如,计算机程序载体可以包括具有编码在其上或者存储在其上的指令的一个或多个计算机可读存储介质。所述载体可以是有形的非暂态计算机可读介质,例如磁盘、磁光盘或光盘、固态驱动器、随机存取存储器(RAM)、只读存储器(ROM)或其他类型媒体。可选地或附加地,载体可以是人工生成的传播信号,例如,机器生成的电信号、光信号或电磁信号,该信号被生成以编码信息,用于传输到合适的接收器装置以供数据处理装置执行。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备或它们中的一个或多个的组合或者是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备或它们中的一个或多个的组合的一部分。计算机存储介质不是传播信号。
计算机程序也可以被称为或描述为程序、软件、软件应用程序、app、模块、软件模块、引擎、脚本或代码,可以以任何形式的编程语言编写,包括编译语言或解释语言、声明性语言或过程性语言;它可以被配置为任何形式,包括作为独立程序,或者作为模块、组件、引擎、子程序或适合在计算环境中执行的其他单元,该环境可以包括由通信数据网络互联的在一个或多个位置的一台或多台计算机。
计算机程序可以但不必与文件系统中的文件相对应。计算机程序可以存储在:保存其他程序或数据的文件的一部分中,例如,存储在标记语言文档中的一个或多个脚本;专用于所讨论的程序的单个文件中;或者多个协调文件中,例如,存储一个或多个模块、子程序或代码部分的多个文件。
用于执行计算机程序的处理器包括,例如,通用微处理器和专用微处理器,以及任意种类数码计算机的任意一个或多个处理器。通常,处理器将接收用于执行的计算机程序的指令以及来自耦接到所述处理器的非暂态计算机可读介质的数据。
术语“实时”、“实时(快速)时间(RFT)”、“近实时(NRT)”、“准实时”或类似术语(如所属领域的技术人员所了解的)意指操作和响应在时间上接近,使得个体大体上同时感知到所述操作和所述响应发送。例如,在个人访问数据的动作之后,用以显示数据的响应(或启动显示)的时间差可以小于1毫秒、小于1秒、或小于5秒。尽管所请求的数据不需要被即时显示(或被启动以显示),但是考虑到所描述的计算系统的处理限制以及例如收集、精确测量、分析、处理、存储或发送数据所需的时间,在没有任何故意延迟的情况下显示(或被启动以显示)所请求的数据。
术语“数据处理装置”包括用于处理数据的所有种类的装置、设备和机器,例如包括可编程处理器、计算机或多个处理器或计算机。数据处理装置可包括专用逻辑电路,例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)或图形处理单元(GPU)。除硬件外,该设备还可包括为计算机程序创建执行环境的代码,例如,构成处理器固件的代码、协议栈、数据库管理系统、操作系统或他们的一个或多个的组合。
本文中描述的处理和逻辑流程可以由一台或多台计算机或处理器执行一个或多个计算机程序来进行,以进行通过对输入数据进行运算并生成输出的操作。过程和逻辑流也可以通过专用逻辑电路(例如,FPGA、ASIC或GPU)或专用逻辑电路与一台或多台编程计算机的组合来执行。
适合于执行计算机程序的计算机可以基于通用和/或专用微处理器,或任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器和/或随机存取存储器接收指令和数据。计算机的元件可以包括用于执行指令的中央处理器和用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器可以补充有专用逻辑电路或集成在专用逻辑电路中。
通常,计算机还将包括或可操作地耦接至一个或多个大容量存储设备,以从一个或多个大容量存储设备接收数据或将数据传输到一个或多个存储设备。存储设备可以是例如,磁盘、磁光盘或光盘或固态驱动器、或任何其他类型的非暂态计算机可读介质。然而,计算机不需要有这样的设备。因此,计算机可以耦接至本地和/或远程的一个或多个存储设备,诸如一个或多个存储器。例如,计算机可以包括作为计算机的集成部件的一个或多个本地存储器,或者计算机可以耦接到云网络中的一个或多个远程存储器。此外,计算机可以被嵌入在另一个设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、博弈控制台、全球定位系统(GPS)接收器或例如通用串行总线(USB)闪存驱动器的便携式存储设备,仅举几例。
部件可以通过可交换地诸如彼此电连接或者光连接,直接地或者经由一个或多个中间部件而彼此“耦接”。如果组件中的一个组件被集成到另一个组件中,则组件也可以被彼此“耦接”。例如,集成到处理器(例如,L2缓存部件)中的存储部件“耦接至”处理器。
为了提供与用户的交互,本文中描述的主题的实施例可以在计算机上实现或配置为与计算机通信,该计算机具有:显示设备,例如,LCD(液晶显示器)监视器,用于向用户显示信息;以及输入设备,用户可以通过该输入设备向该计算机提供输入,例如键盘和例如鼠标、轨迹球或触摸板等的指针设备。其他类型的设备也可以被用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;用户的输入可以以任何形式接收,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过向用户设备上的web浏览器发送web页面以响应从web浏览器收到的请求,或者通过与例如智能电话或电子平板电脑等的用户设备上运行的应用程序(app)进行交互。此外,计算机可以通过向个人设备(例如,运行消息应用的智能手机)发送文本消息或其他形式的消息并接收来自用户的作为回应的响应消息来与用户交互。
本文关于系统、装置和计算机程序组件使用术语“配置为”。对于被配置为执行特定操作或动作的一个或多个计算机的系统,意味着系统已经在其上安装了在运行中促使该系统执行所述操作或动作的软件、固件、硬件或它们的组合。对于被配置为执行特定操作或动作的一个或多个计算机程序,意味着一个或多个程序包括当被数据处理装置执行时促使该装置执行所述操作或动作的指令。对于被配置为执行特定操作或动作的专用逻辑电路,意味着该电路具有执行所述操作或动作的电子逻辑。
虽然本文包括许多具体实施例细节,但是这些不应被解释为由权利要求书本身限定的对要求保护的范围的限制,而是作为对特定实施例的具体特征的描述。在本文多个单独实施例的上下文中描述的多个特定特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合在多个实施例中实现。此外,尽管上面的特征可以被描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下,可以从要求保护的组合中删除来自该组合的一个或多个特征,并且权利要求书可以涉及子组合或子组合的变体。
类似地,虽然以特定顺序在附图中描绘了操作并且在权利要求中叙述了操作,但是这不应该被理解为:为了达到期望的结果,要求以所示的特定顺序或依次执行这些操作,或者要求执行所有示出的操作。在一些特定情况下,多任务并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的划分不应被理解为所有实施例中都要求如此划分,而应当理解,所描述的程序组件和系统通常可以一起被集成在单个软件产品中或者被打包成多个软件产品。
已描述了主题的特定实施例。其他实施例在以下权利要求书的范围内。例如,权利要求中所述的操作可以按照不同的顺序执行,并且仍然可以获得期望的结果。作为一个示例,附图中描绘的过程无需要求所示的特定顺序或次序来实现期望的结果。在一些情况下,多任务并行处理可能是有利的。
Claims (9)
1.一种计算机实现的方法,用于生成动作选择方针,以促使执行设备在包括所述执行设备以及一个或多个其他设备的环境中完成任务,所述方法包括:
获得表示被划分为子任务序列的任务的数据,其中:
所述任务包括任务初始状态、多个非任务终点状态和多个任务终点状态,其中,每个任务终点状态是由所述执行设备以及所述一个或多个其他设备在所述多个非任务终点状态的子集下采取的动作序列导致的,并且所述多个任务终点状态具有所述任务终点状态下的对应奖励,
所述子任务序列中的每个子任务包括所述子任务的一个或多个子任务初始状态及多个子任务终点状态,并且
除了所述子任务序列中的最后一个子任务外,所述子任务的所述多个子任务终点状态是所述子任务序列中所述子任务之后的下一个子任务的多个子任务初始状态,
对于所述子任务序列中除第一子任务之外的指定子任务,
训练针对所述指定子任务的值神经网络VNN,其中,针对所述指定子任务的VNN接收包括所述执行设备以及所述一个或多个其他设备达到所述指定子任务的子任务初始状态的达到概率的输入,并预测所述执行设备在所述指定子任务的所述子任务初始状态下的奖励;以及
基于针对所述指定子任务的VNN,训练针对所述子任务序列中所述指定子任务之前的先前子任务的策略神经网络SNN,其中,针对所述先前子任务的SNN接收包括由达到所述先前子任务的子任务状态的所述执行设备以及所述一个或多个其他设备采取的动作序列的输入,并预测所述执行设备在所述先前子任务的所述子任务状态下的动作选择方针。
2.如权利要求1所述的方法,还包括:
基于由针对所述先前子任务的SNN生成的输出,确定用于完成所述先前子任务的动作选择方针;以及
根据用于完成所述先前子任务的所述动作选择方针,控制所述执行设备在所述先前子任务中的操作。
3.如前述任一项权利要求所述的方法,其中,训练针对所述指定子任务的VNN包括使用来自针对所述子任务序列中所述指定子任务之后的下一个子任务的VNN的输出来训练针对所述指定子任务的VNN,针对所述下一个子任务的VNN接收包括所述执行设备以及所述一个或多个其他设备达到所述下一个子任务的子任务初始状态的达到概率的输入,并且来自针对所述下一个子任务的VNN的输出包括所述执行设备在所述下一个子任务的子任务初始状态下的奖励。
4.如前述任一项权利要求所述的方法,其中,训练针对所述指定子任务的值神经网络VNN包括:
获得向针对所述指定子任务的VNN的多个样本输入,其中,所述多个样本输入中的每一个包括:
达到所述指定子任务的子任务初始状态的所述执行设备以及所述一个或多个其他设备的公开信息;
所述执行设备以及所述一个或多个其他设备达到所述指定子任务的子任务初始状态的达到概率;
对于所述多个样本输入中的每一个,通过执行CFR算法,计算所述执行设备在所述指定子任务的子任务初始状态下的样本奖励;以及
基于所述多个样本输入中的每一个和所述执行设备在所述指定子任务的子任务初始状态下的所述样本奖励,训练针对所述指定子任务的VNN。
5.如前述任一项权利要求所述的方法,其中,基于针对所述指定子任务的VNN训练针对所述先前子任务的SNN包括:
基于针对所述指定子任务的VNN的输出,预测在所述先前子任务的多个子任务终点状态下的多个奖励;以及
根据基于神经网络的CFR算法,基于在所述先前子任务的多个子任务终点状态下的所述多个奖励,训练针对所述先前子任务的SNN。
6.如前述任一项权利要求所述的方法,还包括:
基于针对所述子任务序列中另一子任务之后的子任务的VNN来训练针对所述子任务序列中的所述另一子任务的另一策略神经网络SNN,其中,训练针对所述另一子任务的SNN是独立于训练针对所述先前子任务的SNN执行的。
7.如前述任一项权利要求所述的方法,其中,基于针对所述指定子任务的VNN来训练针对所述先前子任务的SNN是响应于确定所述先前子任务的复杂度超过阈值而执行的。
8.一种用于执行软件实现应用的系统,用于为软件实现应用生成动作选择方针,所述软件实现应用在包括由软件实现应用支持的执行方以及一个或多个其他设备的环境中执行动作,所述系统包括:
一个或多个处理器;以及
一个或多个计算机可读存储器,耦接至所述一个或多个处理器并且其上存储有指令,所述指令能由所述一个或多个处理器执行以执行权利要求1-7中任一项所述的方法。
9.一种用于为软件实现应用生成动作选择方针的装置,所述软件实现应用在包括由所述软件实现应用支持的执行方以及一个或多个其他设备的环境中执行动作,所述装置包括用于执行权利要求1-7中任一项所述的方法的多个模块。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2020/082909 WO2020143847A2 (en) | 2020-04-02 | 2020-04-02 | Determining action selection policies of an execution device |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112437690A true CN112437690A (zh) | 2021-03-02 |
Family
ID=71522296
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080003374.2A Pending CN112437690A (zh) | 2020-04-02 | 2020-04-02 | 确定执行设备的动作选择方针 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11157316B1 (zh) |
CN (1) | CN112437690A (zh) |
SG (1) | SG11202103113XA (zh) |
WO (1) | WO2020143847A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113869501A (zh) * | 2021-10-19 | 2021-12-31 | 京东科技信息技术有限公司 | 神经网络的生成方法、装置、电子设备及存储介质 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11593646B2 (en) * | 2018-02-05 | 2023-02-28 | Deepmind Technologies Limited | Distributed training using actor-critic reinforcement learning with off-policy correction factors |
WO2020098821A2 (en) | 2019-12-12 | 2020-05-22 | Alipay (Hangzhou) Information Technology Co., Ltd. | Determining action selection policies of an execution device |
WO2020098822A2 (en) | 2019-12-12 | 2020-05-22 | Alipay (Hangzhou) Information Technology Co., Ltd. | Determining action selection policies of an execution device |
SG11202010204TA (en) | 2019-12-12 | 2020-11-27 | Alipay Hangzhou Inf Tech Co Ltd | Determining action selection policies of an execution device |
DE102020208473A1 (de) * | 2020-07-07 | 2022-01-13 | Robert Bosch Gesellschaft mit beschränkter Haftung | Verfahren und Vorrichtung für ein Industriesystem |
US11710276B1 (en) * | 2020-09-21 | 2023-07-25 | Apple Inc. | Method and device for improved motion planning |
US20220402522A1 (en) * | 2021-06-21 | 2022-12-22 | Qualcomm Incorporated | Tree based behavior predictor |
CN116389075B (zh) * | 2023-03-08 | 2023-10-20 | 安芯网盾(北京)科技有限公司 | 一种主机攻击行为动态拦截方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180098330A1 (en) * | 2016-09-30 | 2018-04-05 | Drexel University | Adaptive Pursuit Learning Method To Mitigate Small-Cell Interference Through Directionality |
CN109843401A (zh) * | 2017-10-17 | 2019-06-04 | 腾讯科技(深圳)有限公司 | 一种ai对象行为模型优化方法以及装置 |
CN109992000A (zh) * | 2019-04-04 | 2019-07-09 | 北京航空航天大学 | 一种基于分层强化学习的多无人机路径协同规划方法及装置 |
US20190332920A1 (en) * | 2016-11-04 | 2019-10-31 | Google Llc | Unsupervised detection of intermediate reinforcement learning goals |
CN110753936A (zh) * | 2017-08-25 | 2020-02-04 | 谷歌有限责任公司 | 批量强化学习 |
CN110882544A (zh) * | 2019-11-28 | 2020-03-17 | 网易(杭州)网络有限公司 | 多智能体训练方法、装置和电子设备 |
US20200090048A1 (en) * | 2017-05-19 | 2020-03-19 | Deepmind Technologies Limited | Multi-task neural network systems with task-specific policies and a shared policy |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2459254C2 (ru) | 2007-04-27 | 2012-08-20 | Сименс Акциенгезелльшафт | Способ компьютеризованного обучения одной или более нейронных сетей |
US20140039913A1 (en) | 2012-07-31 | 2014-02-06 | Tuomas W. Sandholm | Medical treatment planning via sequential games |
US20160260024A1 (en) * | 2015-03-04 | 2016-09-08 | Qualcomm Incorporated | System of distributed planning |
US10678125B2 (en) | 2016-03-02 | 2020-06-09 | Shin-Etsu Chemical Co., Ltd. | Photomask blank and method for preparing photomask |
US10057367B2 (en) | 2016-03-02 | 2018-08-21 | Huawei Technologies Canada Co., Ltd. | Systems and methods for data caching in a communications network |
CN106296006A (zh) | 2016-08-10 | 2017-01-04 | 哈尔滨工业大学深圳研究生院 | 非完备信息博弈中风险与收益均衡的最少遗憾的评估方法 |
EP3559865A1 (en) * | 2017-01-31 | 2019-10-30 | Deepmind Technologies Limited | Data-efficient reinforcement learning for continuous control tasks |
CN110326004B (zh) * | 2017-02-24 | 2023-06-30 | 谷歌有限责任公司 | 使用路径一致性学习训练策略神经网络 |
US11138513B2 (en) | 2017-06-13 | 2021-10-05 | Princeton University | Dynamic learning system |
CN109101339B (zh) * | 2018-08-15 | 2019-05-31 | 北京邮电大学 | 异构集群中视频任务并行化方法、装置及异构集群系统 |
CN110170171A (zh) * | 2019-06-03 | 2019-08-27 | 深圳市腾讯网域计算机网络有限公司 | 一种目标对象的控制方法及装置 |
CN110489223B (zh) * | 2019-08-26 | 2022-03-29 | 北京邮电大学 | 一种异构集群中任务调度方法、装置及电子设备 |
-
2020
- 2020-04-02 SG SG11202103113XA patent/SG11202103113XA/en unknown
- 2020-04-02 CN CN202080003374.2A patent/CN112437690A/zh active Pending
- 2020-04-02 WO PCT/CN2020/082909 patent/WO2020143847A2/en active Application Filing
-
2021
- 2021-03-31 US US17/219,402 patent/US11157316B1/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180098330A1 (en) * | 2016-09-30 | 2018-04-05 | Drexel University | Adaptive Pursuit Learning Method To Mitigate Small-Cell Interference Through Directionality |
US20190332920A1 (en) * | 2016-11-04 | 2019-10-31 | Google Llc | Unsupervised detection of intermediate reinforcement learning goals |
US20200090048A1 (en) * | 2017-05-19 | 2020-03-19 | Deepmind Technologies Limited | Multi-task neural network systems with task-specific policies and a shared policy |
CN110753936A (zh) * | 2017-08-25 | 2020-02-04 | 谷歌有限责任公司 | 批量强化学习 |
CN109843401A (zh) * | 2017-10-17 | 2019-06-04 | 腾讯科技(深圳)有限公司 | 一种ai对象行为模型优化方法以及装置 |
CN109992000A (zh) * | 2019-04-04 | 2019-07-09 | 北京航空航天大学 | 一种基于分层强化学习的多无人机路径协同规划方法及装置 |
CN110882544A (zh) * | 2019-11-28 | 2020-03-17 | 网易(杭州)网络有限公司 | 多智能体训练方法、装置和电子设备 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113869501A (zh) * | 2021-10-19 | 2021-12-31 | 京东科技信息技术有限公司 | 神经网络的生成方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
SG11202103113XA (en) | 2021-04-29 |
US20210311778A1 (en) | 2021-10-07 |
WO2020143847A3 (en) | 2021-01-28 |
WO2020143847A2 (en) | 2020-07-16 |
US11157316B1 (en) | 2021-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112437690A (zh) | 确定执行设备的动作选择方针 | |
Li | Reinforcement learning applications | |
US11204803B2 (en) | Determining action selection policies of an execution device | |
JP7219228B2 (ja) | 当事者の間の戦略的対話における戦略探索 | |
US10675537B1 (en) | Determining action selection policies of an execution device | |
JP7078799B2 (ja) | 当事者間の戦略的対話における戦略探索のためのサンプリング方式 | |
TWI763120B (zh) | 執行設備的計算機實現的方法、用於執行軟體實現應用的系統和用於為軟體實現應用生成動作選擇方針的裝置 | |
CN112292699A (zh) | 确定执行设备的动作选择方针 | |
US10765949B1 (en) | Determining action selection policies of an execution device | |
CN112041811B (zh) | 确定执行设备的动作选择方针 | |
CN112041875B (zh) | 确定执行设备的动作选择方针 | |
CN112292698A (zh) | 确定执行设备的动作选择方针 | |
Kunczik | Reinforcement Learning and Bellman’s Principle of Optimality |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |