我正在尝试将强化学习应用于代理与使用循环网络的连续数字输出交互的问题。基本上,这是一个控制问题,其中两个输出控制代理的行为方式。
我使用输出控制值将策略定义为具有(1-eps)时间的epsilon greedy,使用输出值+/-小高斯扰动将时间的eps定义为eps。 在这个意义上,代理人可以探索。 在大多数强化文献中,我看到政策学习需要离散动作,可以通过REINFORCE(Williams 1992)算法学习,但我不确定在这里使用什么方法。
目前,我所做的是使用屏蔽仅使用基于Metropolis Hastings的算法来学习最佳选择,以确定转换是否适用于最优策略。伪代码:
input: rewards, timeIndices
// rewards in (0,1) and optimal is 1
// relate rewards to likelihood via L(r) = exp(-|r - 1|/std)
// r <= 1 => |r - 1| = 1 - r
timeMask = zeros(timeIndices.length)
neglogLi = (1 - mean(rewards)) / std
// Go through random order of reward to approximate Markov process
for r,idx in shuffle(rewards, timeIndices):
neglogLj = (1 - r)/std
if neglogLj < neglogLi || log(random.uniform()) < neglogLi - neglogLj:
// Accept transition, i.e. learn this action
targetMask[idx] = 1
neglogLi = neglogLj
这为targetMask
提供了一些用于使用标准backprop学习的操作。
有人可以告诉我正确或更好的方法吗?
答案 0 :(得分:1)
政策梯度方法有助于学习连续控制输出。如果你看一下http://rll.berkeley.edu/deeprlcourse/#lectures,2月13日的讲座以及3月8日到3月15日的讲座可能对你有用。那里还包括了演员评论方法。