1.本发明属于机器学习技术领域,具体涉及一种基于因果关系驱动的分层强化学习框架及分层强化学习方法。
背景技术:2.在强化学习的应用环境中,任务的稀疏奖励是普遍存在的问题,其会导致智能体的探索效率低下无法学到有效的策略。分层强化学习通过发现高质量的分层结构——子目标——来提高智能体的探索效率。因此发现高质量的分层结构是分层强化学习的关键挑战。
3.现有技术中通常以两种方式去寻找分层结构:
4.1、人工制定分层结构:根据任务相关的先验和专家知识制定分层结构(任务的子目标)以及对应的奖励函数;但人工制定方式主要依赖人工专家知识,而且存在通用性较低的问题;
5.2、自动发现分层结构:智能体遵循随机性驱动范式来自动的发现分层结构,具体来说是智能体先在环境中随机的探索(通过最大化智能体动作分布的熵,或者在动作上增加噪声)来获取数据,然后通过预先定义的优化目标函数从数据中学习分层结构;然而能否发现分层结构以及发现的分层结构的质量都依赖于智能体随机探索到的数据的质量和丰富度,这导致这类方法不能适用于较为复杂的环境。这是因为在复杂的环境上,智能体只通过随即探索很难获取丰富和优质的数据。
技术实现要素:6.为了解决上述技术问题,本发明提出一种基于因果关系驱动的分层强化学习框架,包括:因果关系发现模块,用于获取智能体的强化学习环境中,各环境变量之间的因果关系,并构建为因果关系图;子目标分层结构构造模块,用于根据该环境变量的变化函数,构建分层强化学习的子目标集合,选取该环境变量中的可控变量,通过该因果关系图从该子目标集合中选出与该可控变量关联的子目标为可达子目标,以所有该可达子目标的逻辑关系为该分层强化学习的分层关系;干预实验采样模块,用于改变该环境变量分布以获取该环境变量的干预数据,调用该因果关系发现模块通过该干预数据获取该环境变量之间新增的因果关系。
7.本发明所述的分层强化学习框架,其好该干预实验采样模块包括:第一采样子模块,用于采用均匀分布随机抽取方式获取该环境变量xi的值xi,以子目标g
evgs
(xi,f)驱使xi发生改变后的数据x'i为该干预数据;其中,f为该环境变量的变化函数;第二采样子模块,用于持续收集该智能体运行时的轨迹数据,以改变后的轨迹数据为该干预数据。
8.本发明所述的分层强化学习框架,该候选子目标的集合g
evgs
={(xi,f)|xi∈χ,f∈f
change
};其中,χ为环境变量集合,f
change
为环境变量xi的变化函数集合,f
change
={fi,fd},fi、fd为xi的指示函数,对于xi在t时刻的值x
i,t
和在t+1时刻的值x
i,t+1
,
[0009][0010][0011]
本发明还提出一种基于因果关系驱动的分层强化学习方法,包括:因果关系发现步骤,获取智能体的强化学习环境中各环境变量之间的因果关系,并构建为因果关系图;子目标分层结构构造步骤,根据该环境变量的变化函数,构建分层强化学习的子目标集合,选取该环境变量中的可控变量,通过该因果关系图从该子目标集合中选出与该可控变量关联的子目标为可达子目标,以所有该可达子目标的逻辑关系为该分层强化学习的分层关系;干预实验采样步骤,改变该环境变量分布以获取该环境变量的干预数据,通过该干预数据获取该环境变量之间新增的因果关系。
[0012]
本发明所述的分层强化学习方法,采用均匀分布随机抽取方式获取该环境变量xi的值xi,以子目标g
evgs
(xi,f)驱使xi发生改变后的数据x'i为该干预数据;或,持续收集该智能体运行时的轨迹数据,以改变后的轨迹数据为该干预数据;其中,f为该环境变量的变化函数。
[0013]
本发明所述的分层强化学习方法,该子目标的全集g
evgs
={(xi,f)|xi∈χ,f∈f
change
};其中,χ为环境变量集合,f
change
为环境变量xi的变化函数集合,f
change
={fi,fd},fi、fd为xi的指示函数,对于xi在t时刻的值x
i,t
和在t+1时刻的值x
i,t+1
,
[0014][0015][0016]
本发明还提出一种计算机可读存储介质,存储有计算机可执行指令,其特征在于,当该计算机可执行指令被执行时,实现如前所述的基于因果关系驱动的分层强化学习方法。
[0017]
本发明还提出一种数据处理装置,包括如前所述的计算机可读存储介质,当该数据处理装置的处理器调取并执行该计算机可读存储介质中的计算机可执行指令时,执行基于因果关系驱动的分层强化学习。
附图说明
[0018]
图1是本发明的基于因果关系驱动的分层强化学习框架结构示意图。
[0019]
图2是本发明的基于因果关系驱动的分层强化学习方法流程图。
[0020]
图3是本发明的数据处理装置示意图。
具体实施方式
[0021]
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进一步详细说明。应当理解,此处所描述的具体实施方法仅仅用以解释本发明,并不用于限定本发明。
[0022]
本发明的目的是为了解决现有分层强化学习在复杂环境中无法发现高质量的分层结构的问题,提出了因果关系驱动的范式并构建了因果关系驱动的分层强化学习框架。
[0023]
发明人在实际应用分层强化学习算法训练智能体(agent)时,发现分层算法的效果取决于子目标的质量,而现有算法很难在复杂环境中自动的发现高质量的子目标以及子目标之间的关系。而一个系统中的因果关系能够很好的抽象实体,状态,事件和过程之间的依赖关系,并且可以用来结构化的描述最终目标和子目标之间的关系。因此,本发明使用强化学习环境中变量间的因果关系来指导智能体自动的发现子目标和子目标的依赖关系——称之为因果关系驱动的范式——来替代随机性驱动的范式。这里的智能体指强化学习范式中发出动作与环境进行交互的主体。
[0024]
具体来说,本发明的基于因果关系驱动的分层强化学习框架中,一方面智能体利用因果发现的算法探索环境变量之间存在的因果关系;另一方面智能体利用探索到的因果关系构造子目标及子目标的依赖关系以学习子目标对应的策略,学习到的策略反过来能够对环境中的变量进行干预实验以提高因果发现的效率。这两个方面互相促进,因此克服了随机性驱动的范式在复杂环境难以发现高质量分层机构的问题。
[0025]
本发明通过因果关系转化子目标分层结构,对应发现环境变量的因果关系促进构造子目标分层结构和学习子目标策略的过程;在强化学习环境中,本发明利用子目标策略进行干预实验,使子目标策略提高进一步在环境中因果发现的效率的过程;此外,本发明构建以因果关系驱动的分层强化学习框架,将因果关系转化的子目标分层结构和子目标策略结合为迭代优化的分层强化学习框架。
[0026]
图1是本发明的基于因果关系驱动的分层强化学习框架结构示意图。如图1所示,本发明的分层强化学习框架包括:
[0027]
1、因果关系发现(causality discover)模块,发现环境变量的因果关系以促进构造子目标分层结构;
[0028]
因果关系发现模块中,首先给定强化学习环境m,包含n个环境变量[x
0~n-1
],通过已有因果发现算法和干预实验数据学习变量间的因果关系,并构成因果图(因果图是一种描述系统变量间因果关系的有向无环图数据结构,其中节点表示标量,有向边表述因果关系,有向边的源节点表示因变量,目的节点表示果变量)。例如,在图1中,环境变量(ev,enviorment variables)包括sp、io以及others(其他环境变量),通过因果关系发现模块,获取sp到io的因果关系,构成使用干预数据学习因果关系图c。这里借用了游戏环境minecraft(沙盒类电子游戏《我的世界》)的概念,sp(stonepickaxe,石斧)表示一种工具,io(ironore,铁矿石)表示一种可采集的材料,在本发明的实施例中代表环境中的两个变量,可从每一时刻的环境状态中获取到环境变量的值,这两个环境变量之间存在因果关系,sp是io的因变量。
[0029]
2、子目标分层结构构造(subgoals hierarchy construction)模块;
[0030]
定义整个子目标空间,为环境变量的增减,定义环境变量的变化函数集合f
change
={fi,fd},其与环境变量集合χ的笛卡尔积即为子目标空间evgs(environmentvariable-based goal space);其中:fi、fd为指示函数,fi表示对于任意一个环境变量xi在t时刻的值x
i,t
和t+1时刻的值x
i,t+1
,当x
i,t+1
大于x
i,t
,fi(x
i,t
,x
i,t+1
)=1,其他情况fi(x
i,t
,x
i,t+1
)=0,其物理意义是判断环境变量xi的值是否为增长(increase);fd表示对于任意一个环境变量
xi在t时刻的值x
i,t
和t+1时刻的值x
i,t+1
,当x
i,t+1
小于x
i,t
,fd(x
i,t
,x
i,t+1
)=1,其他情况fi(x
i,t
,x
i,t+1
)=0,其物理意义是判断环境变量xi的值是否减少(decrease);
[0031][0032][0033]gevgs
={xi,f)|xi∈χ,f∈f
change
};
[0034]gevgs
是子目标的全集,其中有一些子目标是不可达的,因为环境中存在一些智能体不可控制的变量。将环境变量分为可控变量和不可控变量,对应的子目标为可达子目标(agent在学习环境中可以通过可控变量完成的子目标)和不可达子目标(agent在学习环境中无法完成的子目标)。当以因果关系发现模块发现环境变量y(y∈xi)作为果变量,以环境变量[c
0~p
]([c
0~p
]∈xi)作为y的因变量的因果关系后,就可以将y作为可控变量,而与y相关联的子目标为可达子目标(因为agent只有能影响y才能发现其因果关系)。而y的因变量[c
0~p
]相关的子目标即为y的子目标的依赖子目标。如因果关系发现模块中sp相关的子目标为io的子目标的依赖子目标,因此构成了分层关系。
[0035]
接下来通过筛选的可达子目标及其依赖关系训练对应能达成子目标的策略。这里只训练中筛选的可达子目标,对于不可达子目标则舍弃。同时根据子目标之间的分层依赖关系构建每个子目标策略的动作空间。例如对于子目标xi的策略其动作空间a如下:
[0036]
a∈{(xi,f')|xi∈x
pa(i,c)
,f'∈f
change
}∪a
[0037]
其中包括了两个部分:xi的所有因变量xj(即在因果图c上xi的父节点集合)相关的子目标;智能体的原始动作空间a;
[0038]
通过子目标分层结构构造模块,获得满足分层强化学习的分层结构。
[0039]
3、干预实验采样(intervention sampling)模块,通过子目标策略提高进一步在环境中因果发现的效率,包括:当训练了对应子目标的策略后,如何利用这些策略进行干预实验(干预实验是干预数据以发现因果关系的过程,即控制系统中一些变量的分布,观测其他变量分布的变化来进行变量间因果关系的分析)来提升因果发现的效率。具体来说,对于可控变量,当学习了其对应子目标的策略后,即可通过设定对应的子目标驱使智能体改变这些变量的分布,以获取更多的干预实验数据,进而发现更多的因果关系。例如因果关系发现模块中,可以控制io的分布,以发现更多的以io为因变量的因果关系。
[0040]
具体对所有可控变量重复调用下述任一个子模块中进行干预实验以获取干预数据:
[0041]
子模块1,从均匀分布随机抽取可控变量xi的值xi,使用其相关的子目标(xi,f)驱使智能体将当前xi的值改变为xi;
[0042]
子模块2,收集智能体接下来的轨迹数据直到xi的值发生改变,这些轨迹数据即为xi的干预数据。
[0043]
通过上述三个模块相互促进,使得分层强化学习能够逐渐的发现高质量的分层结构。
[0044]
图2是本发明的基于因果关系驱动的分层强化学习方法流程图。如图2所示,本发明的基于因果关系驱动的分层强化学习方法包括:
[0045]
步骤s1,发现环境变量的因果关系;给定强化学习环境m,包含n个变量[x
0~n-1
],通过已有因果发现算法和干预实验数据学习变量间的因果关系,获取sp到io的因果关系,构成使用干预数据学习因果关系图c。
[0046]
步骤s2,学习子目标策略,进行子目标分层结构构造;定义整个子目标空间,为环境变量的增减,定义环境变量的变化函数集合f
change
={fi,fd},子目标空间evgs(environmentvariable-based goal space);其中:fi、fd为指示函数,fi表示对于任意一个环境变量xi在t时刻的值x
i,t
和t+1时刻的值x
i,t+1
,当x
i,t+1
大于x
i,t
,fi(x
i,t
,x
i,t+1
)=1,其他情况fi(x
i,t
,x
i,t+1
)=0,其物理意义是判断环境变量xi的值是否为增长(increase);fd表示对于任意一个环境变量xi在t时刻的值x
i,t
和t+1时刻的值x
i,t+1
,当x
i,t+1
小于x
i,t
,fd(x
i,t
,x
i,t+1
)=1,其他情况fi(x
i,t
,x
i,t+1
)=0,其物理意义是判断环境变量xi的值是否减少(decrease);
[0047][0048][0049]gevgs
是子目标的全集,g
evgs
={xi,f)|xi∈χ,f∈f
change
};其中有一些子目标是不可达的,因为环境中存在一些智能体不可控制的变量。将环境变量分为可控变量和不可控变量,对应的子目标为可达子目标和不可达子目标。当以步骤s1中发现环境变量y作为果变量,以环境变量[c
0~p
]作为y的因变量的因果关系后,就可以将y作为可控变量,而与y相关联的子目标为可达子目标(因为agent只有能影响y才能发现其因果关系)。而y的因变量[c
0~p
]相关的子目标即为y的子目标的依赖子目标。如因果关系发现模块中sp相关的子目标为io的子目标的依赖子目标,因此构成了分层关系。
[0050]
接下来通过筛选的可达子目标及其依赖关系训练对应能达成子目标的策略。这里只训练中筛选的可达子目标,对于不可达子目标则舍弃。同时根据子目标之间的分层依赖关系构建每个子目标策略的动作空间。例如,对于子目标xi的策略给出了基于当前环境状态s和子目标(xi,f)的动作分布。其动作空间a如下:
[0051]
a∈{(xj,f')|xj∈x
pa(i,c)
,f'∈f
change
}∪a
[0052]
其中包括了两个部分:{(xj,f')|xj∈x
pa(i,c)
,f'∈f
change
}表示xi的所有因变量xj相关的子目标,其中x
pa(i,c)
表示在给定因果关系图c上xi的父变量集合(,pa是parernt的简写);a表示智能体的原始动作空间。
[0053]
步骤s3,还可以通过子目标策略提高进一步在环境中因果发现的效率,采用干预实验采样,包括:当训练了对应子目标的策略后,如何利用这些策略进行干预实验(干预实验是干预数据以发现因果关系的过程,即控制系统中一些变量的分布,观测其他变量分布的变化来进行变量间因果关系的分析)来提升因果发现的效率。具体来说,对于可控变量,当学习了其对应子目标的策略后,即可通过设定对应的子目标驱使智能体改变这些变量的分布,以获取更多的干预实验数据,进而发现更多的因果关系;
[0054]
例如,通过下述两个步骤中的任一个步骤进行干预实验:
[0055]
步骤s31,从均匀分布随机抽取可控变量xi的值xi,使用其相关的子目标(xi,f)驱使智能体将当前xi的值改变为xi;
[0056]
步骤s32,收集智能体接下来的轨迹数据直到xi的值发生改变,这些轨迹数据即为xi的干预数据。
[0057]
图3是本发明的数据处理装置示意图。如图3所示,本发明实施例还提供一种计算机可读存储介质,以及一种数据处理装置。本发明的计算机可读存储介质存储有计算机可执行指令,计算机可执行指令被数据处理装置的处理器执行时,实现上述基于因果关系驱动的分层强化学习方法。本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件(例如处理器、fpga、asic等)完成,所述程序可以存储于可读存储介质中,如只读存储器、磁盘或光盘等。上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块可以采用硬件的形式实现,例如通过集成电路来实现其相应功能,也可以采用软件功能模块的形式实现,例如通过处理器执行存储于存储器中的程序/指令来实现其相应功能。本发明实施例不限制于任何特定形式的硬件和软件的结合。
[0058]
本发明的基于因果关系驱动的分层强化学习方法通过发现因果关系和发现分层结构两个过程相互促进,迭代提升的方式,克服了随机范式在复杂环境效率低下导致无法工作的问题,从而实现了在复杂环境下也能高效的自动化的发现高质量分层结构的分层强化学习框架;相比于传统分层强化学习算法中的分层结构发现方式,因果关系驱动的分层结构发现范式不仅能够发现子目标还能够发现子目标之间的依赖关系,从而大大提高了子目标策略的训练效率;因果关系驱动的分层结构发现范式发现的子目标及其依赖关系符合人类直觉的因果关系,从而提升了算法的可解释性。
[0059]
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变形,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
技术特征:1.一种基于因果关系驱动的分层强化学习框架,其特征在于,包括:因果关系发现模块,用于获取智能体的强化学习环境中,各环境变量之间的因果关系,并构建为因果关系图;子目标分层结构构造模块,用于根据该环境变量的变化函数,构建分层强化学习的子目标集合,选取该环境变量中的可控变量,通过该因果关系图从该子目标集合中选出与该可控变量关联的子目标为可达子目标,以所有该可达子目标的逻辑关系为该分层强化学习的分层关系。2.如权利要求1所述的分层强化学习框架,其特征在于,还包括:干预实验采样模块,用于改变该环境变量分布以获取该环境变量的干预数据,调用该因果关系发现模块通过该干预数据获取该环境变量之间新增的因果关系。3.如权利要求2所述的分层强化学习框架,其特征在于,该干预实验采样模块包括:第一采样子模块,用于采用均匀分布随机抽取方式获取该环境变量x
i
的值x
i
,以子目标g
evgs
(x
i
,f)驱使x
i
发生改变后的数据x'
i
为该干预数据;其中,f为该环境变量的变化函数;第二采样子模块,用于持续收集该智能体运行时的轨迹数据,以改变后的轨迹数据为该干预数据。4.如权利要求1所述的分层强化学习框架,其特征在于,该候选子目标的集合g
evgs
={(x
i
,f)|xi∈χ,f∈f
change
};其中,χ为环境变量集合,f
change
为环境变量x
i
的变化函数集合,f
change
={f
i
,f
d
},f
i
、f
d
为x
i
的指示函数,对于x
i
在t时刻的值x
i,t
和在t+1时刻的值x
i,t+1
,,5.一种基于因果关系驱动的分层强化学习方法,其特征在于,包括:因果关系发现步骤,获取智能体的强化学习环境中各环境变量之间的因果关系,并构建为因果关系图;子目标分层结构构造步骤,根据该环境变量的变化函数,构建分层强化学习的子目标集合,选取该环境变量中的可控变量,通过该因果关系图从该子目标集合中选出与该可控变量关联的子目标为可达子目标,以所有该可达子目标的逻辑关系为该分层强化学习的分层关系。6.如权利要求5所述的分层强化学习方法,其特征在于,还包括:干预实验采样步骤,改变该环境变量分布以获取该环境变量的干预数据,通过该干预数据获取该环境变量之间新增的因果关系。7.如权利要求6所述的分层强化学习方法,其特征在于,采用均匀分布随机抽取方式获取该环境变量x
i
的值x
i
,以子目标g
evgs
(x
i
,f)驱使x
i
发生改变后的数据x'
i
为该干预数据;或,持续收集该智能体运行时的轨迹数据,以改变后的轨迹数据为该干预数据;其中,f为该环境变量的变化函数。8.如权利要求5所述的分层强化学习方法,其特征在于,该子目标的全集g
evgs
={(x
i
,f)
|xi∈χ,f∈f
change
};其中,χ为环境变量集合,f
change
为环境变量x
i
的变化函数集合,f
change
={f
i
,f
d
},f
i
、f
d
为x
i
的指示函数,对于x
i
在t时刻的值x
i,t
和在t+1时刻的值x
i,t+1
,,9.一种计算机可读存储介质,存储有计算机可执行指令,其特征在于,当该计算机可执行指令被执行时,实现如权利要求5~8任一项所述的基于因果关系驱动的分层强化学习方法。10.一种数据处理装置,包括如权利要求9所述的计算机可读存储介质,当该数据处理装置的处理器调取并执行该计算机可读存储介质中的计算机可执行指令时,执行基于因果关系驱动的分层强化学习。
技术总结本发明提出一种基于因果关系驱动的分层强化学习框架,包括:因果关系发现模块,用于获取智能体的强化学习环境中各环境变量之间的因果关系,并构建为因果关系图;子目标分层结构构造模块,用于根据该环境变量的变化函数,构建分层强化学习的子目标集合,选取该环境变量中的可控变量,通过该因果关系图从该子目标集合中选出与该可控变量关联的子目标为可达子目标,以所有该可达子目标的逻辑关系为该分层强化学习的分层关系。还提出一种基于因果关系驱动的分层强化学习方法,以及一种数据处理装置。装置。装置。
技术研发人员:胡杏 彭少辉 张蕊 郭家明 易琦 张曦珊 杜子东 郭崎 陈天石
受保护的技术使用者:中国科学院计算技术研究所
技术研发日:2022.06.20
技术公布日:2022/11/1