强化学习的数学原理-04值迭代与策略迭代

Value iteration algorithm

image.png

vk+1=f(vk)=maxπ(rπ+γPπvk),k=1,2,3,...

算法可以被分为两步去做:

Step1:policyupdate

πk+1=argmaxπ(rπ+γPπ)vk,wherevkisgiven

Step2:valueupdate

vk+1=rπk+1+γPπk+1vk

Q:vk是否是一个statevalueA:不是的

Matrix-vector form对于理论分析通常是有用的

Elementwise form对于具体实现是有用的

Step1:policyupdate

Theeleementwiseformofπk+1(s)=argmaxπ(rπ+γPπvk)is

πk+1(s)=argmaxπaπ(as)(rp(rs,a)r+γsp(ss,a)vs),sS

对应的最优策略应该是:qk(s,a)最大的action

πk+1(as)={1,if a=ak(s)0,if aak(s),whereak=argmaxaqk(s,a)

πk+1是一个贪心的策略,因为他只是单纯地寻找最大的qvalue

Step2:valueupdate

因为πk+1是贪心的,上面的等式就变为

vk+1(s)=maxaqk(s,a)

也就是说statevalue就是actionvalue最大的那个action对应的

image.png

Policy iteration algorithm

给一个随机初始化的策略π0

​ 第一步进行:策略评估(PE, policy evaluation)

vπk:=:rπk+γPπkvπk

​ 根据贝尔曼方程可以计算出vπk

​ 第二步进行:策略改进(PI,policy improvement)

πk+1;=;argmaxπ(rπ+γPπvπk)

具体实现需要看elementwiseform

image.png

Truncated policy iteration algorithm

是上面valueiterationpolicyiteration算法的推广

对比一下valueiterationpolicyiteration

image.png

1730086595111.png

valueiterationpolicyiteration主要的区别在Value更新的那一步

1730086687465.png

valueiteration在计算了一步之后就用v1去更新策略了,而policyiteration是在计算了无穷步之后用收敛的vπ1去更新的vπ

而实际中我们是不可能去计算无穷步的,我们之后计算算有限步,当error很小的时候就停止更新,这就是Truncatedpolicyiterationalgorithm

1730087062036.png

posted @   cxy8  阅读(69)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
历史上的今天:
2023-10-28 1
2023-10-28 微机原理与接口技术中断实验
2023-10-28 微机原理与接口技术-第八章常用接口技术
点击右上角即可分享
微信分享提示