十二、eTL-P:Evolutionary Multi-Agent Transfer Learning with Model-based Opponent Behavior Prediction
1、涉及的问题
这篇论文信息量很大,需要很多preliminaries 具体有:
1、什么是迁移学习(Transfer Learning),在RL、MARL的问题中TL是怎么起作用的?
2、什么是evolutionary algorithm?它是怎么和TL结合起来的?
3、什么是Memetic Multi Agent System?
4、什么是FALCON:fusion architecture for learning,cognition and navigation
论文中本身需要理解的一些问题有:
1、eTL framework
2、model-based opponent behavior prediction指什么?
3、Top-K selection是怎么一回事?
还有一些其他的问题需要领会,比如:
1、eTL和其他在RL问题中使用的TL方法相比有什么好处?解决了哪些问题?传统的TL在RL中会遇到哪些问题?
2、meme究竟是什么?在代码中要如何定义?
3、FALCON是怎么学习的?学的是什么?和神经网络相比有什么不同?可以用神经网络代替吗?
4、为什么要用model-based,有什么好处?这里的model-based behavior prediction和model-based RL是一回事吗?
5、这篇论文提出的eTL-P方法是针对什么情形?分别用哪些手段解决了哪些问题?用了什么环境来模拟?还存在什么问题?
2、TL & RL & MARL
首先TL的定义是:Ability of a system to recognize and apply knowledge and skills learned in previous domains/tasks to novel domains/tasks. 迁移学习需要关注三个问题:迁移什么?如何迁移?何时迁移?
在RL问题中data/sample efficiency非常重要,并且很多时候如果问题或者目标稍有变动之前学的东西就没用了,但是迁移学习的方法可以将source task中学到的“信息”迁移给target task,这样就可以更好地利用之前在相关问题中学到的“信息”。
迁移的方法也有很多,比如:instance transfer、action-value transfer、feature transfer、advice exchanging ……
在《Transferring Instances for Model-Based Reinforcement Learning》一文中就提出了:Transferring Instances for Model-Based REinforcement Learning (TIMBREL) 。该方法试图把在“2D Mountain Car”学到的信息迁移给“3D Mountain Car”。迁移的对象是 observed instance from source task: ( s , a , r , s ′ ) (s,a,r,s^{\prime}) (s,a,r,s′) 该instancemia描述的是agent在source task中通过与环境交互而获得的experience。和action-value transfer相比,instance transfer的优势在于它只关注agent与环境交互而产生的experience而不受RL algorithm的影响。它的算法如下:
可以看到,对于“何时迁移”这个问题,TIMBREL算法是在target task的data不足以评估(x,a)时进行迁移,至于“怎么迁移”它采用的时inter-task mapping方法:
这就实现从source targe 到 target task之间的迁移。
但是在MARL问题中,信息的迁移主要是在agent之间。和RL不同的时MAS中的agent是在同一个环境下的有时还有相同的目标,但是问题在于我们并不能保证使用了TL就会得到更好的结果,所以需要在agent中判断哪些才是更合适的source tasks,哪些source tasks有值得transfer的信息。《An Evolutionary Transfer Reinforcement Learning Framework for Multiagent Systems》中采用的是:meme-inspired evolutionary transfer RL framework(eTL)
3、Memetic Science
我们知道,进化算法(evolutionary algorithm)包含一些分支,比如遗传算法(generic algorithm)、文化基因算法(memetic algorithm)。生物学中基因可以用来指导蛋白质的合成,meme的作用则是指导agent选择动作。有些场景下meme被定义为转移矩阵,在《An Evolutionary Transfer Reinforcement Learning Framework for Multiagent Systems》一文中meme被视为memory items或者说是agent所存储的信息,因此可以认为meme就是agent所学知识的“building blocks”是每个agent的mind universe 中的信息,无法被其他agent直接获得,说白了,meme其实就是FALCON的categories field中的Node。而这个“meme”也正是这篇paper中用来transfer的对象。
4、eTL & FALCON
首先eTL的结构如下:
这张图的信息量比较大,首先看单个agent,它的self-learning是基于FALCON的。所以应该首先搞明白FALCON是在干什么。
FALCON同时学习多层的input,通过联系states,actions来调节action从而获得更好的reward,即激活获得正收益的action,抑制获得负收益的action。学习获得的memo type就存储在 F 2 F_2 F2 层。
第一步:FALCON meme expression,它有三个部分:meme activation、meme competition、sociotype readout
meme activation:
T
j
=
∑
k
=
1
3
γ
c
k
∣
x
c
k
∧
w
j
c
k
∣
α
c
k
+
∣
w
j
c
k
∣
(
p
∧
q
)
i
≡
m
i
n
(
p
i
,
q
i
)
∣
p
∣
≡
∑
i
p
i
\begin{aligned}&T_{j}=\sum_{k=1}^{3} \gamma^{c k} \frac{\left|\mathbf{x}^{c k} \wedge \mathbf{w}_{j}^{c k}\right|}{\alpha^{c k}+\left|\mathbf{w}_{j}^{c k}\right|}\\ \\&(\mathbf{p} \wedge \mathbf{q})_{i} \equiv min(p_i, q_i)\\ \\&|\mathbf{p}| \equiv \sum_{i} p_{i}\end{aligned}
Tj=k=1∑3γckαck+∣∣wjck∣∣∣∣xck∧wjck∣∣(p∧q)i≡min(pi,qi)∣p∣≡i∑pi
meme competition:
T
J
=
max
{
T
j
:
for all
F
2
node
j
}
\begin{aligned}T_{J}=\max \left\{T_{j}: \text { for all } F_{2} \text { node } j\right\}\end{aligned}
TJ=max{Tj: for all F2 node j}
这两步就是在选出最接近输入向量的权重矩阵,然后进行sociotype readout:
x
c
k
(
new
)
=
x
c
k
(
old
)
∧
w
J
c
k
\begin{aligned}\mathbf{x}^{c k(\text { new })}=\mathbf{x}^{c k(\text { old })} \wedge \mathbf{w}_{J}^{c k}\end{aligned}
xck( new )=xck( old )∧wJck
即,在选出了最接近输入向量的权重矩阵后,将它输入到对应的field,相当于一步更新。
第二步:FALCON meme assimilation,它有两个部分:memotype matching、memotype learning
memotype matching:
m
J
c
k
=
∣
x
c
k
∧
w
J
c
k
∣
∣
x
c
k
∣
≥
ρ
c
k
m_{J}^{c k}=\frac{\left|\mathbf{x}^{c k} \wedge \mathbf{w}_{J}^{c k}\right|}{\left|\mathbf{x}^{c k}\right|} \geq \rho^{c k}
mJck=∣xck∣∣∣xck∧wJck∣∣≥ρck
这一步是为了检验之前选出来的权重矩阵和输入向量是否足够相似,如果满足这个阈值条件就把当前的输入向量归到这一类,然后更新相应的权重:
w
J
c
k
(
n
e
w
)
=
(
1
−
β
c
k
)
w
J
c
k
(
o
l
d
)
+
β
c
k
(
x
c
k
∧
w
J
c
k
(
o
l
d
)
)
,
β
c
k
∈
[
0
,
1
]
\begin{aligned}\mathbf{w}_{J}^{c k(\mathrm{new})}=\left(1-\beta^{c k}\right) \mathbf{w}_{J}^{c k(\mathrm{old})}+\beta^{c k}\left(\mathbf{x}^{c k} \wedge \mathbf{w}_{J}^{c k(\mathrm{old})}\right),\ \beta^{c k} \in[0,1]\end{aligned}
wJck(new)=(1−βck)wJck(old)+βck(xck∧wJck(old)), βck∈[0,1]
这样一来如果之后碰到了相似的输入就会得到更大的相似度,形成良性循环。如果不满足该匹配条件,就放松一点标准,让
ρ
\rho
ρ 小一点,然后重新进行meme competition,选择出下一个node
J
J
J ,如果所有的node都不满足就说明这是一个新的类别,需要创建一个新的node,因此这是一种 online 的 self-learning、gradient-free 方法,它可以接收一个输入就立马进行学习而不像神经网络那样要先把一批样本放到网络中,计算损失函数的梯度,然后反向传播更新权重。
由于《Evolutionary Multi-Agent Transfer Learning with Model-based Opponent Behavior Prediction》采用的是FALCON agent所以上图和下面的算法中有关BP agent的部分可以忽略。
了解完了FALCON的相关内容,我们基于要看看evolution是怎么进行的,transfer是怎么实现的。
Evolution分为两个部分:internal evolution、external evolution
首先是internal evolution,它的算法伪代码如下:
其中第7行的action selection采用的是
ϵ
−
g
r
e
e
d
y
p
o
l
i
c
y
\epsilon-greedy \ policy
ϵ−greedy policy ,并且在estimate这一步采用了TD方法:
Q
(
new
)
(
s
,
a
)
←
Q
(
s
,
a
)
+
ϑ
δ
(
1
−
Q
(
s
,
a
)
)
,
ϑ
∈
[
0
,
1
]
δ
=
r
+
γ
max
a
′
Q
(
s
′
,
a
′
)
−
Q
(
s
,
a
)
,
ϑ
∈
[
0
,
1
]
\begin{aligned}&Q^{(\text {new })}(s, a) \leftarrow Q(s, a)+\vartheta \delta(1-Q(s, a)),\ \vartheta \in[0,1]\\&\delta=r+\gamma \max _{a^{\prime}} Q\left(s^{\prime}, a^{\prime}\right)-Q(s, a), \ \vartheta \in[0,1]\end{aligned}
Q(new )(s,a)←Q(s,a)+ϑδ(1−Q(s,a)), ϑ∈[0,1]δ=r+γa′maxQ(s′,a′)−Q(s,a), ϑ∈[0,1]
其中
[
1
−
Q
(
s
,
a
)
]
[1-Q(s, a)]
[1−Q(s,a)] 使得 Q-value 能始终是0到1之间的数,因为FALCON要求所有输入必须是0到1的数。此时,
R
=
(
Q
(
new
)
(
s
,
a
)
,
1
−
Q
(
new
)
(
s
,
a
)
)
\mathbf{R}=\left(Q^{(\text {new })}(s, a), 1-Q^{(\text {new })}(s, a)\right)
R=(Q(new )(s,a),1−Q(new )(s,a))
接下来是 meme external evolution,它有三个部分:meme selection、meme transmission、meme variation
首先是meme selection:
其中:
{
E
l
(
agt
(
v
)
)
=
Fitness
(
agt
(
v
)
)
/
Fitness
best
S
i
(
agt
(
v
)
)
=
max
{
Q
(
s
,
A
)
}
/
Q
best
\begin{aligned}\left\{\begin{array}{l}\mathrm{El}(\operatorname{agt}(v))=\text { Fitness }(\operatorname{agt}(v)) / \text { Fitness }_{\text {best }} \\\mathrm{Si}(\operatorname{agt}(v))=\max \{Q(s, \mathbf{A})\} / Q_{\text {best }}\end{array}\right.\\\end{aligned}
{El(agt(v))= Fitness (agt(v))/ Fitness best Si(agt(v))=max{Q(s,A)}/Qbest
B = { agt ( v ) ∈ P ∣ ( E l ( agt ( v ) ≥ E l ( agt ( c ) ) ) & S i ( agt ( v ) ) ≥ S i ( agt ( c ) ) } \begin{array}{c}B=\{\operatorname{agt}(v) \in P |(\mathrm{El}(\operatorname{agt}(v) \geq \mathrm{El}(\operatorname{agt}(c)))\& \mathrm{Si}(\operatorname{agt}(v)) \geq \mathrm{Si}(\operatorname{agt}(c))\}\end{array} B={agt(v)∈P∣(El(agt(v)≥El(agt(c)))&Si(agt(v))≥Si(agt(c))}
Sc ( agt ( v ) ) = El ( agt ( v ) ) × Si ( agt ( v ) ) \begin{aligned}\operatorname{Sc}(\operatorname{agt}(v))=\operatorname{El}(\operatorname{agt}(v)) \times \operatorname{Si}(\operatorname{agt}(v))\end{aligned} Sc(agt(v))=El(agt(v))×Si(agt(v))
meme external evolution描述的是当meme被transfer了之后agent之间通过模仿进行的“social interaction”。而external evolution只在当前的agent通过meme selection找到了一个合适的teacher agent之后才会进行。常用的一种选择方式是:imitate-from-elitist然后使用advice exchange。但是这个方法也存在一些问题,比如blind reliance,因为teacher agent的advice中并不包含agent之间有关依赖关系的信息,并且最好的teacher agent未必有最好的performance,因为不同的agent是memtically unique的。所以agent还要向在相似情形下与自己有相似经验的agent学习,即“like-attracts-like“将这两者结合就是《An Evolutionary Transfer Reinforcement Learning Framework for Multiagent Systems》中提出的方法,该方法既考虑了elitist的过去的成功经验,又考虑了agent对解决特定情形的信心即”similarity“,由于elitist尽管比其他的partner agent有更好的performance但是却不一定是最合适的尤其是在面对一个从未见过的情况的时候,但是similarity方法会通过对过去相似情况进行feature reward prediction来精简需要学习的elitist
接下来是meme external transmission:
首先输入当前的状态和动作集,获取当前的agent,将它的状态传给teacher agent,然后估计Q-value,再用 ϵ − g r e e d y p o l i c y \epsilon -greedy \ policy ϵ−greedy policy 选择动作,进行meme variation,从第7行开始就接上了algorithm1 :meme internal evolution
第6行的meme variation的作用是给meme transmission一些内在的创新驱动,说白了就是为了避免blind reliance,即总是认为elitist的knowledge是最好的,它的具体做法是:
Q
t
=
λ
×
Rand
+
(
1
−
λ
)
×
Q
,
λ
∈
[
0
,
1
]
,
R
a
n
d
∈
[
0
,
1
]
,
v
∈
[
0
,
1
]
\begin{aligned}Q^{t}=\lambda \times \operatorname{Rand}+(1-\lambda) \times Q, \ \lambda \in[0,1], \ Rand \in[0,1], \ v \in[0,1]\end{aligned}
Qt=λ×Rand+(1−λ)×Q, λ∈[0,1], Rand∈[0,1], v∈[0,1]
其中,
v
v
v 用来控制meme variation的频率。
至此,eTL framework我们已经基本了解了,如下:
5、eTL-P
前面我们已经了解了eTL,一种用于多智能体系统的迁移学习方法,但是很多时候不同的只能由不同的目标甚至是相互竞争的关系,这将使得问题变得更加复杂,但是如果subject agent能够知道它的对手的策略问题就容易解决了。为了预测opponent agent的行为,我们需要对opponent agent 决策出action的过程建模。由于opponent agent的模型通常不一定足够可靠,所以通常训练出多个模型然后从中选出一部分,在《Evolutionary Multi-Agent Transfer Learning with Model-based Opponent Behavior Prediction》一文中采用的是Top-K selection方法。opponent 的备选model通常也是FALCON model,用opponent agent的instance <S, A, R>训练得到的。
和eTL相比,eTL-P的internal evolution变成了model-based behavior prediction,其中model是经过Top-K筛选的,external evolution变成了multi-agent transfer learning,整体上framework并没有大的改动。下面来看一看算法:
到第5步为止都是在训练candidate models,第12行是判断是否发现了opponent agent,这里和文中使用的环境mind field有关,每个agent都带有一个sensor,可以探测到opponent agent。然后是根据
ϵ
−
g
r
e
e
d
y
p
o
l
i
c
y
\epsilon -greedy \ policy
ϵ−greedy policy 选择model。选出了model之后,利用该model对动作集中的每个动作分别来预测subject agent的虚拟状态,再利用这个虚拟状态来预测opponent agent的动作,即第19行,这是很关键的一行。最后根据opponent的动作就可以预测出opponent agent的状态,根据第21行,如果预测的opponent agent的状态和动作”fail interaction“我猜测这里的意思是没有带来正的reward,就步采用这个动作,最终可以选出带来最高收益的action。
c
o
n
f
(
m
S
)
con f(m_S)
conf(mS) 的更新方式如下:
{
conf
(
m
s
)
=
conf
(
m
s
)
+
Reward, if succeeds
conf
(
m
s
)
=
con
f
(
m
s
)
−
Penalty, if fails
\left\{\begin{array}{l}\operatorname{conf}\left(m_{s}\right)=\operatorname{conf}\left(m_{s}\right)+\text { Reward, if succeeds } \\\operatorname{conf}\left(m_{s}\right)=\operatorname{con} f\left(m_{s}\right)-\text { Penalty, if fails }\end{array}\right.
{conf(ms)=conf(ms)+ Reward, if succeeds conf(ms)=conf(ms)− Penalty, if fails
即,如果成功的预测出了opponent agent的行为就增加对这个model 的confidence
我们注意到,上述算法把所有训练出来的备选agent都用上了,这个计算量将会非常大,而Top-K selection可以解决这个问题。
6、Top-K selection
Top-K selection实际上是一个优化问题:
M
K
∗
∈
argmax
M
K
⊆
M
F
(
M
K
)
subject to
:
∑
m
i
∈
M
K
c
m
i
≤
K
\begin{aligned}M^{K^{*}} \in \underset{M^{K} \subseteq M}{\operatorname{argmax}} \mathcal{F}\left(M^{K}\right) \text { subject to }: \sum_{m_{i} \in M^{K}} c_{m_{i}} \leq K\end{aligned}
MK∗∈MK⊆MargmaxF(MK) subject to :mi∈MK∑cmi≤K
在众多备选model中选出最好的 k 个,
c
m
c_m
cm 是选择model "m"的cost,我们要让这k个model的总cost小于K。
F
\mathcal F
F 是用来衡量
M
K
M^K
MK 的函数。具体如下:
m
a
x
M
K
⊆
M
,
∣
M
K
∣
=
K
,
F
(
M
K
)
=
∑
i
=
1
K
σ
(
P
i
∩
M
K
)
\begin{aligned}m a x_{M^{K} \subseteq M,\left|M^{K}\right|=K}, \mathcal{F}\left(M^{K}\right)=\sum_{i=1}^{K} \sqrt{\sigma\left(P_{i} \cap M^{K}\right)}\end{aligned}
maxMK⊆M,∣MK∣=K,F(MK)=i=1∑Kσ(Pi∩MK)
σ ( P i ∩ M K ) \sigma\left(P_{i} \cap M^{K}\right) σ(Pi∩MK) 是所选模型对整个模型空间的覆盖率。因为我们的目标是选出K个最好的model,在 F \mathcal F F 满足submodularity(子模函数) 和 monotonictiy(单调性)的时候就可以用贪婪策略来选择model了,所以接下来的任务就是要证明 F \mathcal F F 确实满足上述两个条件。详细的证明过程见论文,都比较清楚。
满足了上述条件,Top-K selection的算法如下:
在algorithm 2的第7步之前使用algorithm 3就可以减少计算量。
7、multi-agent transfer learning
上面的eTL-P framework中不同的agent之间还有multi-agent transfer learning ,这个过程也可以减小备选model的复杂度,通过和备选model共享预测信息,subject agent就不需要每个model都训练了,并且它们的预测能力也有所提高
和meme transmission比较一下:
不同的是,multi-agent transfer learning需要判断是否是opponent agent,然后进行behavior prediction。至此,我们已经可以明白,只要把algorithm:learning with behavior prediction 和 algorithm:Top-K selection融合到algorithm:multi-agent transfer learning就是eTL-P的全部内容。