CN112861440B - 一种面向各类应用的软件机器人系统及其工作方法 - Google Patents
一种面向各类应用的软件机器人系统及其工作方法 Download PDFInfo
- Publication number
- CN112861440B CN112861440B CN202110221339.4A CN202110221339A CN112861440B CN 112861440 B CN112861440 B CN 112861440B CN 202110221339 A CN202110221339 A CN 202110221339A CN 112861440 B CN112861440 B CN 112861440B
- Authority
- CN
- China
- Prior art keywords
- software
- state
- user
- instruction
- 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.)
- Active
Links
Images
Classifications
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Geometry (AREA)
- Feedback Control In General (AREA)
Abstract
本发明涉及一种面向各类应用的软件机器人系统及其工作方法,该系统通过对应用软件环境进行建模,然后采用深度强化学习方法设计和实现具有自我学习和决策能力的软件机器人,并提供人机交互接口。在学习完成后,根据用户下发的业务指令,软件机器人系统可以自动执行学习到的操作序列,以完成指定软件的指令任务。该系统可以应用到各类应用软件,能够简化用户的操作,使得用户在使用软件的某种功能时,无需关心具体的操作,只需要向系统下发指令,系统就能自动探索并生成最优操作序列,然后对软件进行操作完成对应的功能。
Description
技术领域
本发明涉及一种面向各类应用的软件机器人系统及其工作方法,属于软件机器人系统技术领域。
背景技术
伴随着信息科技的飞速发展,机器人技术的研究和应用引起了各国的重视,逐渐成为国家建设的重点领域。近年来,伴随着人工智能、大数据、云计算等新兴技术的提出,机器人流程自动化(Robotic Process Automation)出现在人们的视野,英文缩写为RPA,有关机器人流程自动化的讨论和研究甚嚣尘上。国际知名信息调查机构Gartner在“2020年的十大战略技术趋势”报告中预测,机器人流程自动化(RPA)的兴起是未来人类社会实现超自动化(Hyper Automation)大趋势的重要部分,同时预计到2024年,通过将超自动化技术与重新设计的操作流程相结合,企业将降低30%的运营成本。
机器人流程自动化(RPA)是一种基于软件之上的自动化技术,这些工具可以像人那样在其他计算机系统的用户界面上操作。机器人流程自动化(RPA)是以机器人作为虚拟劳动力,模拟人在电脑上的不同系统之间操作行为,替代人在电脑前执行具有规律与重复性高的办公流程。大量繁琐但有规律的工作RPA都能胜任。
RPA的主要好处是降低成本,提高处理速度,减少错误并提高生产率。在实现方面,重要的是要考虑RPA不存储任何事务数据,并且不需要数据库。RPA机器人位于现有系统的顶部,并通过表示层访问这些平台。RPA软件机器人的目标是用“由外而内”的方式实现自动化来取代人。这不同于经典的“由内而外”的方法来改进信息系统。与传统的工作流技术不同,信息系统可以保持不变,不需要进行二次开发。
综上所述,在数字化时代,信息系统的角色日益从支持人类转变为替代人类。在信息时代的浪潮中,RPA软件机器人拥有广阔的前景以及巨大的经济价值。现有的RPA软件机器人大都是基于脚本对软件进行操作,这就需要人们事先熟悉完成某种功能所需要的一系列操作并编写脚本,对于功能众多复杂的软件来讲,这样的代价花销是巨大的。例如用户使用典型办公软件时,想要修改段落格式却不知道如何操作时,让其寻找对应脚本进行操作是不现实的。
发明内容
针对现有技术的不足,本发明提供了一种面向各类应用的软件机器人系统。
本发明还提供上述面向各类应用的软件机器人系统的工作方法,该系统通过对应用软件环境进行建模,然后采用深度强化学习方法设计和实现具有自我学习和决策能力的软件机器人,并提供人机交互接口。在学习完成后,根据用户下发的业务指令,软件机器人系统可以自动执行学习到的操作序列,以完成指定软件的指令任务。该系统可以应用到各类应用软件,能够简化用户的操作,使得用户在使用软件的某种功能时,无需关心具体的操作,只需要向系统下发指令,系统就能自动探索并生成最优操作序列,然后对软件进行操作完成对应的功能。
术语解释:
1.有限状态机:有限状态机是一种用来进行对象行为建模的工具,其作用主要是描述对象在它的生命周期内所经历的状态序列,以及如何响应来自外界的各种事件。在计算机科学中,有限状态机被广泛用于建模应用行为、硬件电路系统设计、软件工程,编译器、网络协议、和计算与语言的研究。
2.自然语言处理模型:NLP模型,即处理自然语言的模型,在本发明中自然语言处理模型的作用是将用户输入的自然语言指令映射到状态机中的一个状态。
3.ε-贪婪法:ε-贪婪法通过设置一个较小的ε值,使用1-ε的概率贪婪选择当前状态下认为是最大价值行为的行为,以ε的概率随机地从当前状态的所有k个动作中选择其中一个动作:
在求解控制问题时,为了使算法收敛,会令ε随着算法的迭代过程逐渐减小,并最终趋近于0。这样在迭代前期可以进行探索,在后期,由于有了足够的探索量,则会以贪婪为主,这样可以使算法稳定收敛。
4.DQN:Deep Q Network的缩写,作为强化学习和深度学习的完美结合,实现了从感知到动作的端到端的革命性算法,具有一定的代表性。如今很多深度强化学习算法都是基于DQN的算法基础上,本系统在软件机器人自学习阶段的算法研究将基于DQN。
DQN是基于Q-leanring的一种算法,Q-leanring是一种结合探索学习和决策的离线强化学习算法,它使用一个策略进行环境探索,使用另外一个策略进行价值迭代。软件机器人的学习过程也是一个探索和决策的过程,可以基于Q-learning进行研究,但是存在问题。DQN与Q-leanring类似都是基于值迭代的算法,但是如果软件机器人使用Q-learning,在基于之前建立的软件环境隐式规则和状态机上抽取出的状态空间和动作空间是离散且维数不高时,可使用Q-Table储存每个软件状态动作对的Q值,但是状态和动作空间是高维连续时,使用Q-Table的动作空间和状态太大十分困难。
对于软件机器人的自主学习,软件的状态集合和动作集合会很大,是无法使用Q-Table来进行学习的,所以在此处可以把软件自主学习的Q-table更新转化为一函数拟合问题,通过拟合一个函数function来代替Q-table产生Q值,使得相近的状态得到相近的输出动作。因此DQN借助深度神经网络对复杂特征的提取有很好效果的特点,使用深度神经网络来拟合这个函数,即所谓的Q网络。
5.反向传播算法:即BP算法,适合于多层神经元网络的一种学习算法,它建立在梯度下降法的基础上。BP网络的输入输出关系实质上是一种映射关系:一个n输入m输出的BP神经网络所完成的功能是从n维欧氏空间向m维欧氏空间中一有限域的连续映射,这一映射具有高度非线性。它的信息处理能力来源于简单非线性函数的多次复合,因此具有很强的函数复现能力。这是BP算法得以应用的基础。
本发明的技术方案为:
一种面向各类应用的软件机器人系统,该系统包括软件环境模块、软件机器人模块和人机交互模块,
软件环境模块用于根据软件下发的软件配置文件,构造软件模型,并将软件模型均输入到软件机器人模块和人机交互模块;
人机交互模块用于识别用户的指令,并将用户的指令转化为软件模型中的目标状态,并将目标状态传递给软件机器人模块;
软件机器人模块通过训练好的深度强化学习算法得到从当前状态到目标状态的最优操作序列,然后将最优操作序列返回给人机交互模块,并且将最优操作序列保存到知识库中;人机交互模块再根据软件机器人模块返回最优操作序列对软件进行操作,以完成目标指令,并将操作完成后的软件状态返回给用户。
由于软件机器人是无法直接在软件上进行学习的,通过软件环境模块对软件进行抽象建模,软件环境模块能够完整和准确的通过模型来描述软件的环境信息,即软件的操作规则,该规则明确了软件机器人进行学习的需要遵循的规则,为软件机器人提供自主学习的软件环境。通过软件机器人模块,软件机器人能够自动学习软件的操作而不需要人为规定操作序列脚本;软件机器人能够学习到最优操作序列,即完成某项任务的所需的执行操作序列最短。
上述面向各类应用的软件机器人系统的工作方法,该方法包括步骤:
(1)根据软件下发的配置文件,软件环境模块构造软件模型,并将构造的软件模型输入到软件机器人模块和人机交互模块;
(2)人机交互模块识别用户的指令,并将用户的指令转化为软件模型中的一个目标状态,并将目标状态传递给软件机器人模块;
(3)在软件机器人模块中,将软件模型的当前状态及目标状态输入到训练好的深度强化学习算法模型中得到最优操作序列;将最优操作序列传递给人机交互模块,并且将最优操作序列保存到知识库中;
(4)人机交互模块根据软件机器人模块返回的最优操作序列对软件进行操作,以完成目标指令,并将操作完成后的软件状态返回给用户。
根据本发明优选的,步骤(1)中,根据软件下发的配置文件,软件环境模块构造软件模型,并将构造的软件模型输入到软件机器人模块和人机交互模块,具体步骤为:
1-1、在软件环境模块中输入软件下发的软件配置文件,所述软件配置文件包括界面信息、菜单信息、弹窗信息和按钮信息;
1-2、根据软件配置文件,使用软件环境隐式规则和有限状态机构造机器人自主学习的软件模型,软件配置文件中界面、菜单和弹窗即为有限状态机中的各个状态,而界面信息、菜单信息和弹窗信息包含了各个状态的文本信息,即之后用于自然语言匹配的信息,比如当前界面为登录界面,文本信息就是“登录界面”;按钮信息即该界面或菜单或弹窗下有哪些按钮;
按钮是各个状态之间进行转换的媒介,按钮信息包含了状态之间的转换关系,如登录界面下的登录按钮包含的信息是转移到用户主菜单,即点击该按钮就会转移到用户主菜单,根据按钮信息就能够知道各个状态之间的转换关系;
已知界面信息、菜单信息和弹窗信息就能知道各个状态的信息,已知按钮信息就能知道各个状态之间转换关系的信息,所以,已知界面信息、菜单信息、弹窗信息以及按钮信息就能构造有限状态自动机了;
该软件模型包含各种状态的集合以及不同状态之间的转换关系,所述转换关系为执行动作,如点击某个按钮;即软件在某个状态下,执行某种动作,到达另一个状态;所述软件环境隐式规则为软件状态在转换的过程中必须遵循的默认的规则,在某个状态下只能执行该状态所对应的动作,而不能执行其它状态对应的动作;在某个状态下一次只能执行一个动作而不能同时执行两个动作;例如,用户在使用Microsoft Word软件的时候,通过点击打印按钮后,会弹出打印选项的对话窗口,此时,用户只能操作该打印选项的窗口,而不能对在下层的Word界面窗口进行相关操作。再如用户在操作应用软件时,每次只能点击一个按钮,不存在同时点击两个按钮的情况或者是当通过按钮激发出的菜单,操作弹出菜单以外的按钮,菜单会消失等等。
1-3、将构造的软件模型传递给软件机器人模块和人机交互模块。
根据本发明优选的,步骤(2)中,人机交互模块识别用户的指令,并将用户的指令转化为软件模型中的一个目标状态,并将目标状态传递给软件机器人模块,具体步骤包括:
2-1、将用户的指令输入到人机交互模块中;
2-2、使用训练好的自然语言处理模型将用户的指令转换为软件模型中的目标状态,目标状态为操作序列的目标状态;
2-3、将目标状态传递给软件机器人模块。
通过训练好的自然语言处理模型能够将用户的指令转换为软件模型中的一个状态,即操作序列的目标状态。从而能正确识别出用户的需求,进行对应的操作,才能给用户返回一个满意的结果。自然语言处理模型用于判断用户输入的自然语言指令和软件各状态信息的匹配度,自然语言处理模型属于语义相似度匹配模型。
根据本发明优选的,步骤2-2中,所述自然语言处理模型为词向量余弦算法,具体的操作为:
对于用户的指令和软件模型中的目标状态,用户的指令和目标状态都是一个句子,对用户的指令和目标状态进行下列操作:
1)使用已有的语料库对用户的指令和软件模型中的一个目标状态进行分词;语料库可以从网络上获得,目前有很多开放的语料库;
2)将用户的指令和一个目标状态的所有分词构成一个词集合,词集合大小为N;
3)使用0到N-1对词集合中的每个分词进行编码;
4)用户的指令和目标状态分别构建维数为N的词向量,词向量的每一维度的数值表示当前句子中与词集合中维度相同的词的频度;例如:以英文单词代表分词,用句子A表示用户的指令,用句子B表示目标状态;
句子A的分词为:a a b d e,句子B的分词为:b b c d,
句子A和句子B形成的词集合:[a b c d e],词集合的大小为5,相同的词覆盖掉。
句子A的词向量:[2 1 0 1 1],即句子A中对应词集合中的词a,b,c,d,e的数目分别为2,1,0,1,1。
句子B的词向量:[0 2 1 1 0],即句子B中对应词集合中的词a,b,c,d,e的数目分别为0 2 1 1 0。
5)计算用户的指令和目标状态的相似度similarity,公式如下:
式(I)中,A为用户的指令的向量表示,B为目标状态的向量表示,Ai为用户的指令的向量表示的第i个元素,Bi为目标状态的向量表示的第i个元素;
6)重复步骤1)-5),计算输入用户的指令与每个目标状态的相似度,选择对应的相似度最大的目标状态作为与用户的指令匹配的目标状态。
根据本发明优选的,步骤(3)中,在软件机器人模块中,将软件模型的当前状态及目标状态输入到深度强化学习算法模型中得到最优操作序列;将最优操作序列传递给人机交互模块,并且将最优操作序列保存到知识库中,具体步骤包括:
3-1、软件机器人模块从人机交互模块得到软件模型的目标状态;
3-2、查询知识库中是否存在从当前状态到目标状态的最优操作序列:
若不存在,转步骤3-3;
若存在,则提取最优操作序列,并转步骤3-7;
3-3、初始化从当前状态到目标状态的最优操作序列O为空;
3-5、当前状态执行动作a得到新的当前状态S**,判定S**是否和目标状态Sd相同,若相同,得到最优操作序列O,转步骤3-6;若不相同,将新的当前状态S**赋值给S*,转步骤3-4;
3-6、将得到的最优操作序列保存到知识库;
3-7、将最优操作序列的传递给人机交互模块。
软件机器人模块根据人机交互模块传来的目标状态信息,利用深度强化学习得到最优操作序列,将其返回给人机交互模块,从而指导其最终对软件的操作。
根据本发明优选的,步骤3-4中,深度强化学习算法为DQN算法,
DQN算法的训练过程为:
1)初始化DQN算法的输入,包括迭代轮数T、状态特征维度n、动作集A、衰减因子γ、探索率ε、Q网络结构、批量梯度下降的样本数m;
2)训练DQN,具体包括:
2-a)随机初始化Q网络的参数ω,清空经验回放集合D;
2-b)随机选择有限状态机中两个不同的状态作为当前状态和目标状态,并将它们合并作为初始状态S,将两个目标状态合并作为终止状态SD;两个目标状态合并就是简单地一起作为神经网络的输入;
2-c)计算初始状态S的特征向量φ(S);
2-d)在Q网络中使用φ(S)作为输入,得到Q网络的所有动作对应的Q值输出,用ε-贪婪法在该Q值输出中选择对应的动作A*;
2-e)在状态S下执行当前动作A*,得到新状态S'对应的特征向量φ(S')、奖励R、新状态S'是否终止状态;
2-f)将{φ(S),A*,R,φ(S'),新状态S'是否终止状态}这个五元组存入经验回放集合D;自训练开始,就只有这个步骤能往经验回放集合D中存放数据,存放的数据之后会反复利用;
2-g)令新状态S'作为初始状态S;
计算当前目标Q值yj:
式(II)中,max的下角标a′表示动作集中对应目标Q值最大的动作;
计算Q值的yj目的是用来更新参数ω,步骤2-i)会用到yj;
2-j)如果状态S'是终止状态SD,当前轮迭代完毕,否则转移到步骤2-c);
2-k)重复步骤2-c)至2-j),进行T轮迭代,输出Q网络参数ω,完成对DQN的训练。
在此处DQN算法主要训练这样一个深度神经网络:输入为当前状态和目标状态的信息,输出为所有动作的Q值。
本发明的有益效果为:
1.本发明设计的面向各类应用软件的软件机器人系统可以通过对软件环境进行建模,然后在此基础上实现软件各种操作行为的自学习,针对软件的不同功能,学习生成相应的操作序列,学习完毕后,得出每个状态下可进行的动作序列的最优值,然后通过人机接口下发任务指令,软件机器人能够完成指定软件的功能。
2.本发明提供的系统通过对软件机器人关键技术进行研究,可以实现在现有的少量的研究下,在一定程度上对软件机器人进行赋能,即针对复杂且贴近真实场景下,机器人拥有一定的决策和自动化能力,只要用户下发指令,就能够自己探索并生成完成各种功能的操作序列,简化用户的操作,可以有效的提升目前RPA软件机器人的能力,增加支持的应用软件和数量,使软件机器人在更多的场景中应用。
3.本发明提供的系统具有广泛的应用,例如,对网络商品的开发者提供功能架构的参考;为网络服务提供商预测用户使用软件时的序列顺序;为网络靶场中的用户行为模拟提供最优最快最有价值的软件操作行为;对软件进行自动化测试;可以帮助设置智能用户行为代理,以代理的形式完成对软件的自动操作;可以使不熟悉软件使用方法的用户也能轻松使用软件。
附图说明
图1为本发明提供的一种面向各类应用的软件机器人系统的结构示意图;
图2为本发明提供的一种面向各类应用的软件机器人系统中软件环境模块的结构示意图;
图3为本发明提供的一种面向各类应用的软件机器人系统中软件环境模块的工作流程图;
图4为本发明提供的一种面向各类应用的软件机器人系统中软件机器人模块的结构示意图;
图5为本发明提供的一种面向各类应用的软件机器人系统中软件机器人模块的工作流程图;
图6为本发明提供的一种面向各类应用的软件机器人系统中人机交互模块的结构示意图;
图7为本发明提供的一种面向各类应用的软件机器人系统中人机交互模块的工作流程图。
具体实施方式
下面结合实施例和说明书附图对本发明做进一步说明,但不限于此。
实施例1
一种面向各类应用的软件机器人系统,如图1、图2、图4和图6所示,该系统包括软件环境模块、软件机器人模块和人机交互模块,
软件环境模块用于根据软件下发的软件配置文件,构造软件模型,并将软件模型均输入到软件机器人模块和人机交互模块;
人机交互模块用于识别用户的指令,并将用户的指令转化为软件模型中的目标状态,并将目标状态传递给软件机器人模块;
软件机器人模块用于通过训练好的深度强化学习算法得到从当前状态到目标状态的最优操作序列,将最优操作序列返回给人机交互模块,并且将最优操作序列保存到知识库中;人机交互模块再根据软件机器人模块返回最优操作序列对软件进行操作,以完成目标指令,并将操作完成后的软件状态返回给用户。
由于软件机器人是无法直接在软件上进行学习的,通过软件环境模块对软件进行抽象建模,软件环境模块能够完整和准确的通过模型来描述软件的环境信息,即软件的操作规则,该规则明确了软件机器人进行学习的需要遵循的规则,为软件机器人提供自主学习的软件环境。通过软件机器人模块,软件机器人能够自动学习软件的操作而不需要人为规定操作序列脚本;软件机器人能够学习到最优操作序列,即完成某项任务的所需的执行操作序列最短。
实施例2
实施例1提供的一种面向各类应用的软件机器人系统的工作方法,如图3、图5和图7所示,该方法包括步骤:
(1)根据软件下发的配置文件,软件环境模块构造软件模型,并将构造的软件模型输入到软件机器人模块和人机交互模块;
(2)人机交互模块识别用户的指令,并将用户的指令转化为软件模型中的一个目标状态,并将目标状态传递给软件机器人模块;
(3)在软件机器人模块中,将软件模型的当前状态及目标状态输入到训练好的深度强化学习算法模型中得到最优操作序列;将最优操作序列传递给人机交互模块,并且将最优操作序列保存到知识库中;
(4)人机交互模块根据软件机器人模块返回的最优操作序列对软件进行操作,以完成目标指令,并将操作完成后的软件状态返回给用户。
实施例3
根据实施例2提供的一种面向各类应用的软件机器人系统的工作方法,区别之处在于:
如图3所示,步骤(1)中,根据软件下发的配置文件,软件环境模块构造软件模型,并将构造的软件模型输入到软件机器人模块和人机交互模块,具体步骤为:
1-1、在软件环境模块中输入软件下发的软件配置文件,所述软件配置文件包括界面信息、菜单信息、弹窗信息和按钮信息;
1-2、根据软件配置文件,使用软件环境隐式规则和有限状态机构造机器人自主学习的软件模型,软件配置文件中界面、菜单和弹窗即为有限状态机中的各个状态,而界面信息、菜单信息和弹窗信息包含了各个状态的文本信息,即之后用于自然语言匹配的信息,比如当前界面为登录界面,文本信息就是“登录界面”;按钮信息即该界面或菜单或弹窗下有哪些按钮;
按钮是各个状态之间进行转换的媒介,按钮信息包含了状态之间的转换关系,如登录界面下的登录按钮包含的信息是转移到用户主菜单,即点击该按钮就会转移到用户主菜单,根据按钮信息就能够知道各个状态之间的转换关系;
已知界面信息、菜单信息和弹窗信息就能知道各个状态的信息,已知按钮信息就能知道各个状态之间转换关系的信息,所以,已知界面信息、菜单信息、弹窗信息以及按钮信息就能构造有限状态自动机了;
该软件模型包含各种状态的集合以及不同状态之间的转换关系,所述转换关系为执行动作,如点击某个按钮;即软件在某个状态下,执行某种动作,到达另一个状态;比如,QQ软件,刚点开时处于登录界面状态,此时执行动作(点击登录)就会进入用户主界面状态,此时又能够根据不同的动作到达其它不同的状态(比如聊天状态,设置状态等)。其中,登录界面状态与用户主界面状态存在的转换关系就是在登录界面状态执行动作(点击登录)就会进入用户主界面状态。
所述软件环境隐式规则为软件状态在转换的过程中必须遵循的默认的规则,在某个状态下只能执行该状态所对应的动作,而不能执行其它状态对应的动作;在某个状态下一次只能执行一个动作而不能同时执行两个动作;例如,用户在使用Microsoft Word软件的时候,通过点击打印按钮后,会弹出打印选项的对话窗口,此时,用户只能操作该打印选项的窗口,而不能对在下层的Word界面窗口进行相关操作。再如用户在操作应用软件时,每次只能点击一个按钮,不存在同时点击两个按钮的情况或者是当通过按钮激发出的菜单,操作弹出菜单以外的按钮,菜单会消失等等。
1-3、将构造的软件模型传递给软件机器人模块和人机交互模块。
如图7所示,步骤(2)中,人机交互模块识别用户的指令,并将用户的指令转化为软件模型中的一个目标状态,并将目标状态传递给软件机器人模块,具体步骤包括:
2-1、将用户的指令输入到人机交互模块中;
2-2、使用训练好的自然语言处理模型将用户的指令转换为软件模型中的目标状态,目标状态为操作序列的目标状态;
步骤2-2中,所述自然语言处理模型为词向量余弦算法,具体的操作为:
对于用户的指令和软件模型中的目标状态,用户的指令和目标状态都是一个句子,对用户的指令和目标状态进行下列操作:
1)使用已有的语料库对用户的指令和软件模型中的一个目标状态进行分词;语料库可以从网络上获得,目前有很多开放的语料库;
2)将用户的指令和一个目标状态的所有分词构成一个词集合,词集合大小为N;
3)使用0到N-1对词集合中的每个分词进行编码;
4)用户的指令和目标状态分别构建维数为N的词向量,词向量的每一维度的数值表示当前句子中与词集合中维度相同的词的频度;例如:以英文单词代表分词,用句子A表示用户的指令,用句子B表示目标状态;
句子A的分词为:a a b d e,句子B的分词为:b b c d,
句子A和句子B形成的词集合:[a b c d e],词集合的大小为5,相同的词覆盖掉。
句子A的词向量:[2 1 0 1 1],即句子A中对应词集合中的词a,b,c,d,e的数目分别为2,1,0,1,1。
句子B的词向量:[0 2 1 1 0],即句子B中对应词集合中的词a,b,c,d,e的数目分别为0 2 1 1 0。
5)计算用户的指令和目标状态的相似度similarity,公式如下:
式(I)中,A为用户的指令的向量表示,B为目标状态的向量表示,Ai为用户的指令的向量表示的第i个元素,Bi为目标状态的向量表示的第i个元素;
6)重复步骤1)-5),计算输入用户的指令与每个目标状态的相似度,选择对应的相似度最大的目标状态作为与用户的指令匹配的目标状态。
2-3、将目标状态传递给软件机器人模块。
通过训练好的自然语言处理模型能够将用户的指令转换为软件模型中的一个状态,即操作序列的目标状态。从而能正确识别出用户的需求,进行对应的操作,才能给用户返回一个满意的结果。自然语言处理模型用于判断用户输入的自然语言指令和软件各状态信息的匹配度,自然语言处理模型属于语义相似度匹配模型。
如图5所示,步骤(3)中,在软件机器人模块中,将软件模型的当前状态及目标状态输入到深度强化学习算法模型中得到最优操作序列;将最优操作序列传递给人机交互模块,并且将最优操作序列保存到知识库中,具体步骤包括:
3-1、软件机器人模块从人机交互模块得到软件模型的目标状态;
3-2、查询知识库中是否存在从当前状态到目标状态的最优操作序列:
若不存在,转步骤3-3;
若存在,则提取最优操作序列,并转步骤3-7;
3-3、初始化从当前状态到目标状态的最优操作序列O为空;
步骤3-4中,深度强化学习算法为DQN算法,
DQN算法的训练过程为:
1)初始化DQN算法的输入,包括迭代轮数T、状态特征维度n、动作集A、衰减因子γ、探索率ε、Q网络结构、批量梯度下降的样本数m;
2)训练DQN,具体包括:
2-a)随机初始化Q网络的参数ω,清空经验回放集合D;
2-b)随机选择有限状态机中两个不同的状态作为当前状态和目标状态,并将它们合并作为初始状态S,将两个目标状态合并作为终止状态SD;两个目标状态合并就是简单地一起作为神经网络的输入;
2-c)计算初始状态S的特征向量φ(S);
2-d)在Q网络中使用φ(S)作为输入,得到Q网络的所有动作对应的Q值输出,用ε-贪婪法在该Q值输出中选择对应的动作A*;
2-e)在状态S下执行当前动作A*,得到新状态S'对应的特征向量φ(S')、奖励R、新状态S'是否终止状态;
2-f)将{φ(S),A*,R,φ(S'),新状态S'是否终止状态}这个五元组存入经验回放集合D;自训练开始,就只有这个步骤能往经验回放集合D中存放数据,存放的数据之后会反复利用;
2-g)令新状态S'作为初始状态S;
计算当前目标Q值yj:
式(II)中,max的下角标a′表示动作集中对应目标Q值最大的动作;
计算Q值的yj目的是用来更新参数ω,步骤2-i)会用到yj;
2-j)如果状态S'是终止状态SD,当前轮迭代完毕,否则转移到步骤2-c);
2-k)重复步骤2-c)至2-j),进行T轮迭代,输出Q网络参数ω,完成对DQN的训练。
在此处DQN算法主要训练这样一个深度神经网络:输入为当前状态和目标状态的信息,输出为所有动作的Q值。
3-5、当前状态执行动作a得到新的当前状态S**,判定S**是否和目标状态Sd相同,若相同,得到最优操作序列O,转步骤3-6;若不相同,将新的当前状态S**赋值给S*,转步骤3-4;
3-6、将得到的最优操作序列保存到知识库;
3-7、将最优操作序列的传递给人机交互模块。
软件机器人模块根据人机交互模块传来的目标状态信息,利用深度强化学习得到最优操作序列,将其返回给人机交互模块,从而指导其最终对软件的操作。
通过对目前对RPA商业产品的调研,现有的RPA产品可以为用户提供替代低价值、繁琐的工作的方案,但其产品在提供流程自动化的过程中,需要人为进行脚本编辑,人工进行录制或者人工进行流程编排,在与软件机器人的交互中,大多是基于自动化测试技术,即基于软件API进行人工脚本驱动,这就需要人们事先熟悉完成某种功能所需要的一系列操作并编写脚本,对于功能众多复杂的软件来讲,这样的代价花销是巨大的。
本发明提供的系统使用在一定程度上对软件机器人进行赋能,即针对复杂且贴近真实场景下,机器人拥有一定的决策和自动化能力,只要用户下发指令,就能够自己探索并生成完成各种功能的操作序列,简化用户的操作。可以有效的提升目前RPA软件机器人的能力,增加支持的应用软件和数量,使软件机器人在更多的场景中应用。
Claims (3)
1.一种面向各类应用的软件机器人系统,其特征在于,该系统包括软件环境模块、软件机器人模块和人机交互模块,
软件环境模块用于根据软件下发的软件配置文件,构造软件模型,并将软件模型均输入到软件机器人模块和人机交互模块;
人机交互模块用于识别用户的指令,并将用户的指令转化为软件模型中的目标状态,并将目标状态传递给软件机器人模块;
软件机器人模块通过训练好的深度强化学习算法得到从当前状态到目标状态的最优操作序列,然后将最优操作序列返回给人机交互模块,并且将最优操作序列保存到知识库中;人机交互模块再根据软件机器人模块返回最优操作序列对软件进行操作,以完成目标指令,并将操作完成后的软件状态返回给用户;
所述的系统的工作方法包括步骤:
(1)根据软件下发的配置文件,软件环境模块构造软件模型,并将构造的软件模型输入到软件机器人模块和人机交互模块;
(2)人机交互模块识别用户的指令,并将用户的指令转化为软件模型中的一个目标状态,并将目标状态传递给软件机器人模块;具体步骤包括:
2-1、将用户的指令输入到人机交互模块中;
2-2、使用训练好的自然语言处理模型将用户的指令转换为软件模型中的目标状态,目标状态为操作序列的目标状态;步骤2-2中,所述自然语言处理模型为词向量余弦算法,具体的操作为:
对于用户的指令和软件模型中的目标状态,用户的指令和目标状态都是一个句子,对用户的指令和目标状态进行下列操作:
1)使用已有的语料库对用户的指令和软件模型中的一个目标状态进行分词;
2)将用户的指令和一个目标状态的所有分词构成一个词集合,词集合大小为N;
3)使用0到N-1对词集合中的每个分词进行编码;
4)用户的指令和目标状态分别构建维数为N的词向量,词向量的每一维度的数值表示当前句子中与词集合中维度相同的词的频度;
5)计算用户的指令和目标状态的相似度similarity,公式如下:
式(I)中,A为用户的指令的向量表示,B为目标状态的向量表示,Ai为用户的指令的向量表示的第i个元素,Bi为目标状态的向量表示的第i个元素;
6)重复步骤1)-5),计算输入用户的指令与每个目标状态的相似度,选择对应的相似度最大的目标状态作为与用户的指令匹配的目标状态;
2-3、将目标状态传递给软件机器人模块;
(3)在软件机器人模块中,将软件模型的当前状态及目标状态输入到训练好的深度强化学习算法模型中得到最优操作序列;将最优操作序列传递给人机交互模块,并且将最优操作序列保存到知识库中;具体步骤包括:
3-1、软件机器人模块从人机交互模块得到软件模型的目标状态;
3-2、查询知识库中是否存在从当前状态到目标状态的最优操作序列:
若不存在,转步骤3-3;
若存在,则提取最优操作序列,并转步骤3-7;
3-3、初始化从当前状态到目标状态的最优操作序列O为空;
3-5、当前状态执行动作a得到新的当前状态S**,判定S**是否和目标状态Sd相同,若相同,得到最优操作序列O,转步骤3-6;若不相同,将新的当前状态S**赋值给S*,转步骤3-4;
3-6、将得到的最优操作序列保存到知识库;
3-7、将最优操作序列的传递给人机交互模块;
(4)人机交互模块根据软件机器人模块返回的最优操作序列对软件进行操作,以完成目标指令,并将操作完成后的软件状态返回给用户。
2.根据权利要求1所述的一种面向各类应用的软件机器人系统的工作方法,其特征在于,步骤(1)中,根据软件下发的配置文件,软件环境模块构造软件模型,并将构造的软件模型输入到软件机器人模块和人机交互模块,具体步骤为:
1-1、在软件环境模块中输入软件下发的软件配置文件,所述软件配置文件包括界面信息、菜单信息、弹窗信息和按钮信息;
1-2、根据软件配置文件,使用软件环境隐式规则和有限状态机构造机器人自主学习的软件模型,该软件模型包含各种状态的集合以及不同状态之间的转换关系,所述转换关系为执行动作,即软件在某个状态下,执行某种动作,到达另一个状态;所述软件环境隐式规则为软件状态在转换的过程中必须遵循的默认的规则;
1-3、将构造的软件模型传递给软件机器人模块和人机交互模块。
3.根据权利要求1所述的一种面向各类应用的软件机器人系统的工作方法,其特征在于,步骤3-4中,深度强化学习算法为DQN算法,
DQN算法的训练过程为:
1)初始化DQN算法的输入,包括迭代轮数T、状态特征维度n、动作集A、衰减因子γ、探索率ε、Q网络结构、批量梯度下降的样本数m;
2)训练DQN,具体包括:
2-a)随机初始化Q网络的参数ω,清空经验回放集合D;
2-b)随机选择有限状态机中两个不同的状态作为当前状态和目标状态,并将它们合并作为初始状态S,将两个目标状态合并作为终止状态SD;
2-c)计算初始状态S的特征向量φ(S);
2-d)在Q网络中使用φ(S)作为输入,得到Q网络的所有动作对应的Q值输出,用ε-贪婪法在该Q值输出中选择对应的动作A*;
2-e)在状态S下执行当前动作A*,得到新状态S'对应的特征向量φ(S')、奖励R、新状态S'是否终止状态;
2-f)将{φ(S),A*,R,φ(S'),新状态S'是否终止状态}这个五元组存入经验回放集合D;
2-g)令新状态S'作为初始状态S;
计算当前目标Q值yj:
式(II)中,max的下角标a′表示动作集中对应目标Q值最大的动作;
2-j)如果状态S'是终止状态SD,当前轮迭代完毕,否则转移到步骤2-c);
2-k)重复步骤2-c)至2-j),进行T轮迭代,输出Q网络参数ω,完成对DQN的训练。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110221339.4A CN112861440B (zh) | 2021-02-27 | 2021-02-27 | 一种面向各类应用的软件机器人系统及其工作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110221339.4A CN112861440B (zh) | 2021-02-27 | 2021-02-27 | 一种面向各类应用的软件机器人系统及其工作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112861440A CN112861440A (zh) | 2021-05-28 |
CN112861440B true CN112861440B (zh) | 2022-10-28 |
Family
ID=75990406
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110221339.4A Active CN112861440B (zh) | 2021-02-27 | 2021-02-27 | 一种面向各类应用的软件机器人系统及其工作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112861440B (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107798624B (zh) * | 2017-10-30 | 2021-09-28 | 北京航空航天大学 | 一种软件问答社区中的技术标签推荐方法 |
CN109783817B (zh) * | 2019-01-15 | 2022-12-06 | 浙江大学城市学院 | 一种基于深度强化学习的文本语义相似计算模型 |
CN111882062B (zh) * | 2020-07-24 | 2023-12-01 | 哈尔滨工业大学(威海) | 一种基于强化学习的Windows窗体应用程序自学习智能机器人及其工作方法 |
CN112181854B (zh) * | 2020-10-30 | 2023-12-22 | 重庆农村商业银行股份有限公司 | 一种生成流程自动化脚本的方法、装置、设备及存储介质 |
-
2021
- 2021-02-27 CN CN202110221339.4A patent/CN112861440B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112861440A (zh) | 2021-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111639710B (zh) | 图像识别模型训练方法、装置、设备以及存储介质 | |
KR102302609B1 (ko) | 신경망 아키텍처 최적화 | |
CN109934261B (zh) | 一种知识驱动参数传播模型及其少样本学习方法 | |
CN110770759B (zh) | 神经网络系统 | |
CN110727806A (zh) | 基于自然语言和知识图谱的文本处理方法及装置 | |
CN111640425B (zh) | 一种模型训练和意图识别方法、装置、设备及存储介质 | |
KR102524766B1 (ko) | 자연어 및 지식 그래프 기반 표현 학습 방법 및 장치 | |
CN111831813B (zh) | 对话生成方法、装置、电子设备及介质 | |
Wang et al. | Policy learning for domain selection in an extensible multi-domain spoken dialogue system | |
CN111582453A (zh) | 生成神经网络模型的方法和装置 | |
CN111144124A (zh) | 机器学习模型的训练方法、意图识别方法及相关装置、设备 | |
Dai et al. | A survey on dialog management: Recent advances and challenges | |
CN114860913B (zh) | 智能问答系统构建方法、问答处理方法及装置 | |
CN117634867B (zh) | 结合大语言模型与强化学习的rpa流程自动构建方法及系统 | |
Viros Martin et al. | Explanation approaches for the Daphne virtual assistant | |
CN114547244A (zh) | 用于确定信息的方法和装置 | |
US11922141B2 (en) | Voice and chatbot conversation builder | |
CN116541536B (zh) | 知识增强的内容生成系统、数据生成方法、设备和介质 | |
CN112861440B (zh) | 一种面向各类应用的软件机器人系统及其工作方法 | |
CN117291185A (zh) | 任务处理方法、实体识别方法及任务处理的数据处理方法 | |
CN110489348B (zh) | 一种基于迁移学习的软件功能缺陷挖掘方法 | |
CN111414466A (zh) | 一种基于深度模型融合的多轮对话建模方法 | |
CN115512214A (zh) | 一种基于因果注意力的室内视觉导航方法 | |
CN116030235A (zh) | 目标检测模型训练方法、目标检测方法、装置和电子设备 | |
KR20240034804A (ko) | 자동 회귀 언어 모델 신경망을 사용하여 출력 시퀀스 평가 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CB03 | Change of inventor or designer information |
Inventor after: Wang Bailing Inventor after: Xin Guodong Inventor after: Wang Xiao Inventor after: Li Bin Inventor after: Huang Junheng Inventor before: Wang Xiao Inventor before: Li Bin Inventor before: Xin Guodong Inventor before: Huang Junheng Inventor before: Wang Bailing |
|
CB03 | Change of inventor or designer information |