-
review
critic: 评价一个policy的好坏
状态价值函数state-value function V π ( s ) V^{\pi}(s) Vπ(s): 使用policy π \pi π, 从state s开始,到结束的expected cumulated reward -
how to estimate V V V
· 蒙特卡洛
· temporal difference(TD): 有的episodes太长,用MC方法太久
V π ( s t ) = V π ( s t + 1 ) + r t V^{\pi}(s_t) = V^{\pi}(s_{t+1}) + r_t Vπ(st)=Vπ(st+1)+rt
两种方法对比:
· MC的一个问题是方差太大,因为游戏本身具有随机性,var(kx) = k^2var(x); TD方差小,但是准确度无法保证
· 下面这个例子用mc和td的方法计算出来的结果是不一样的
-
另一种Critic: Q function
state-action value function Q π ( s , a ) Q^{\pi}(s,a) Qπ(s,a): 使用policy π \pi π, 在state s强制使用action a(后续的action是不强制的), 得到的cumulated reward;
所以,critic不止可以用来评估policy的好坏,还可以用来决策使用哪个action、找到更好的policy。
Q 和 V 的关系: V π ( s ) V^{\pi}(s) Vπ(s) = Q π ( s , π ( s ) ) Q^{\pi}(s,\pi(s)) Qπ(s,π(s)) -
Q-Learning
通过 Q π ( s , a ) Q^{\pi}(s,a) Qπ(s,a),找到一个更好的 π ′ \pi' π′。更好的定义是,对于所有的state, V π ′ ( s ) V^{\pi'}(s) Vπ′(s) >= V π ( s ) V^{\pi}(s) Vπ(s)
π ′ ( s ) = a r g m a x a Q π ( s , a ) \pi'(s) = argmax_aQ^{\pi}(s,a) π′(s)=argmaxaQπ(s,a)
找到Q最大的action, π ′ \pi' π′就是会采取action a的policy, π ′ \pi' π′不取决于额外的参数,只取决于Q-function,但不适用于a是连续值。
证明过程: -
target network
在使用TD的方法训练Q的时候,由于有两套参数需要update, 会导致训练不稳定,所以一般采取先freeze t+1部分的网络,只训练t部分的,参数更新多次之后再去update另一边。
-
exploration
a
=
a
r
g
m
a
x
a
Q
π
(
s
,
a
)
a = argmax_aQ^{\pi}(s,a)
a=argmaxaQπ(s,a) ,用这样的方法选择action不是最好的方法。因为如果有的action没有尝试过的话,无法进行一个准确的估计。(类似bandit里面那个EE)
解法:
· epsilon greedy:加入epsilon的概率去采取随机action
· boltzmann exploration: 根据q value的概率分布去选