代码改变世界

强化学习 值函数

2018-05-17 10:39  xplorerthik  阅读(797)  评论(0编辑  收藏  举报

Gt = Rt +  gamma * Rt+1  +  gamma^2 *Rt+2 , 对未来要加一个折现率, 未来预测值是有风险的,保守起见最好加个折扣。

状态St =s 的值为:

V(s) = E(Gt|St=s) , where Gt = Rt +  gamma * Rt+1  +  gamma^2 *Rt+2 + …

状态St=s,At=a时的值为:

Q(s,a) = E(Gt|St=s, At=a), where Gt = Rt +  gamma * Rt+1  +  gamma^2 *Rt+2 + …

 

on-policy TD算法:先从Q中(e-greedy)产生一个 S‘,A’, 刚开始可能是随机的。后边根据S,A的分布占比来生成一个新状态s’,a‘.利用更新

Q(S,A) = Q(S,A) + alpha* [R + gamma* Q(S’,A’) - Q(S,A)].利用策略生成的状态,动作,去更新新的Q值。 

 


off-policy TD算法:先在Q中(e-greedy)从S随机产生一个A,王更新

Q-learning中, 在生成情节中, 状态S和A是随机产生的, 而在网络更新中, 下一个状态选用了最优的A对应的状态S‘去更新。

 Q(S,A) = Q(S,A) + alpha* [R + gamma* maxQ(S‘,a) - Q(S,A)].