强化学习-Chapter4-值迭代和策略迭代

值迭代

根据收缩函数的性质,可以得到贝尔曼最优方程的求解方式:

v_{k+1}=f(v_k)=\max_\pi(r_\pi+\gamma P_\pi v_k),\quad k=1,2,3\ldots

上式的v_0可以任意取值,最终可以成功找到最优的策略,这个算法称为值迭代。

值迭代可以分成两步:

步骤一:策略更新:\pi_{k+1}=\arg\max_\pi(r_\pi+\gamma P_\pi v_k)

解释:

对于任意取值的v_0,即初始化可以任取状态值,我们能算出每个状态下采用不同action得到的action value,即q(v,a),那么我们选取最大的q(v,a)对应的action,作为新的策略

步骤二:值更新:v_{k+1}=r_{\pi_{k+1}}+\gamma P_{\pi_{k+1}}v_k

解释:

由步骤一得到的新策略,那么根据这个新策略,我们可以算出这个策略下的v_{k+1}(因为v_{k+1}是由该策略下采取的action的reward即r_{\pi_{k+1}}和其到达的状态的状态值v_k决定的),再次回到步骤一进行迭代

策略迭代

算法思想:首先给定任意的策略\pi_0

步骤一:策略估算(PE,policy evaluation),根据策略\pi_k,计算state value

v_{\pi_k}=r_{\pi_k}+\gamma P_{\pi_k}v_{\pi_k}

由于策略已经给定,每个action的reward是已知条件,那么我们可以明确每一个状态下采取哪一个action,获得多少reward,以及跳到哪一个状态,由此可以计算上式。

步骤二:策略优化

\pi_{k+1}=\arg\max_\pi(r_\pi+\gamma P_\pi v_{\pi_k})

在步骤一中已经得到所有的state value,每个action得到的动作价值即q(v,a)由动作的reward(已知条件)、动作到达的下一状态的状态值(步骤一得到的计算值),因此每个action的q可以计算出来,在其中选择q值最大的action作为新的策略。再次回到步骤一进行迭代。

-----------------------------------------------------

v_{\pi_k}=r_{\pi_k}+\gamma P_{\pi_k}v_{\pi_k}中对于v_{\pi_k}的求解问题:

1、矩阵运算求解:进行矩阵的运算后可以得到:v_{\pi_k}=(I-\gamma P_{\pi_k})^{-1}r_{\pi_k},但是由于矩阵的逆求解十分困难,因此一般不采用这种方式

2、迭代求解:v_{\pi_k}^{(j+1)}=r_{\pi_k}+\gamma P_{\pi_k}v_{\pi_k}^{(j)},\quad j=0,1,2,...

其中v_{\pi_k}^{(j)}可以任意取初始值,进行迭代无数次,最后得到的v_{\pi_k}^{*}就是方程的解

-----------------------------------------------------

截断策略迭代算法

对比值迭代和策略迭代,都有计算state value即v的步骤:

1、值迭代仅计算了一次(从v_kv_{k+1} )之后就进行策略更新,

2、策略迭代中,使用迭代求解的方式的话,v计算了无穷次,直到得到方程的真正解v_{\pi_k}^{*}

在实际运算中,计算无穷次是不现实的,我们在计算N次后,当v_{\pi_k}^{k+1}v_{\pi_k}^{k}的差距较小时,停止计算(截断),此时的v_{\pi_k}^{k+1}为近似解,利用该近似解进行策略优化。这种算法称为截断策略迭代算法。

可以注意到,截断算法中N取1,则变成了值迭代算法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值