本系列为学习赵世钰老师的《强化学习的数学原理》所作的学习笔记.
本节我们将介绍强化学习中的值迭代求解方法.
2.1.1 算法步骤
在1.5节我们介绍了通过迭代可以求贝尔曼最优公式的最优解, 这个方法就叫值迭代:
v k + 1 = max π ∈ Π ( r π + γ P π v k ) , k = 0 , 1 , 2 , … v_{k+1}=\max _{\pi \in \Pi}\left(r_\pi+\gamma P_\pi v_k\right), \quad k=0,1,2, \ldots vk+1=π∈Πmax(rπ+γPπvk),k=0,1,2,…
当迭代数 k → ∞ k \rightarrow \infty k→∞时, v k , π k v_k,\pi_k vk,πk会收敛到最优值. 它的算法步骤为:
2.1.1.1 更新策略 π \pi π
基于当前 v k , π k v_k,\pi_k vk,πk, 求最优化问题: 使得上式状态值最大的最优策略 π \pi π, 并将其更新给 π k + 1 \pi_{k+1} πk+1
π k + 1 = arg max π ( r π + γ P π v k ) , \pi_{k+1}=\arg \max _\pi\left(r_\pi+\gamma P_\pi v_k\right), πk+1=argπmax(rπ+γPπvk),
式子中的矩阵展开可以写为:
π k + 1 ( s ) = arg max π ∑ a π ( a ∣ s ) ( ∑ r p ( r ∣ s , a ) r + γ ∑ s ′ p ( s ′ ∣ s , a ) v k ( s ′ ) ) ⏟ q k ( s , a ) , s ∈ S . \pi_{k+1}(s)=\arg \max _\pi \sum_a \pi(a \mid s) \underbrace{\left(\sum_r p(r \mid s, a) r+\gamma \sum_{s^{\prime}} p\left(s^{\prime} \mid s, a\right) v_k\left(s^{\prime}\right)\right)}_{q_k(s, a)}, \\ \quad s \in \mathcal{S} . πk+1(s)=argπmaxa∑π(a∣s)qk(s,a) (r∑p(r∣s,a)r+γs′∑p(s′∣s,a)vk(s′)),s∈S.
1.5节我们介绍过了, 最优解是一个确定贪婪策略, 即只有最佳动作的选择概率是1:
π k + 1 ( a ∣ s ) = { 1 , a = a k ∗ ( s ) 0 , a ≠ a k ∗ ( s ) \pi_{k+1}(a \mid s)= \begin{cases}1, & a=a_k^*(s) \\ 0, & a \neq a_k^*(s)\end{cases} πk+1(a∣s)={ 1,0,a=ak∗(s)a=ak∗(s)
其中动作 a k ∗ ( s ) a_k^*(s) ak∗(s)是最优解: a k ∗ ( s ) = arg max a q k ( s , a ) a_k^*(s)=\arg \max _a q_k(s, a) ak∗(s)=argmaxaqk(s,a)
2.1.1.2 更新值 v v v
得到新的策略 π k + 1 \pi_{k+1} π