在 vanilla policy gradient (VPG) 中,一个重要的做法是,将奖励 reward 转换成回报 return。
从环境 env 中采样得到的是奖励,但为了实现策略 policy 的训练,需要将 reward 转换成 return 才行。
从 env 中采样得到:状态、动作、即时奖励。
用于 policy 的训练:状态、动作、回报。
回报 return(t) = reward(t) + discount*reward(t+1) + discount^2*reward(t+2) + ...
即对于状态 s 采取的动作 a 所得到的回报不仅和即时奖励 reward(t) 有关,而且还和以后所有步的奖励有关,只是往后的时间步往长,影响越小,因此使用折扣函数。
这种做法没有使用贝尔曼迭代。bbs://什么是贝尔曼迭代/
# We need to compute the empirical return for each time step along the # trajectory returns = [] return_so_far = 0 for t in range(len(rewards) - 1, -1, -1): # t from 99 to 0 & ... ...