本文的目标是从raw image data中学习到predictive policy。predictive policy是指根据当前的input一次性输出之后一段时间内的action,而普通意义上的policy(文章里说是reactive types of controller)在每一个时刻都重新输出一个action。predictive policy的优势在于执行更快,不会受sensor delay的影响(给出action后,要等待sensor的输入来计算下一个action)。predictive 和 reactive policy的区别有点像open-loop 和 close-loop control的区别。
可想而知,predictive policy会比reactive policy更难训练,因为一次要给出一串action。本文设计了三个模块:perception, policy 和 behavior super-layers.
perception super-layer 借鉴了[1]的方法,运用一个spatial autoencoder将图像编码到几个关键点坐标。
behavior super-layer 使用了一个VAE,用blind action policy生成的trajectory 训练(就是随机policy...)。
上面两部分先各自训练好,最后训练policy super-layer。方法就是拿perception的encoder对图片编码作为输入的state,然后输出一个和behavior super-layer的latent space维度相同的分布,从中采样再用behavior super-layer的decoder解码得到action sequence,与环境交互得到reward,然后就可以用各种model-free的方法训练policy了。
最核心的idea在于用两个autoencoder分别把输入和输出都变成低维数据,然后policy的训练就会更加data-efficiency
疑问在于,那个behavior super-layer真的靠谱吗...decoder出来的难道不会总是生成一些随机的action sequence?这样的policy都能训得好,感觉有点神奇