CN112884066A - 数据处理方法及装置 - Google Patents
数据处理方法及装置 Download PDFInfo
- Publication number
- CN112884066A CN112884066A CN202110275449.9A CN202110275449A CN112884066A CN 112884066 A CN112884066 A CN 112884066A CN 202110275449 A CN202110275449 A CN 202110275449A CN 112884066 A CN112884066 A CN 112884066A
- Authority
- CN
- China
- Prior art keywords
- function
- data
- model
- training
- target
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 18
- 230000006870 function Effects 0.000 claims abstract description 469
- 238000012549 training Methods 0.000 claims abstract description 250
- 230000009471 action Effects 0.000 claims abstract description 144
- 238000000034 method Methods 0.000 claims abstract description 47
- 238000012545 processing Methods 0.000 claims abstract description 44
- 238000013473 artificial intelligence Methods 0.000 claims description 174
- 239000003795 chemical substances by application Substances 0.000 claims description 166
- 238000004422 calculation algorithm Methods 0.000 claims description 79
- 238000013500 data storage Methods 0.000 claims description 13
- 238000013501 data transformation Methods 0.000 claims description 13
- 238000006243 chemical reaction Methods 0.000 claims description 12
- 238000010276 construction Methods 0.000 claims description 12
- 239000013598 vector Substances 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 5
- 230000010354 integration Effects 0.000 claims description 5
- 238000013461 design Methods 0.000 description 32
- 230000002787 reinforcement Effects 0.000 description 29
- 238000010586 diagram Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 13
- 230000006399 behavior Effects 0.000 description 7
- 238000011161 development Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- -1 i.e. Substances 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000006386 memory function Effects 0.000 description 2
- 230000004083 survival effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Medical Informatics (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例提供一种数据处理方法及装置,该方法包括:确定至少一个自定义函数,其中,至少一个自定义函数用于待训练AI模型的训练。通过预设学习框架中的至少一个函数接口,加载至少一个自定义函数,得到目标学习框架。通过目标学习框架中的至少一个智能体,对待训练AI模型进行训练,得到目标AI模型,目标AI模型用于在游戏内自动做出动作决策。通过将至少一个自定义函数接入预设学习框架,之后基于通过函数接口加载有自定义函数的目标学习框架,对待训练AI模型进行训练,从而得到目标AI模型,可以有效保证目标AI模型是通过根据实际需求确定的自定义函数进行训练的,从而可以有效保证训练后得到的目标函数的适用性。
Description
技术领域
本申请实施例涉及计算机技术,尤其涉及一种数据处理方法及装置。
背景技术
随着人工智能领域的不断发展,在训练游戏智能机器人方面,越来越多的开始使用机器学习的方式。
目前训练游戏智能机器人时,最为适用的是强化学习算法,例如可以通过强化学习框架对游戏智能机器人进行训练,其中,强化学习训练框架的功能就是提供各种各样的训练算法,对特定游戏中的机器人进行训练。
然而,现有技术中的强化学习框架,只能基于框架自身的训练算法对游戏机器人进行训练,从而会导致训练得到的游戏智能机器人缺乏适用性。
发明内容
本申请实施例提供一种数据处理方法及装置,以克服训练得到的游戏智能机器人缺乏适用性的问题。
第一方面,本申请实施例提供一种数据处理方法,包括:
确定至少一个自定义函数,其中,所述至少一个自定义函数用于待训练AI模型的训练;
通过预设学习框架中的至少一个函数接口,加载所述至少一个自定义函数,得到目标学习框架;
通过所述目标学习框架中的至少一个智能体,对待训练AI模型进行训练,得到目标AI模型,所述目标AI模型用于在游戏内自动做出动作决策。
在一种可能的设计中,所述通过所述目标学习框架中的至少一个智能体,对待训练AI模型进行训练,得到目标AI模型,包括:
采集各所述智能体各自对应的训练数据;
将各所述智能体各自对应的训练数据,分别存储至各所述智能体各自对应的内存库;
当各所述智能体各自对应的内存库中均包括预设数量的数据时,根据各所述智能体各自对应的训练数据,分别在各所述智能体中对所述待训练AI模型进行训练,得到目标AI模型。
在一种可能的设计中,所述根据各所述智能体各自对应的训练数据,分别在各所述智能体中对所述待训练AI模型进行训练,得到目标AI模型,包括:
根据各所述智能体各自对应的训练数据,从同一时刻开始,分别在各所述智能体中对所述待训练AI模型进行多轮训练操作,得到目标AI模型,其中,每轮训练操作中,各所述智能体根据数据整合算法对数据进行梯度共享;
所述训练操作包括:
根据所述至少一个算法函数和所述至少一个环境函数,得到预测数据;
根据所述训练数据和所述预测数据,确定损失函数值;
根据所述损失函数值进行反向传播,对所述待训练AI模型的参数进行调整。
在一种可能的设计中,所述至少一个自定义函数包括至少一个算法函数和至少一个环境函数,其中,各所述算法函数用于实现待训练AI模型的数据处理逻辑,各所述环境函数用于实现所述待训练AI模型的游戏环境。
在一种可能的设计中,所述采集各所述智能体各自对应的训练数据,包括:
获取所述智能体对应的当前状态数据;
根据所述至少一个算法函数对所述当前状态数据进行处理,得到所述当前状态数据对应的动作数据;
根据所述至少一个环境函数对所述动作数据进行处理,得到所述动作数据对应的下一状态数据以及所述动作数据对应的奖励数据;
其中,任一个所述训练数据包括:所述当前状态数据、所述当前状态数据对应的动作数据、所述动作数据对应的奖励数据、所述动作数据对应的下一状态数据。
在一种可能的设计中,通过预设学习框架中的至少一个函数接口,加载所述至少一个自定义函数之前,所述方法还包括:
将所述至少一个自定义函数,通过所述至少一个函数接口接入所述预设学习框架。
在一种可能的设计中,在得到目标AI模型之后,所述方法还包括:
在所述至少一个智能体中确定目标智能体;
通过所述目标智能体保存所述目标AI模型,和/或,通过所述目标智能体将训练日志上传至目标设备。
在一种可能的设计中,所述算法函数包括如下中的至少一种:
前向传播函数,其中,所述前向传播函数用于所述待训练AI模型的前向传播;
损失函数,其中,所述损失函数用于计算所述待训练AI模型的损失函数值;
训练数据存储函数,其中,所述训练数据存储函数用于在所述训练数据中选择需要存储的数据;
训练数据选择函数,其中,所述训练数据选择函数用于在所述训练数据中选择用于训练的数据;
训练数据变换函数,其中,所述训练数据变换函数用于对所述训练数据中的奖励进行变换;
网络构建函数,其中,所述网络构建函数用于构建所述待训练AI模型对应的网络;
动作选择函数,其中,所述动作选择函数用于选择当前状态数据对应的动作数据;
学习函数,其中,所述学习函数用于所述待训练AI模型的学习;
权重保存函数,其中,所述权重保存函数用于保存所述待训练AI模型中的权重;
权重加载函数,其中,所述权重加载函数用于加载所述待训练AI模型中的权重。
在一种可能的设计中,所述环境函数包括如下中的至少一种:
构造函数,其中,所述构造函数用于新建游戏对局;
动作执行函数,其中,所述动作执行函数用于向游戏环境对应的战斗引擎发送请求信息,所述请求信息用于请求所述战斗引擎根据动作数据返回下一状态数据;
动作计数函数,其中,所述动作计数函数用于对所述待训练AI模型确定的动作数据进行计数;
状态计数函数,其中,所述状态计数函数用于对所述游戏环境确定的状态数据进行计数;
环境数据转换函数,其中,所述环境数据转换函数用于将游戏环境返回的日志数据转换为向量形式;
奖励函数,其中,所述奖励函数用于确定动作数据对应的奖励数据;
初始化函数,其中,所述初始化函数用于对游戏环境进行初始化;
算法执行函数,其中,所述算法执行函数用于确定当前状态数据对应的动作数据,将所述动作数据发送给所述请求函数,获取所述战斗引擎根据所述动作数据返回的下一状态数据,并且确定所述动作数据对应的奖励数据。
第二方面,本申请实施例提供一种数据处理装置,包括:
确定模块,用于确定至少一个自定义函数,其中,所述至少一个自定义函数用于待训练AI模型的训练;
加载模块,用于通过预设学习框架中的至少一个函数接口,加载所述至少一个自定义函数,得到目标学习框架;
训练模块,用于通过所述目标学习框架中的至少一个智能体,对待训练AI模型进行训练,得到目标AI模型,所述目标AI模型用于在游戏内自动做出动作决策。
在一种可能的设计中,所述训练模块具体用于:
采集各所述智能体各自对应的训练数据;
将各所述智能体各自对应的训练数据,分别存储至各所述智能体各自对应的内存库;
当各所述智能体各自对应的内存库中均包括预设数量的数据时,根据各所述智能体各自对应的训练数据,分别在各所述智能体中对所述待训练AI模型进行训练,得到目标AI模型。
在一种可能的设计中,所述训练模块具体用于:
根据各所述智能体各自对应的训练数据,从同一时刻开始,分别在各所述智能体中对所述待训练AI模型进行多轮训练操作,得到目标AI模型,其中,每轮训练操作中,各所述智能体根据数据整合算法对数据进行梯度共享;
所述训练操作包括:
根据所述至少一个算法函数和所述至少一个环境函数,得到预测数据;
根据所述训练数据和所述预测数据,确定损失函数值;
根据所述损失函数值进行反向传播,对所述待训练AI模型的参数进行调整。
在一种可能的设计中,所述至少一个自定义函数包括至少一个算法函数和至少一个环境函数,其中,各所述算法函数用于实现待训练AI模型的数据处理逻辑,各所述环境函数用于实现所述待训练AI模型的游戏环境。
在一种可能的设计中,所述训练模块具体用于:
获取所述智能体对应的当前状态数据;
根据所述至少一个算法函数对所述当前状态数据进行处理,得到所述当前状态数据对应的动作数据;
根据所述至少一个环境函数对所述动作数据进行处理,得到所述动作数据对应的下一状态数据以及所述动作数据对应的奖励数据;
其中,任一个所述训练数据包括:所述当前状态数据、所述当前状态数据对应的动作数据、所述动作数据对应的奖励数据、所述动作数据对应的下一状态数据。
在一种可能的设计中,所述加载模块还用于:
在通过预设学习框架中的至少一个函数接口,加载所述至少一个自定义函数之前,将所述至少一个自定义函数,通过所述至少一个函数接口接入所述预设学习框架。
在一种可能的设计中,所述处理模块还用于:
在得到目标AI模型之后,在所述至少一个智能体中确定目标智能体;
通过所述目标智能体保存所述目标AI模型,和/或,通过所述目标智能体将训练日志上传至目标设备。
在一种可能的设计中,所述算法函数包括如下中的至少一种:
前向传播函数,其中,所述前向传播函数用于所述待训练AI模型的前向传播;
损失函数,其中,所述损失函数用于计算所述待训练AI模型的损失函数值;
训练数据存储函数,其中,所述训练数据存储函数用于在所述训练数据中选择需要存储的数据;
训练数据选择函数,其中,所述训练数据选择函数用于在所述训练数据中选择用于训练的数据;
训练数据变换函数,其中,所述训练数据变换函数用于对所述训练数据中的奖励进行变换;
网络构建函数,其中,所述网络构建函数用于构建所述待训练AI模型对应的网络;
动作选择函数,其中,所述动作选择函数用于选择当前状态数据对应的动作数据;
学习函数,其中,所述学习函数用于所述待训练AI模型的学习;
权重保存函数,其中,所述权重保存函数用于保存所述待训练AI模型中的权重;
权重加载函数,其中,所述权重加载函数用于加载所述待训练AI模型中的权重。
在一种可能的设计中,所述环境函数包括如下中的至少一种:
构造函数,其中,所述构造函数用于新建游戏对局;
动作执行函数,其中,所述动作执行函数用于向游戏环境对应的战斗引擎发送请求信息,所述请求信息用于请求所述战斗引擎根据动作数据返回下一状态数据;
动作计数函数,其中,所述动作计数函数用于对所述待训练AI模型确定的动作数据进行计数;
状态计数函数,其中,所述状态计数函数用于对所述游戏环境确定的状态数据进行计数;
环境数据转换函数,其中,所述环境数据转换函数用于将游戏环境返回的日志数据转换为向量形式;
奖励函数,其中,所述奖励函数用于确定动作数据对应的奖励数据;
初始化函数,其中,所述初始化函数用于对游戏环境进行初始化;
算法执行函数,其中,所述算法执行函数用于确定当前状态数据对应的动作数据,将所述动作数据发送给所述请求函数,获取所述战斗引擎根据所述动作数据返回的下一状态数据,并且确定所述动作数据对应的奖励数据。
第三方面,本申请实施例提供一种数据处理设备,包括:
存储器,用于存储程序;
处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述处理器用于执行如上第一方面以及第一方面各种可能的设计中任一所述的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如上第一方面以及第一方面各种可能的设计中任一所述的方法。
第五方面,本申请实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上第一方面以及第一方面各种可能的设计中任一所述的方法。
本申请实施例提供一种数据处理方法及装置,该方法包括:确定至少一个自定义函数,其中,至少一个自定义函数用于待训练AI模型的训练。通过预设学习框架中的至少一个函数接口,加载至少一个自定义函数,得到目标学习框架。通过目标学习框架中的至少一个智能体,对待训练AI模型进行训练,得到目标AI模型,目标AI模型用于在游戏内自动做出动作决策。通过将至少一个自定义函数接入预设学习框架,之后基于通过函数接口加载有自定义函数的目标学习框架,对待训练AI模型进行训练,从而得到目标AI模型,可以有效保证目标AI模型是通过根据实际需求确定的自定义函数进行训练的,从而可以有效保证训练后得到的目标函数的适用性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的学习框架的实现示意图;
图2为本申请实施例提供的数据处理方法的流程图;
图3为本申请实施例提供的数据处理方法的流程图二;
图4为本申请实施例提供的至少一个算法函数的接口的实现示意图;
图5为本申请实施例提供的至少一个环境函数的接口的实现示意图;
图6为本申请实施例提供的存储各智能体的训练数据的实现示意图;
图7为本申请实施例提供的各智能体进行模型训练的实现示意图;
图8为本申请实施例提供的数据处理装置的结构示意图;
图9为本申请实施例提供的数据处理设备的硬件结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了更好的理解本申请的技术方案,首先对本申请所涉及的相关技术进行详细介绍:
随着游戏领域的不断发展,在游戏中设置游戏智能机器人,以代替用户进行操作或者和用户进行对战,已经成为了一种非常普遍的操作方式。
在目前的游戏智能机器人开发中,往往使用的是行为树方法。所谓行为树方法,即对应当前局面的一个状态,经过一种树状结构的路径选择后,最终的达到的叶子结点即为选择的行为。
基于上述行为树的方法进行游戏智能机器人的开发,需要人为的去编写行为树,并且智能性不高,因此行为树的方式耗时耗力,同时又无法保证选择的游戏操作的准确性。
随着人工智能算法以及深度学习的不断发展,目前越来越多的开始使用机器学习的方式,来训练游戏智能机器人,其中最为适用的是强化学习算法。
强化学习算法是深度学习领域的一个分支。其核心思想是:算法中的智能体通过不断地与环境交互来获得一个奖励,根据这个奖励,智能体会不断地优化自身策略,从而学习到更好地策略来获得更多的奖励,最终的得到的算法模型可以用于游戏智能机器人中。
但是因为不同的游戏之间是存在差别的,因此强化学习算法往往需要一定的微调来适配不同的游戏,或者开发人员需要开发自己的新的强化学习算法。
因为游戏之间的差异性,因此诞生了各种各样的强化学习框架,此处对框架进行简单介绍,框架是一个可复用的软件架构,其可以理解为对一些功能的封装,之后基于这个框架的话,开发者就可以直接应用这些功能,而不需要重复的实现这些功能了。
强化学习训练框架的功能就是提供各种各样的训练算法,对特定游戏中的智能机器人进行训练。例如可以研发人员可以根据游戏的特点,开发这个游戏的强化学习框架,然而单独开发一个强化学习框架的复杂度较高,实现也较为困难。
在另一种实现方式中,还可以基于目前已有的强化学习框架,对游戏智能机器人进行训练,其中,普通的强化学习框架一般只支持单一算法,单一训练,最终目的都是训练出游戏中的智能机器人,不同学习框架之间的实现细节不同。
比如说目前已有的强化学习框架有,由Facebook开发的基于Pytorch的torchbeast框架,以及由谷歌开源的SEED RL强化学习框架。
但是,目前现有的这些强化学习框架一般只支持写好的算法和简单的游戏环境,也就是说只能够基于现有的框架内部的逻辑和环境对游戏智能机器人进行训练,从而导致无法和特定的游戏进行很好的适配,进而会导致训练得到的游戏智能机器人缺乏适用性。
针对现有技术中的问题,本申请提出了如下技术构思:提出了一种强化学习框架,这个强化学习框架可以接入自定义函数,之后运行接入了自定义函数的强化学习框架,从而可以根据游戏的实际需求进行模型的训练,以有效提升训练得到的游戏智能机器人的适用性。
下面首先结合图1对本申请所提供的学习框架进行简单介绍,图1为本申请实施例提供的学习框架的实现示意图。
如图1所示,本实施例的学习框架中设置有算法接口和环境接口,其中,算法接口可以用于接入自定义算法,环境接口用于接入自定义环境,以及本实施例的学习框架中还设置有至少一个智能体,其中至少一个智能体可以基于上述介绍的自定义算法和自定义环境,进行分布式的自我训练,在训练结束之后,即可以导出人工智能(ArtificialIntelligence,AI)模型,导出的AI模型即为游戏智能机器人。
在本实施例中,因为智能体是基于自定义的算法和自定义的环境进行的训练,从而可以保证训练后输出的AI模型是符合与当前的游戏智能机器人训练需求的,从而可以有效提升训练得到的游戏智能机器人的适用性。
下面结合具体的实施例对本申请提供的数据处理方法进行详细介绍,值得说明的是,本实施例中各实施例的执行主体例如可以为处理器、服务器、微处理器等具备数据处理功能的设备,本实施例对此不做特别限制,执行主体的具体实现方式可以根据实际需求进行选择,只要其具备数据处理的功能即可。
图2为本申请实施例提供的数据处理方法的流程图,如图2所示,该方法包括:
S201、确定至少一个自定义函数,其中,至少一个自定义函数用于待训练AI模型的训练。
在本实施例中,可以确定有至少一个自定义函数,其中自定义函数是根据实际的需求,对待训练AI模型进行训练的过程中所应用的函数,其中自定义函数并非框架内部的函数,而是外部接入框架的函数。以及,待训练AI模型可以理解为游戏智能机器人对应的初始模型,对待训练AI模型的训练完成之后,即可以得到游戏智能机器人。
在一种可能的实现方式中,至少一个自定义函数中可以包括至少一个算法函数和至少一个环境函数,其中,各个算法函数是用于实现待训练AI模型的数据处理逻辑的函数,各个环境函数是用于实现待训练AI模型的游戏环境的函数。
可以理解的是,在基于强化学习对游戏智能机器人进行训练的过程中,模型中会存在很多的算法需求,比如说神经网络的前向传播、神经网络的损失函数的计算、动作的选择等等,因此本实施例中的算法函数就可以是针对这些算法需求的函数。
以及可以理解的是,在强化学习训练的过程中,还需要依赖于环境确定新的状态数据以及奖励数据,因此本实施例中的环境函数就可以针对游戏环境和奖励数据的函数。
在实际实现过程中,自定义函数的选择以及内部的详细实现逻辑可以根据实际需求进行选择,本实施例对此不做限定。
S202、通过预设学习框架中的至少一个函数接口,加载至少一个自定义函数,得到目标学习框架。
在本申请中提供有预设学习框架,其中预设学习框架可以支持接入上述介绍的自定义函数,从而基于上述自定义函数,在预设学习框架中实现对模型的训练。
例如在预设学习框架中,包括有至少一个函数接口,函数接口是用于接入上述自定义函数的,因此本实施例中可以通过预设学习框架中的至少一个函数接口,加载上述介绍的至少一个自定义函数,从而得到目标学习框架,目标学习框架实际上就是就是接入了自定义函数后的预设学习框架。
在一种可能的实现方式中,函数接口和自定义函数可以是对应的,比如说当前的预设学习框架中包括什么函数的函数接口,那么当前就需要获取对应的这个函数。比如说,当前在预设学习框架中包括前向传播函数的函数接口,那么当前就需要获取自定义的前向传播函数,从而可以基于这个自定义的前向传播函数进行模型的训练,其余的函数接口和自定义函数类似。
S203、通过目标学习框架中的至少一个智能体,对待训练AI模型进行训练,得到目标AI模型,目标AI模型用于在游戏内自动做出动作决策。
在本实施例中,目标学习框架中还包括至少一个智能体,其中智能体可以基于上述介绍的至少一个自定义函数进行强化学习训练的过程,从而对待训练AI模型进行训练,在训练完成之后可以得到目标AI模型。
在一种可能的实现方式中,本实施例中的至少一个智能体在对待训练AI模型进行训练时,可以进行分布式的训练,比如说各个智能体在不同的实体设备中进行模型训练的处理,从而可以有效提升模型训练的速度和效率。
在经过上述的训练过程得到目标AI模型之后,可以将目标AI模型应用在游戏中,可以理解的是,本实施例中的目标AI模型就可以理解为上述介绍的游戏智能机器人,因此目标AI模型可以进行游戏操作的选择。
所以在一种可能的实现方式中,可以通过目标AI模型在游戏内自动的做出游戏决策,基于本实施例中训练的得到的目标AI模型,可以有效提升动作决策的合理性和准确性。
本申请实施例提供的数据处理方法,包括:确定至少一个自定义函数,其中,至少一个自定义函数用于待训练AI模型的训练。通过预设学习框架中的至少一个函数接口,加载至少一个自定义函数,得到目标学习框架。通过目标学习框架中的至少一个智能体,对待训练AI模型进行训练,得到目标AI模型,目标AI模型用于在游戏内自动做出动作决策。通过将至少一个自定义函数接入预设学习框架,之后基于通过函数接口加载有自定义函数的目标学习框架,对待训练AI模型进行训练,从而得到目标AI模型,可以有效保证目标AI模型是通过根据实际需求确定的自定义函数进行训练的,从而可以有效保证训练后得到的目标函数的适用性。
在上述实施例的基础上,下面结合图3至图7对本申请提供的数据处理方法进行进一步的详细介绍,图3为本申请实施例提供的数据处理方法的流程图二,图4为本申请实施例提供的至少一个算法函数的接口的实现示意图,图5为本申请实施例提供的至少一个环境函数的接口的实现示意图,图6为本申请实施例提供的存储各智能体的训练数据的实现示意图,图7为本申请实施例提供的各智能体进行模型训练的实现示意图。
如图3所示,该方法包括:
S301、确定至少一个自定义函数,其中,至少一个自定义函数用于待训练AI模型的训练。
其中,S301与上述介绍的S201类似,此处不再赘述。
S302、将至少一个自定义函数,通过至少一个函数接口接入预设学习框架。
在本实施例中,设置有至少一个函数接口,其中,函数接口用于将至少一个自定义函数接入预设学习框架中。
在一种可能的实现方式中,函数接口例如可以包括针对算法的函数接口和针对环境的函数接口,其中,针对算法的函数接口用于接入至少一个算法函数,针对环境的函数接口用于接入至少一个环境函数。
下面结合图4和图5对至少一个函数接口进行介绍,首先结合图4对针对算法的函数接口进行说明。
对于一个强化学习算法而言,最重要的是AI模型的设计与损失函数的设计,通常这两块都是一起出现在算法中的,本实施例的学习框架把AI模型的设计与损失函数的设计抽象成网络(Net)部分,参见图4中的抽象网络单元,在抽象网络单元中例如可以包括前向传播函数接口和损失函数接口。
其中,前向传播函数接口用于接入前向传播函数(forward函数),前向传播函数用于待训练AI模型的前向传播;损失函数接口用于接入损失函数(forwardLoss函数),损失函数用于计算待训练AI模型的损失函数值,其中损失函数值可以用于模型的训练。
当需要实现一个算法的时候,首先需要实现的就是网络类(Net类),在实现上述介绍的前向传播函数以及损失函数之后,就实现了网络类。
当网络类被实现之后,接下要实现的是算法部分中记忆类,在强化学习算法中,智能体需要不断地与环境进行交互来收集数据,这些数据将会被模型用于训练,并且可以被重复利用,因此需要实现记忆类(Memory类)。
本实施例的学习框架可以将记忆类的设计抽象成记忆单元,参见图4中的抽象记忆单元,在抽象记忆单元中例如可以包括训练数据存储函数接口、训练数据选择函数接口、训练数据变换函数接口。
其中,训练数据存储函数接口用于接入训练数据存储函数(insertMemory函数),训练数据存储函数用于在训练数据中选择需要存储的数据,具体的因为对于不同的回合制游戏,游戏的状态和奖励都有所不同,因此要存储哪些数据由insertMemory函数决定。
以及,训练数据选择函数接口用于接入训练数据选择函数(sampleMemory函数),训练数据选择函数用于在训练数据中选择用于训练的数据,也就是说哪些数据被用于训练由sampleMemory函数决定。
以及,训练数据变换函数接口用于接入训练数据变换函数(transMemory函数),训练数据变换函数用于对训练数据中的奖励进行变换,具体的,因为不同的游戏奖励函数有所不同,可能需要对记忆中的奖励数据进行变换,因此需要实现transMemory函数。
在实现上述介绍的训练数据存储函数、训练数据选择函数、训练数据变换函数之后,就实现了记忆类(Memory类)。
在网络类和记忆类均实现完毕后,可以使用模型类(Model类)对这两个类进行组合封装,其中Model类负责对网络进行训练和预测,在一种可能的实现方式中,本实施例中还可以针对Model类设置有抽象模型单元,在抽象模型单元中可以包括用于对AI模型进行训练和预测的函数接口,例如可以包括:网络构建函数接口、动作选择函数接口、学习函数接口、权重保存函数接口、权重加载函数接口。
其中,网络构建函数接口用于接入网络构建函数(buildNet函数),网络构建函数用于构建待训练AI模型对应的网络;动作选择函数接口用于接入动作选择函数(chooseAction函数),动作选择函数用于选择当前状态数据对应的动作数据;学习函数接口用于接入学习函数(learn函数),学习函数用于待训练AI模型的学习;权重保存函数接口用于接入权重保存函数(saveWeights函数),权重保存函数用于保存待训练AI模型中的权重;权重加载函数接口用于接入权重加载函数(loadWeights),权重加载函数用于加载待训练AI模型中的权重。
在整个Model类实现完毕后,就实现了将各个算法函数接入本实施例介绍的预设框架中。
上述介绍的是基于自定义的函数实现AI模型的算法,在另一种可能的实现方式中,为了便于直接使用本实施例中的学习框架,本实施例的学习框架中实现了几个强化学习算法,例如如近端策略优化(Proximal Policy Optimization,PPO)算法和深度Q网络(Deep Q Network,DQN)算法及其变种等,因此在接入本实施例的学习框架之后,可以直接使用,而无需自行实现算法,从而可以有效降低框架的使用难度。
本实施例的框架中提供有函数接口,可以接入自定义的算法函数;以及本实施例的框架中还可以预设有多种强化学习算法,无需接入自定义的算法函数也可以实现模型训练,从而有效提升了框架使用的灵活性。
上述介绍的是针对算法的函数接口的可能的实现方式,下面结合图5对针对环境的函数接口的可能的实现方式进行介绍。
根据回合制游戏的特点,本实施例的学习框架中抽象出了针对环境的接口,在实际实现过程中,可以将游戏对应的战斗引擎接入框架中的环境接口,从而实现了游戏环境的接入,对于战斗引擎返回的数据,可以通过转换函数接入到本实施例的强化学习框架中。
其中,回合制游戏与其他游戏的区别在于,整个局面状态和行为列表可以很方便的抽象成一个一维向量,因此例如可以将战斗引擎返回的数据解析成向量即可。其中环境类的关系图例如可以如图5所示。
本实施例的学习框架抽象出了战斗引擎的接入部分,参见图5中的抽象战斗引擎单元,可以通过抽象战斗引擎单元中的函数实现对战斗引擎的调用,在一种可能的实现方式中,在抽象战斗引擎单元中可以包括构造函数接口和动作执行函数接口。
其中,构造函数接口用于接入构造函数(new_game函数),构造函数用于新建游戏对局;动作执行函数接口用于接入动作执行函数(do_action函数),动作执行函数用于向游戏环境对应的战斗引擎发送请求信息,请求信息用于请求战斗引擎根据动作数据返回下一状态数据,其中动作执行函数可以理解为调用游戏环境对应的战斗引擎处理动作数据,进而确定下一状态数据。
具体的,本实施例的学习框架可以通过外部的战斗引擎上的调用接口实现对战斗引擎的调用,从而可以实现学习框架和游戏环境的解耦,其中,外部的战斗引擎可以理解为当前的游戏所对应的引擎。
基于上述介绍的接入构造函数和动作执行函数以及战斗引擎的调用,可以实现将游戏环境接入本实施例的学习框架中,之后可以基于游戏环境进行AI模型的训练。
同时,针对战斗引擎返回的日志,还需要进行解析,才能够确定战斗引擎返回的数据的具体含义,因此本实施例中在学习框架中还可以抽象出环境单元,如图5所示,抽象环境单元中可以包括多个函数接口。
具体的,动作计数函数接口用于接入动作计数函数(get_action_count函数),动作计数函数用于对待训练AI模型确定的动作数据进行计数;状态计数函数接口用于接入状态计数函数(get_state_count函数),状态计数函数用于对游戏环境确定的状态数据进行计数;环境数据转换函数接口用于接入环境数据转换函数(trans_state函数),环境数据转换函数用于将游戏环境返回的日志数据转换为向量形式;奖励函数接口用于接入奖励函数(get_reward函数),奖励函数用于确定动作数据对应的奖励数据,例如get_reward函数可以通过对执行动作前后的两次状态进行解析,从而得出奖励;初始化函数接口用于接入初始化函数(Reset函数),初始化函数用于对游戏环境进行初始化;算法执行函数接口用于接入算法执行函数(step函数),算法执行函数用于确定当前状态数据对应的动作数据,将动作数据发送给请求函数,获取战斗引擎根据动作数据返回的下一状态数据,并且确定动作数据对应的奖励数据,可以理解的是,算法执行函数实际上可以用于控制整个算法的流程。
上述结合图4和图5介绍了至少一个函数接口的实现方式,对应于各个函数接口,同时也介绍了本实施例中的至少一个自定义函数的实现方式,在实际实现过程中,函数接口的具体设置以及各个自定义函数的实现方式可以根据实际需求进行选择和扩展,本实施例对此不做限制。
在一种可能的实现方式中,上述介绍的将函数接入框架的函数接口的实现,例如可以是将这个函数的具体实现代码添加在框架的函数接口对应的位置,从而实现函数的接入。
S303、通过预设学习框架中的至少一个函数接口,加载至少一个自定义函数,得到目标学习框架。
针对各个函数接口,可以接入有各自对应的自定义函数,则本实施例中可以通过上述介绍的至少一个函数接口,加载各个自定义函数,从而得到目标学习框架,其中,目标学习框架就是接入有自定义函数的框架。
S304、采集各智能体各自对应的训练数据。
在将自定义函数接入之后,框架就具备了AI模型的算法和回合制游戏的游戏环境,因此可以基于学习框架中的智能体进行AI模型的训练了,可以理解的是,AI模型的训练需要训练数据,则可以采集各个智能体各自对应的训练数据。
在本实施例中,各个智能体可以是采用分布式的方式进行训练的,因此各个智能体可以独立的对应各自的训练数据。
以任一个智能体为例,采集训练数据的实现方式例如可以为:
获取智能体对应的当前状态数据;根据至少一个算法函数对当前状态数据进行处理,得到当前状态数据对应的动作数据;根据至少一个环境函数对动作数据进行处理,得到动作数据对应的下一状态数据以及动作数据对应的奖励数据;
基于上述过程可以得到多个训练数据,其中任一个训练数据可以包括:当前状态数据、当前状态数据对应的动作数据、动作数据对应的奖励数据、动作数据对应的下一状态数据。
可以理解的是,本实施例中的至少一个算法函数可以实现AI模型的具体处理逻辑,因此可以基于至少一个算法函数确定状态数据对应的动作数据,相当于AI模型选择动作的过程。以及本实施例中的至少一个环境函数可以实现游戏环境的处理,因此可以基于至少一个环境函数确定动作数据对应的下一状态数据以及奖励数据,相当于游戏环境输出更新的游戏状态和奖励值。
在一种可能的实现方式中,训练数据中的当前状态数据(state)例如可以包括当前游戏状态下的各个虚拟角色的生命值、经验值、位置、动作位置、存活状态、buff(增益)信息等等;以及动作数据(action)可以为当前智能体基于算法函数所选择的一个游戏动作,比如说施放某个虚拟角色的某个技能,或者通过某个虚拟角色施放一次普通攻击等,本实施例对当前状态数据和动作数据的具体实现方式不做限定,其可以根据实际需求进行选择,只要当前状态数据可以指示当前的游戏状态,动作数据可以指示游戏动作即可。
以及环境函数可以调用战斗引擎,从而确定动作数据对应的下一状态数据(state`)以及动作数据对应的奖励数据(reward)。
可以理解的是,在游戏中执行某个游戏动作之后,游戏的状态会发生变化,比如说在一次攻击动作之后,可能敌方虚拟对象的生命值会发生变化,再比如说一次治疗动作之后,可能我方虚拟对象的生命值会发生变化,再例如相应的游戏动作,会导致buff的转移、虚拟对象的存活或者死亡的对象发生变化等,总之,游戏动作会导致游戏状态发生变化,因此动作数据可以对应下一状态数据。
以及,本实施例中可以确定动作数据对应的奖励数据,可以理解的是,本实施例中的待训练AI模型可以是基于强化学习的模型,其中强化学习是以“试错”的方式进行学习,通过与环境进行交互获得的奖励进而指导智能体的动作,目标是获得最大的奖赏,因此奖励数据可以用于指导智能体的动作。
在确定奖励数据的过程中,比如说可以根据动作数据对应的是否击杀了敌方对象,或者说动作数据对应的伤害量是否足够,或者说动作数据是否导致赢下了对局等等,根据这些不同维度的指标设置相应的奖励数据,从而确定动作数据对应的奖励数据,具体的奖励数据的设置方式以及设置数值,均可以根据实际需求进行选择,本实施例对此不做限定。
本实施例中可以根据真实的战斗数据让AI模型进行学习,因此需要大量的训练数据,因此在得到下一状态数据之后,可以将下一状态数据继续输入至智能体,之后重复上述操作,从而采集到智能体对应的多个训练数据。
针对每个智能体,均执行上述操作,从而可以得到多个智能体各自对应的训练数据。
S305、将各智能体各自对应的训练数据,分别存储至各智能体各自对应的内存库。
本实施例的目标学习框架中可以包括多个智能体,其中多个智能体支持分布式训练,从而可以提升模型训练的处理速度,因此可以在不同的设备上启动框架的智能体,以实现分布式的训练。
因为是分布式的训练,因此在每个设备上的智能体都具有各自独立的游戏环境和内存库,因此本实施例中可以将各智能体各自对应的训练数据,分别存储至各智能体各自对应的内存库。
在一种可能的实现方式中,例如可以参照图6进行理解,如图6所示,假设当前存在4个智能体,分别是智能体1、智能体2、智能体3、智能体4,其中,智能体1可以将训练数据存储在其对应的内存库1中,以及智能体2可以将训练数据存储在其对应的内存库2中,智能体3可以将训练数据存储在其对应的内存库3中,智能体4可以将训练数据存储在其对应的内存库4中。
S306、当各智能体各自对应的内存库中均包括预设数量的数据时,根据各智能体各自对应的训练数据,分别在各智能体中对待训练AI模型进行训练,得到目标AI模型,目标AI模型用于在游戏内自动做出动作决策。
本实施例中智能体的训练需要大量的训练数据,以保证模型训练的有效性,因此可以在各个智能体各自对应的内存库中均包括预设数量的数据时,再开始训练,也就是说每个智能体都采集到了足够的训练数据。
在一种可能的实现方式中,本实施例中的各个智能体可以在同一时刻开始训练,从而保证各个智能体训练的进度是一样的,进而保证了最终训练得到的模型的有序性。
例如可以根据各智能体各自对应的训练数据,从同一时刻开始,分别在各智能体中对待训练AI模型进行多轮训练操作,从而得到目标AI模型,其中,每轮训练操作中,各智能体根据数据整合算法对数据进行梯度共享。
具体的,训练时不同的智能体会使用自己的内存库中的训练数据分别进行训练,从而达到了数据样本多样性的目的,例如智能体1采用内存库1中的数据对待训练AI模型进行多轮训练操作,以及智能体2采用内存库2中的数据对待训练AI模型进行多轮训练操作,其余的智能体类似。
例如可以结合图7进行理解,如图7所示,假设当前存在4个智能体,分别是智能体1、智能体2、智能体3、智能体4,其中,每个智能体都可以基于上述介绍的环境类、网络类、记忆类中的自定义函数,以及学习框架中的相关内容,对待训练AI模型进行多轮的训练操作。
同时,每轮迭代的智能体都可以通过AllReduce的方式进行数据并行的梯度共享,以保证各个智能体之间可以就学习到的知识进行共享,从而提升模型训练的速度和效率。
在一种可能的实现方式中,训练操作可以包括:
根据至少一个算法函数和一个环境函数,得到预测数据;
根据训练数据和预测数据,确定损失函数值;
根据损失函数值进行反向传播,对待训练AI模型的参数进行调整。
可以理解的是,训练操作中可以基于训练数据实现模型的训练,在AI模型训练过程中,可以基于上述介绍的至少一个算法函数和至少一个环境函数,得到预测数据,预测数据可以理解为AI模型当前输出的数据,之后根据AI模型当前的输出数据和训练数据中的经验数据,确定损失函数值,其中,损失函数用来评价模型的预测值和真实值不一样的程度,预测值就可以理解为当前的预测数据,真实值就可以理解为训练数据。
接着根据损失函数值进行反向传播,以对待训练AI模型的参数进行调整,从而实现对AI模型的训练。
在本实施例中,每个智能体都可以对模型进行多轮训练,例如可以在训练达到预设轮数,或者说模型的输出准确率达到预设准确率,或者说模型收敛的时候,确定模型的训练完成,从而得到目标训练。
本实施例中是多个智能体分布式的同时进行AI模型的训练,并且共享训练数据和学习经验,最终共同得到了一个目标AI模型。
S307、在至少一个智能体中确定目标智能体。
S308、通过目标智能体保存目标AI模型,和/或,通过目标智能体将训练日志上传至目标设备。
以及本实施例中可以在至少一个智能体中确定一个目标智能体,该智能体用于对训练得到的目标AI模型进行保存,以及,还可以将训练日志上传至目标设备,其中目标智能体可以为至少一个智能体中的任一个,本实施例对此不做限制,例如在图7中选择的就是智能体1作为目标智能体,进行目标AI模型的保存和训练日志的上传。
本申请实施例提供的数据处理方法,包括:确定至少一个自定义函数,其中,至少一个自定义函数用于待训练AI模型的训练。将至少一个自定义函数,通过至少一个函数接口接入预设学习框架。通过预设学习框架中的至少一个函数接口,加载至少一个自定义函数,得到目标学习框架。采集各智能体各自对应的训练数据。将各智能体各自对应的训练数据,分别存储至各智能体各自对应的内存库。当各智能体各自对应的内存库中均包括预设数量的数据时,根据各智能体各自对应的训练数据,分别在各智能体中对待训练AI模型进行训练,得到目标AI模型。在至少一个智能体中确定目标智能体。通过目标智能体保存目标AI模型,和/或,通过目标智能体将训练日志上传至目标设备。通过目标AI模型在游戏内自动做出动作决策。通过在预设学习框架中接入至少一个自定义函数,以便于后续可以根据自定义的函数对模型进行训练,从而可以有效保证训练得到的目标AI模型是符合当前的实际需求的,以保证了得到的目标AI模型的适用性,以及本实施例中在训练目标AI模型的过程中,是根据多个智能体进行分布式训练,并且训练过程中,各个智能体会进行数据的共享,从而可以有效保证模型训练的处理效率。
图8为本申请实施例提供的数据处理装置的结构示意图。如图8所示,该装置80包括:确定模块801、加载模块802、训练模块803以及处理模块804。
确定模块801,用于确定至少一个自定义函数,其中,所述至少一个自定义函数用于待训练AI模型的训练;
加载模块802,用于通过预设学习框架中的至少一个函数接口,加载所述至少一个自定义函数,得到目标学习框架;
训练模块803,用于通过所述目标学习框架中的至少一个智能体,对待训练AI模型进行训练,得到目标AI模型,所述目标AI模型用于在游戏内自动做出动作决策。
在一种可能的设计中,所述训练模块803具体用于:
采集各所述智能体各自对应的训练数据;
将各所述智能体各自对应的训练数据,分别存储至各所述智能体各自对应的内存库;
当各所述智能体各自对应的内存库中均包括预设数量的数据时,根据各所述智能体各自对应的训练数据,分别在各所述智能体中对所述待训练AI模型进行训练,得到目标AI模型。
在一种可能的设计中,所述训练模块803具体用于:
根据各所述智能体各自对应的训练数据,从同一时刻开始,分别在各所述智能体中对所述待训练AI模型进行多轮训练操作,得到目标AI模型,其中,每轮训练操作中,各所述智能体根据数据整合算法对数据进行梯度共享;
所述训练操作包括:
根据所述至少一个算法函数和所述至少一个环境函数,得到预测数据;
根据所述训练数据和所述预测数据,确定损失函数值;
根据所述损失函数值进行反向传播,对所述待训练AI模型的参数进行调整。
在一种可能的设计中,所述至少一个自定义函数包括至少一个算法函数和至少一个环境函数,其中,各所述算法函数用于实现待训练AI模型的数据处理逻辑,各所述环境函数用于实现所述待训练AI模型的游戏环境。
在一种可能的设计中,所述训练模块803具体用于:
获取所述智能体对应的当前状态数据;
根据所述至少一个算法函数对所述当前状态数据进行处理,得到所述当前状态数据对应的动作数据;
根据所述至少一个环境函数对所述动作数据进行处理,得到所述动作数据对应的下一状态数据以及所述动作数据对应的奖励数据;
其中,任一个所述训练数据包括:所述当前状态数据、所述当前状态数据对应的动作数据、所述动作数据对应的奖励数据、所述动作数据对应的下一状态数据。
在一种可能的设计中,所述加载模块802还用于:
在通过预设学习框架中的至少一个函数接口,加载所述至少一个自定义函数之前,将所述至少一个自定义函数,通过所述至少一个函数接口接入所述预设学习框架。
在一种可能的设计中,所述处理模块804还用于:
在得到目标AI模型之后,在所述至少一个智能体中确定目标智能体;
通过所述目标智能体保存所述目标AI模型,和/或,通过所述目标智能体将训练日志上传至目标设备。
在一种可能的设计中,所述算法函数包括如下中的至少一种:
前向传播函数,其中,所述前向传播函数用于所述待训练AI模型的前向传播;
损失函数,其中,所述损失函数用于计算所述待训练AI模型的损失函数值;
训练数据存储函数,其中,所述训练数据存储函数用于在所述训练数据中选择需要存储的数据;
训练数据选择函数,其中,所述训练数据选择函数用于在所述训练数据中选择用于训练的数据;
训练数据变换函数,其中,所述训练数据变换函数用于对所述训练数据中的奖励进行变换;
网络构建函数,其中,所述网络构建函数用于构建所述待训练AI模型对应的网络;
动作选择函数,其中,所述动作选择函数用于选择当前状态数据对应的动作数据;
学习函数,其中,所述学习函数用于所述待训练AI模型的学习;
权重保存函数,其中,所述权重保存函数用于保存所述待训练AI模型中的权重;
权重加载函数,其中,所述权重加载函数用于加载所述待训练AI模型中的权重。
在一种可能的设计中,所述环境函数包括如下中的至少一种:
构造函数,其中,所述构造函数用于新建游戏对局;
动作执行函数,其中,所述动作执行函数用于向游戏环境对应的战斗引擎发送请求信息,所述请求信息用于请求所述战斗引擎根据动作数据返回下一状态数据;
动作计数函数,其中,所述动作计数函数用于对所述待训练AI模型确定的动作数据进行计数;
状态计数函数,其中,所述状态计数函数用于对所述游戏环境确定的状态数据进行计数;
环境数据转换函数,其中,所述环境数据转换函数用于将游戏环境返回的日志数据转换为向量形式;
奖励函数,其中,所述奖励函数用于确定动作数据对应的奖励数据;
初始化函数,其中,所述初始化函数用于对游戏环境进行初始化;
算法执行函数,其中,所述算法执行函数用于确定当前状态数据对应的动作数据,将所述动作数据发送给所述请求函数,获取所述战斗引擎根据所述动作数据返回的下一状态数据,并且确定所述动作数据对应的奖励数据。
本实施例提供的装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
图9为本申请实施例提供的数据处理设备的硬件结构示意图,如图9所示,本实施例的数据处理设备90包括:处理器901以及存储器902;其中
存储器902,用于存储计算机执行指令;
处理器901,用于执行存储器存储的计算机执行指令,以实现上述实施例中数据处理方法所执行的各个步骤。具体可以参见前述方法实施例中的相关描述。
可选地,存储器902既可以是独立的,也可以跟处理器901集成在一起。
当存储器902独立设置时,该数据处理设备还包括总线903,用于连接所述存储器902和处理器901。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上数据处理设备所执行的数据处理方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例所述方法的部分步骤。
应理解,上述处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (13)
1.一种数据处理方法,其特征在于,包括:
确定至少一个自定义函数,其中,所述至少一个自定义函数用于待训练人工智能AI模型的训练;
通过预设学习框架中的至少一个函数接口,加载所述至少一个自定义函数,得到目标学习框架;
通过所述目标学习框架中的至少一个智能体,对待训练AI模型进行训练,得到目标AI模型,所述目标AI模型用于在游戏内自动做出动作决策。
2.根据权利要求1所述的方法,其特征在于,所述通过所述目标学习框架中的至少一个智能体,对待训练AI模型进行训练,得到目标AI模型,包括:
采集各所述智能体各自对应的训练数据;
将各所述智能体各自对应的训练数据,分别存储至各所述智能体各自对应的内存库;
当各所述智能体各自对应的内存库中均包括预设数量的数据时,根据各所述智能体各自对应的训练数据,分别在各所述智能体中对所述待训练AI模型进行训练,得到目标AI模型。
3.根据权利要求2所述的方法,其特征在于,所述根据各所述智能体各自对应的训练数据,分别在各所述智能体中对所述待训练AI模型进行训练,得到目标AI模型,包括:
根据各所述智能体各自对应的训练数据,从同一时刻开始,分别在各所述智能体中对所述待训练AI模型进行多轮训练操作,得到目标AI模型,其中,每轮训练操作中,各所述智能体根据数据整合算法对数据进行梯度共享;
所述训练操作包括:
根据所述至少一个算法函数和所述至少一个环境函数,得到预测数据;
根据所述训练数据和所述预测数据,确定损失函数值;
根据所述损失函数值进行反向传播,对所述待训练AI模型的参数进行调整。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述至少一个自定义函数包括至少一个算法函数和至少一个环境函数,其中,各所述算法函数用于实现待训练AI模型的数据处理逻辑,各所述环境函数用于实现所述待训练AI模型的游戏环境。
5.根据权利要求4所述的方法,其特征在于,所述采集各所述智能体各自对应的训练数据,包括:
获取所述智能体对应的当前状态数据;
根据所述至少一个算法函数对所述当前状态数据进行处理,得到所述当前状态数据对应的动作数据;
根据所述至少一个环境函数对所述动作数据进行处理,得到所述动作数据对应的下一状态数据以及所述动作数据对应的奖励数据;
其中,任一个所述训练数据包括:所述当前状态数据、所述当前状态数据对应的动作数据、所述动作数据对应的奖励数据、所述动作数据对应的下一状态数据。
6.根据权利要求1-5任一项所述的方法,其特征在于,通过预设学习框架中的至少一个函数接口,加载所述至少一个自定义函数之前,所述方法还包括:
将所述至少一个自定义函数,通过所述至少一个函数接口接入所述预设学习框架。
7.根据权利要求1-6任一项所述的方法,其特征在于,在得到目标AI模型之后,所述方法还包括:
在所述至少一个智能体中确定目标智能体;
通过所述目标智能体保存所述目标AI模型,和/或,通过所述目标智能体将训练日志上传至目标设备。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述算法函数包括如下中的至少一种:
前向传播函数,其中,所述前向传播函数用于所述待训练AI模型的前向传播;
损失函数,其中,所述损失函数用于计算所述待训练AI模型的损失函数值;
训练数据存储函数,其中,所述训练数据存储函数用于在所述训练数据中选择需要存储的数据;
训练数据选择函数,其中,所述训练数据选择函数用于在所述训练数据中选择用于训练的数据;
训练数据变换函数,其中,所述训练数据变换函数用于对所述训练数据中的奖励进行变换;
网络构建函数,其中,所述网络构建函数用于构建所述待训练AI模型对应的网络;
动作选择函数,其中,所述动作选择函数用于选择当前状态数据对应的动作数据;
学习函数,其中,所述学习函数用于所述待训练AI模型的学习;
权重保存函数,其中,所述权重保存函数用于保存所述待训练AI模型中的权重;
权重加载函数,其中,所述权重加载函数用于加载所述待训练AI模型中的权重。
9.根据权利要求1-7任一项所述的方法,其特征在于,所述环境函数包括如下中的至少一种:
构造函数,其中,所述构造函数用于新建游戏对局;
动作执行函数,其中,所述动作执行函数用于向游戏环境对应的战斗引擎发送请求信息,所述请求信息用于请求所述战斗引擎根据动作数据返回下一状态数据;
动作计数函数,其中,所述动作计数函数用于对所述待训练AI模型确定的动作数据进行计数;
状态计数函数,其中,所述状态计数函数用于对所述游戏环境确定的状态数据进行计数;
环境数据转换函数,其中,所述环境数据转换函数用于将游戏环境返回的日志数据转换为向量形式;
奖励函数,其中,所述奖励函数用于确定动作数据对应的奖励数据;
初始化函数,其中,所述初始化函数用于对游戏环境进行初始化;
算法执行函数,其中,所述算法执行函数用于确定当前状态数据对应的动作数据,将所述动作数据发送给所述请求函数,获取所述战斗引擎根据所述动作数据返回的下一状态数据,并且确定所述动作数据对应的奖励数据。
10.一种数据处理装置,其特征在于,包括:
确定模块,用于确定至少一个自定义函数,其中,所述至少一个自定义函数用于待训练AI模型的训练;
加载模块,用于通过预设学习框架中的至少一个函数接口,加载所述至少一个自定义函数,得到目标学习框架;
训练模块,用于通过所述目标学习框架中的至少一个智能体,对待训练AI模型进行训练,得到目标AI模型,所述目标AI模型用于在游戏内自动做出动作决策。
11.一种数据处理设备,其特征在于,包括:
存储器,用于存储程序;
处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述处理器用于执行如权利要求1至9中任一所述的方法。
12.一种计算机可读存储介质,其特征在于,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至9中任一所述的方法。
13.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110275449.9A CN112884066A (zh) | 2021-03-15 | 2021-03-15 | 数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110275449.9A CN112884066A (zh) | 2021-03-15 | 2021-03-15 | 数据处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112884066A true CN112884066A (zh) | 2021-06-01 |
Family
ID=76042133
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110275449.9A Pending CN112884066A (zh) | 2021-03-15 | 2021-03-15 | 数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112884066A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114741372A (zh) * | 2022-03-24 | 2022-07-12 | 北京柏睿数据技术股份有限公司 | 一种库内人工智能的实现方法和数据库系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180082210A1 (en) * | 2016-09-18 | 2018-03-22 | Newvoicemedia, Ltd. | System and method for optimizing communications using reinforcement learning |
WO2018212918A1 (en) * | 2017-05-18 | 2018-11-22 | Microsoft Technology Licensing, Llc | Hybrid reward architecture for reinforcement learning |
WO2020106908A1 (en) * | 2018-11-21 | 2020-05-28 | Amazon Technologies, Inc. | Reinforcement learning model training through simulation |
US10706356B1 (en) * | 2019-06-07 | 2020-07-07 | William P Doyle | System and method for understanding human level meaning using a 9-dimensional hypercube of cognitive frames |
CN112329948A (zh) * | 2020-11-04 | 2021-02-05 | 腾讯科技(深圳)有限公司 | 一种多智能体策略预测方法及装置 |
-
2021
- 2021-03-15 CN CN202110275449.9A patent/CN112884066A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180082210A1 (en) * | 2016-09-18 | 2018-03-22 | Newvoicemedia, Ltd. | System and method for optimizing communications using reinforcement learning |
WO2018212918A1 (en) * | 2017-05-18 | 2018-11-22 | Microsoft Technology Licensing, Llc | Hybrid reward architecture for reinforcement learning |
WO2020106908A1 (en) * | 2018-11-21 | 2020-05-28 | Amazon Technologies, Inc. | Reinforcement learning model training through simulation |
US10706356B1 (en) * | 2019-06-07 | 2020-07-07 | William P Doyle | System and method for understanding human level meaning using a 9-dimensional hypercube of cognitive frames |
CN112329948A (zh) * | 2020-11-04 | 2021-02-05 | 腾讯科技(深圳)有限公司 | 一种多智能体策略预测方法及装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114741372A (zh) * | 2022-03-24 | 2022-07-12 | 北京柏睿数据技术股份有限公司 | 一种库内人工智能的实现方法和数据库系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10698730B2 (en) | Neural network processor | |
CN107578095B (zh) | 神经网络计算装置及包含该计算装置的处理器 | |
KR102331978B1 (ko) | 인공 신경망 정방향 연산 실행용 장치와 방법 | |
KR102175044B1 (ko) | 인공 신경망 역방향 트레이닝 실행용 장치와 방법 | |
JP7430744B2 (ja) | 機械学習モデルを改良して局所性を改善させること | |
CN108197705A (zh) | 卷积神经网络硬件加速装置及卷积计算方法及存储介质 | |
CN110326003A (zh) | 用于神经网络处理的具有位置依赖存储器的硬件节点 | |
CN107688854B (zh) | 一种能支持不同位宽运算数据的运算单元、方法及装置 | |
KR102191408B1 (ko) | 뉴럴 네트워크 프로세서 | |
CN109901878A (zh) | 一种类脑计算芯片及计算设备 | |
EP3547227A1 (en) | Neuromorphic accelerator multitasking | |
CA2879531A1 (en) | Neural processing engine and architecture using the same | |
CN112200297A (zh) | 神经网络优化方法、装置及处理器 | |
US11610128B2 (en) | Neural network training under memory restraint | |
CN113885941A (zh) | 一种奇异值分解运算实现方法、装置以及相关设备 | |
CN109740725A (zh) | 神经网络模型运行方法及装置、以及存储介质 | |
CN112884066A (zh) | 数据处理方法及装置 | |
US11275661B1 (en) | Test generation of a distributed system | |
WO2020169182A1 (en) | Method and apparatus for allocating tasks | |
CN112990461B (zh) | 构建神经网络模型的方法、装置、计算机设备和存储介质 | |
CN113887730A (zh) | 量子模拟器实现方法、装置、相关设备以及量子模拟方法 | |
CN112843726A (zh) | 智能体处理方法及装置 | |
CN113743567A (zh) | 一种将深度学习模型部署到加速单元的方法 | |
CN113011577B (zh) | 处理单元、处理器核、神经网络训练机及方法 | |
US20230409982A1 (en) | Artificial neural network emulation of hotspots |
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 |