值和策略迭代算法
1 值迭代算法(value iteration algorithm)
根据贝尔曼最优公式就能得出最优的 state value 和最优的 policy。
1.1 策略更新(policy update)
为了得出最优的策略通过
πk+1=πargmax(rπ+γPπvk)(matrix form)
或者
πk+1=πargmaxa∑π(a∣s)qk(s,a)[r∑p(r∣s,a)r+γs′∑p(s′∣s,a)vk(s′)](elementwise form)
即
πk+1(a∣s)=⎩⎪⎨⎪⎧1,0,a=ak∗=aargmaxqk(s,a)a=ak∗
1.2 值更新(value update)
vk+1=rπk+1+γPπk+1vk(matrix form)
或者
vk+1=a∑π(a∣s)qk(s,a)[r∑p(r∣s,a)r+γs′∑p(s′∣s,a)vk(s′)](elementwise form)
由于π(a∣s)=1,而且是在a=ak∗=aargmaxqk(s,a)取得。可以简化成vk+1=maxqk(s,a)。
1.3 整体步骤
初始条件:p(s′∣s,a),p(r∣s,a),γ,以及随机初始化的v0。
迭代过程:vk→qk→πk+1→vk+1
终止条件:∥vk+1−vk∥<ϵ
2 策略迭代算法(policy iteration algorithm)
2.1 策略评估(policy evaluation)
通过贝尔曼公式的迭代解求出当前策略下最优的 state value。该步骤是需要不断迭代的。
vπk(j+1)=rπk+γPπkvπk(j)(matrix form)
或者
vπk(j+1)=a∑π(a∣s)qπk(j)(s,a)[r∑p(r∣s,a)r+γs′∑p(s′∣s,a)vπk(j)(s′)](elementwise form)
现实中往往无法无线迭代,所以当∥vπk(j+1)−vπk+1(j)∥<ϵ停止迭代。
2.2 策略优化(policy improvement)
ππk+1=πargmax(rπ+γPπvπk)(matrix form)
或者
ππk+1=πargmaxa∑π(a∣s)qπk(s,a)[r∑p(r∣s,a)r+γs′∑p(s′∣s,a)vπk(s′)](elementwise form)
即
πk+1(a∣s)=⎩⎪⎨⎪⎧1,0,a=aπk∗=aargmaxqπk(s,a)a=aπk∗
2.3 整体步骤
初始条件:p(s′∣s,a),p(r∣s,a),γ,以及随机初始化的π0,vπ0(0)。
迭代过程:vπk(∞)→πk+1→vπk+1(∞)
终止条件:∥vπk(∞)−vπk+1(∞)∥<ϵ
3 中断策略迭代(truncated policy iteration)
观察 policy iteration 发现,在 policy evaluation 过程中无法取得vπk(∞),而当每次的迭代次数都设置为固定值jtruncated,称为 truncated policy iteration。而 value iteration 和 policy iteration 算法分别是该算法jtruncated=1和jtruncated=∞的特殊情况。