其他分享
首页 > 其他分享> > TREEQN AND ATREEC: DIFFERENTIABLE TREE-STRUCTURED MODELS FOR DEEP REINFORCEMENT LEARNING

TREEQN AND ATREEC: DIFFERENTIABLE TREE-STRUCTURED MODELS FOR DEEP REINFORCEMENT LEARNING

作者:互联网


发表时间:2018(ICLR 2018)
文章要点:这篇文章设计了特别的网络结构,将树结构嵌入到神经网络中,实现了look-ahead tree的online planning,将model free和online planning结合起来,并提出了TreeQN和ATreeC算法。并且这个树结构是可微的,这样可以和RL一起进行end-to-end的训练。
具体的,通常的DQN网络是长这样的

这篇文章的想法就是将\(z_t\)展开成树结构,往前推几步再估计\(Q\)。具体做法就是训练一个encoder function把真实环境的状态变成潜空间状态\(z_t\),transition function往前推,reward function预测reward,value function预测value,backup function来做树的backup。每次输入一个状态\(s_t\),encoder function转成\(z_t\),然后遍历所有动作,用transition function往前推\(k\)步,然后计算每条轨迹的value,通过backup计算出对应的每个动作的\(Q\)值。这样一来,网络的输入还是状态\(s_t\),输出还是对应的每个动作的\(Q\)值,其他所有的模型都在这个网络里面了,比如transition,value,backup。
然后里面这个\(Q\)和\(V\)用\(TD(\lambda)\)的方式计算

DQN的更新用n-step return计算

就相当于整个强化算法还是没变,只是网络结构里面嵌入了一个递归的结构来做树的planning。注意这里的n-step return的更新都用的环境返回的真实的值,也就是基于真实状态得来的,而上面的(3)(4)计算Q和V是解释的里面根据transition算出来的Q和V。当DQN的更新越来越准之后,树planning出来的Q和V就会和n-step return一样了,但是planning中间step计算的值不一定就准,因为这里面没有加这个约束。比如我的tree的planning的深度是3步,那么1步和2步的值不一样就一样,但是3步输出的Q就和真正环境的Q一样了。另外,为了使得中间step的值和状态和真实的一样,还可以加上reward的约束和state的约束,比如


不过作者的实验表示。Reward的约束有效果,state的约束没啥用。
另外对于ATREEC来说,就是最后在Q的基础上加个softmax变成一个policy策略

剩下的更新就和AC的更新没区别了。
总结:挺有意思的思路,可以无缝衔接到各种算法里面,效果也有一定提升,这种隐式的planning以及end-to-end的训练不需要做额外的改动,很简洁,如果以后在很多环境上都有不错的效果提升的话,应该会大规模应用的。目前看起来好像没有火起来,可能是因为学model不容易,而且planning的计算量也不小。
疑问:只做了浅层的展开,最多展开了3层,可能有一定效果,但是深了之后提升的效果就和浅层的区别不大了。这个是不是说提升的上限就到了?还是说model error的问题就显现出来了?

标签:function,transition,MODELS,ATREEC,STRUCTURED,value,step,planning,backup
来源: https://www.cnblogs.com/initial-h/p/16158110.html