【强化学习系列】Q-learning——从贝尔曼最优方程谈起
引言
上一篇贝尔曼最优方程中我们已经推导出动作价值形式的贝尔曼最优方程:
q π ∗ ( s , a ) = ∑ s ′ ∈ S ∑ r ∈ R p ( s ′ , r ∣ s , a ) [ r + γ max a ′ q π ∗ ( s ′ , a ′ ) ] \begin{equation}q_{\pi^*}(s,a)=\sum_{s'\in S}\sum_{r\in R}p(s',r|s,a)[r+\gamma \max_{a'}q_{\pi^*}(s',a')]\end{equation} qπ∗(s,a)=s′∈S∑r∈R∑p(s′,r∣s,a)[r+γa′maxqπ∗(s′,a′)]
这里的 q π ∗ ( s , a ) q_{\pi^*}(s,a) qπ∗(s,a)是最优动作价值的真实值,它是一个期望值,需要对所有可能的 s ′ s' s′和 r r r依概率 p ( s ′ , r ∣ s , a ) p(s',r|s,a) p(s′,r∣s,a)进行加权求和,然而这在实际中很难做到。因为环境的模型,即概率 p ( s ′ , r ∣ s , a ) p(s',r|s,a) p(s′,r∣s,a)通常是很难知道的。因此需要一种免模型的方法,Q-learning就是免模型的方法。
原理
根据公式(1),我们采用一种迭代计算的方式来估计最优动作价值 q π ∗ ( s , a ) q_{\pi^*}(s,a) qπ∗(s,a),由于是估计值,我们用大写的Q与真实值作区分,记作Q(s,a)。
假设我们已经有了Q(s,a)的初始值,在与环境交互时,我们遇到了状态s,并采取了动作a,获得了奖励r,并进入了下一个状态s’。我们可以仅用这一条数据(s,a,r,s’)来更新最优动作价值的估计Q(s,a),根据公式(1),这时我们就不再对所有的r和s’依概率进行加权求和了,而只用这一条数据,所以可以把 r + γ max a ′ Q ( s ′ , a ′ ) r+\gamma \max_{a'}Q(s',a') r+γmaxa′Q(s′,a′)作为最优动作价值的估计。
但是,只用一条数据进行估计会有很大的误差,更好的方式是采用迭代计算的方式更新动作价值的估计值,即每次以一定的步长 α \alpha α用目标值 r + γ max a ′ Q ( s ′ , a ′ ) r+\gamma \max_{a'}Q(s',a') r+γmaxa′Q(s′,a′)来更新原有的估计值,即:
Q t + 1 ( s t , a t ) = Q t ( s t , a t ) − α t ( s t , a t ) [ Q t ( s t , a t ) − [ r t + 1 + γ max a Q t ( s t + 1 , a ) ] ] Q_{t+1}(s_t,a_t)=Q_t(s_t,a_t)-\alpha_t(s_t,a_t)\left[Q_t(s_t,a_t)-[r_{t+1}+\gamma \max_{a}Q_t(s_{t+1},a)]\right] Qt+1(st,at)=Qt(st,at)−αt(st,at)[Qt(st,at)−[rt+1+γamaxQt(st+1,a)]]
至于为什么可以这样迭代计算,证明比较复杂,不展开赘述
为什么说Q-learning是off-policy的
行动策略:用来产生观测数据的策略,它决定了在 s t s_t st时选择哪个动作 a t a_t at。
目标策略:最终需要学习的、正在优化的策略,也是在更新目标中使用的策略
在状态 s t s_t st时采取的动作 a t a_t at是是由行动策略决定的,为了保持对环境的探索,通常使用 ϵ \epsilon ϵ-greedy策略。而更新目标 r t + 1 + γ max a Q t ( s t + 1 , a ) r_{t+1}+\gamma \max_{a}Q_t(s_{t+1},a) rt+1+γmaxaQt(st+1,a)可以改写成 r t + 1 + γ Q t ( s t + 1 , a ∗ ) r_{t+1}+\gamma Q_t(s_{t+1},a^*) rt+1+γQt(st+1,a∗),即在 s t + 1 s_{t+1} st+1时采取最优动作 a ∗ a^* a∗,说明我们的目标策略是一个贪心策略,它与行动策略是不同的。所以Q-learning是off-policy的。