ICML18关于对手策略建模的文章:
主要顺一下思路:
其中Ei是agent i与其余n个agent对弈,sample出来条轨迹(obs和action对),然后将其中第一条轨迹进行上面一个f(x)映射函数的学习,学得一个映射,这个映射就是对对手的策略建模embedding,然后以这个embedding为基础,在第二条轨迹上进行模仿学习,即基于embedding的基础上在第二条轨迹上的obs和action对进行模仿学习,即最大化P(action | obs,embedding),下面的for循环主要是希望这个policy embedding能够尽可能区分自己的策略和其他人的策略。
以上就是学习策略表征,
下面说一下其中一个对手建模的实验:
实验的说明,主要关注的是怎么进行policy embedding的,因为一条轨迹包含多个action obs对,这里明确说明,是将整条轨迹所有的action obs都进过f然后加和去平均值。
该实验主要包括15个agent,已经预训练好的,其中5个用来train,5个用来test,5个用来val
然后重新训练一个新的基于对手建模的模型,基于对手建模主要包含两种主要形式,一种是onpolicy的对手建模,一种是off policy的对手建模
其中on policy的对手建模,每次使用该新模型前一次与对手博弈的轨迹,其中要注意的是这个f模型也是预训练的,并不再进行训练。
而off policy的对手建模。policy embedding是提前计算好的,不需要与新模型交互,只需要在5个train的对手中采样,对策略建模。
可以看到上图左侧的模型(基于on policy的),红色(全部结构)训练的时候没有什么区别,但是在测试的时候表现要好很多。
右侧的图片,展示出了off policy表现要好,作者给出的解释是,对手池中的模型可能和我们训练的模型存在较大的差异,无法正确的匹配我们新模型对弈时对手的策略,也就是无法很好地表征。