Policy-based 强化学习
Agent 需要由一个神经网络来近似的策略函数控制。近似策略函数的神经网络称为 Policy Network ,策略网络。
Policy Network
用神经网络 \(π (a | s; 𝛉)\)(即 Policy Network )来近似策略函数 \(π (a | s)\) 。其中 \(𝛉\) 是该神经网络的参数。
必须满足 \(∑_{a ∈ 𝒜} π(a | s; 𝛉) = 1\) 。
Policy Learning
状态价值函数
用神经网络拟合:
Policy Learning 的任务:Learn \(𝛉\) that maximizes \( 𝑱(𝛉) = 𝔼_S(V(S; 𝛉))\).
改进 \(𝛉\) 的流程:( Policy Gradient Ascent ,策略梯度算法)
Observe state \(s\);
Update policy by: \(𝛉 ← 𝛉 + β ⋅ \frac{𝜕V(s; 𝛉)}{𝜕𝛉}\).
\(\frac{𝜕V(s; 𝛉)}{𝜕𝛉}\) 称为 Policy Gradient ,策略梯度。 \(β\) 也是学习率。
近似计算 Policy Gradient
计算策略梯度公式的两种等价形式:
用第一种公式计算策略梯度,适合离散 action :
计算 \(\mathbf{f}(a, 𝛉) = \frac{𝜕π(a | s; 𝛉)}{𝜕𝛉} ⋅ Q_π(s, a)\) ,对于所有 action \(a ∈ 𝒜\);
计算策略梯度:\(\frac{𝜕V(s; 𝛉)}{𝜕𝛉} = ∑_{a ∈ 𝒜} \mathbf{f}(a, 𝛉)\) 。
用第二种公式计算策略梯度,适合连续 action(蒙特卡洛近似):
根据 PDF \(π(⋅ | s; 𝛉)\) 随机取样一个 action \(\hat{a}\) ;
计算 \(𝐠(\hat{a}, 𝛉) = \frac{𝜕\mathrm{log}π(\hat{a} | s; 𝛉)}{𝜕𝛉} ⋅ Q_π(s, \hat{a})\) ;
用 \(𝐠(\hat{a}, 𝛉)\) 近似策略梯度 \(\frac{𝜕V(s; 𝛉)}{𝜕𝛉}\) 。
蒙特卡洛近似(Monte Carlo Approximation)是一种基于随机抽样(或伪随机数)的数值计算方法,又称统计模拟法。其基本原理为:基于大数定律和中心极限定理,当样本量足够大时,随机事件发生的频率近似等于其概率。 第二个方法也适用于离散 action 的策略梯度。
用 Policy Gradient 更新 Policy Network
Observe state \(s\);
Randomly sample action \(a_t\) according to \(π(⋅ | s_t; 𝛉_t)\);
Compute \(q_t ≈ Q_π(s_t, a_t)\) (some estimate);
Differentiate policy network: \(𝐝_t = \frac{𝜕 \mathrm{log}(a_t | s_t, 𝛉)}{𝜕 𝛉}|_{𝛉 = 𝛉_t}\);
(Approximate) policy gradient: \(𝐠(a_t, 𝛉_t) = q_t ⋅ 𝐝_{θ,t}\);
Update policy network: \(𝛉_{t + 1} = 𝛉_t + β ⋅ 𝐠(a_t, 𝛉_t)\).
但是,第三步中的 \(q_t\) 要如何计算呢?有两种方法:
Reinforce 算法:
玩完整个游戏并生成 trajectory :
计算 discounted return \(u_t = ∑\limits_{k = t}^T γ ^ {k - t} r_k\) for all \(t\) ;
由于 \(Q_π(s_t, a_t) = 𝔼[U_t]\) ,可以使用 \(u_t\) 近似 \(Q_π(s_t, a_t)\) ;
\(q_t = u_t\) 。
用另一个神经网络近似 \(Q_π\) —— actor-critic method