发表时间:2021(ICML 2021)
文章要点:文章把MCTS扩展到带随机状态转移和部分可观测下。主要做法就是用VQ-VAE(参看Neural Discrete Representation Learning)自编码器来捕获一个动作可能造成的不同状态转移,然后和之前一样planning。具体来说,之前的muzero(参看Mastering atari, go, chess and shogi by planning with a learned model)的MCTS先是用一个representation function把状态转到压缩空间h,然后用f来预测动作概率π和价值v。做了动作a以后用dynamics function g来转移到下一个h。这篇文章的思路就是,除了h之外,还有一个机会节点c,这个节点也会有另一个f来预测动作概率τ和对应的价值v,VQ-VAE就在这个地方派上用场,输出一个机会节点的动作k,这个k也用在g上用来真正决定下一个状态长啥样。也就是说,状态转移除了之前的策略π做的动作a外,先会转到一个机会节点,机会节点会做一个动作k,然后经过这个动作k之后,才会真正转移到下一个状态。这样做的好处就是给planning增加了随机性。之前在\(s_t\)的时候,一个动作只能对应唯一的一个\(s_(t+1)\)。现在一个动作可以对应多个\(s_(t+1)\)了,具体的方式就是这个动作做完之后先到一个机会节点c,然后c会选动作k,不同的k就会得到不同的状态\(s_(t+1)\)。
关于训练,和muzero类似,就多了一个拟合τ的loss
另外,美中不足的是整个训练不是端到端的,VQ-VAE要先训练,然后再训MCTS相关的网络。
总结:这篇文章很有意思,可以多看看。如果work的话,个人感觉是planning方法向前的一大步。虽然文章中没有说加入机会节点这个概念,但是看流程图的话,我感觉就是这个意思。如果哪天能做到端到端的训练,感觉planning这条路就算是走通了,以后只要堆算力,就能解决所有问题了。
疑问:文章还说,可以对动作和时间做抽象,不用在每个时间步做planning,具体咋做的还没看出来。难道是多个动作a后面加一个动作k?感觉不是很靠谱。文章还有几个实验的设定也不是很清楚,比如worst case和neutral scenario到底指的啥?
Vector Quantized Models for Planning
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
tensorflow layers Dense build vector 例子 tensorflow.keras.models
将训练的模型进行保存,或者利用已保存的模型给新模型“赋值”。本文参考Tensorflow官方文档之保存和恢复模型,对官方文档给出的代码进行了实践,并将我的理解加到了注释之中,希望能帮到有需要的人。代码分成几个部分讲解:1、导入必要的模块和加载数据集Tensorflow官方文档依旧使用mnist数据集来进行新手教学,和mnist手写数字识别项目不同的是,此处只使用1000条数据以加快速度,毕竟我们的
Tensorflow Keras checkpoint 保存模型 h5