强化学习算法公式推导
关于强化学习算法公式推导过程解释
马尔可夫决策过程及其核心概念
马尔可夫决策过程(MDP)是描述具有序列决策问题的一种数学框架,在此过程中,环境的状态转移仅依赖当前状态和采取的动作而与之前的历史无关。MDP由五元组( S, A, P_a(s,s'), R_a(s), \gamma )定义[^1]:
- (S)表示有限数量的状态集合;
- (A)代表可用行动的集合;
- (P_a(s,s')=Pr(s_{t+1}=s'|s_t=s,a_t=a)),即执行动作a后从状态s转移到状态s'的概率;
- (R_a(s)=E[r_{t+1}|s_t=s,a_t=a]),指在给定状态下选取特定行为所获得奖励期望值;
- (\gamma\in[0,1])为折扣因子。
对于上述模型而言,目标是在长期累积回报最大化原则下找到最优策略π使得V(s)=max_π V^π(s),其中V^(s)称为状态价值函数,它衡量了遵循某项固定政策时处于某个位置所能带来的平均收益总和;Q^(s,a)则被命名为行动价值函数,用于评估采取某一具体措施后的即时效益加上后续可能获取的利益之加权均值。
贝尔曼方程求解状态价值解析解
为了寻找最佳方案,可以利用贝尔曼最优化原理来构建递归关系式——贝尔曼方程:
[ V^\pi(s) = E_\pi[R_{t+1}+\gamma V^\pi(S_{t+1})|S_t=s], s∈S ]
该表达式揭示了一个重要性质:任意时刻下的预期未来报酬等于立即得到的部分加上下一刻起始点继续前进所带来的额外收获。当考虑无限时间范围内的累计奖赏并引入适当衰减系数γ(0<γ≤1)以防止数值爆炸现象发生,则有如下形式化表述方式:
[ Q^\pi(s,a) = r(s)+\gamma \sum_{s'\in S}\left[P_a(s',s) \cdot V^\pi(s')\right]=r(s)+\gamma \mathbb{E}_{s'}\left[V^\pi(s') | a, s\right] ]
这里特别强调的是,一旦确定了具体的方针指导方针π(a|s),就可以依据上列等价转换轻松计算出对应条件下各节点的价值量度V^(s)或Q^(s,a)。
使用蒙特卡罗方法估计状态价值
除了理论上的精确解答外,实践中还经常采用随机模拟手段来进行近似估算。蒙特卡罗法就是一种基于大量样本路径的经验统计特性完成这一任务的有效途径之一。其基本思路是从初始设定出发按照既定规则逐步演化直至终止条件满足为止,并记录沿途经历过的每一个中间环节连同相应反馈得分情况作为观测数据集的一部分。经过多次重复实验积累足够多的信息之后再取平均值得到最终结果。这种方法尤其适用于那些难以直接求得封闭型解决方案的情形之下。
SAC算法中的对数概率公式推导
软Actor-Critic (SAC)是一种结合了最大熵强化学习理念的off-policy actor-critic deep RL算法。在此背景下,针对连续控制任务设计了一种特殊的重参数化技巧以便更高效地更新网络权重参数。具体来说就是在产生候选操作向量u~N(μθ(s),σθ²(s))的基础上应用双曲正切激活函数将其映射至合法区间[-1,+1]^D之内形成真实施加给外界影响的实际指令at=tanh(u)[^2]。
此时如果想要正确处理因变换引起的分布变化就需要调整原本单纯依靠高斯噪声建模得出的概率密度p(at|st;ψ)。为此引入辅助变量z=(ut−mean)/std并将原始输入重新构造成为新的联合空间(z,zt)。这样一来就能借助链式法则拆分整体结构从而实现逐层分离独立运算的目的了。整个流程大致如下所示[^2]:
import torch
def log_prob(action_means, action_stds, actions):
normal_dist = torch.distributions.Normal(action_means, action_stds)
# Compute raw noise z from at and its probability density p_z.
noises = torch.atanh(actions)
log_p_noises = normal_dist.log_prob(noises).sum(-1)
# Calculate the correction term due to tanh transformation.
squashed_correction = torch.sum(torch.log(1 - actions ** 2 + 1e-6), dim=-1)
return log_p_noises - squashed_correction
相关推荐


















