强化学习 近端策略优化(ppo)

马尔可夫决策过程(Markov Decision Process, MDP)是强化学*问题的数学框架。MDP通过五元组 (S, A, P, R, γ) 来描述,其中:

  • S: 状态空间,表示所有可能状态的集合。
  • A: 动作空间,表示智能体可以执行的所有动作的集合。
  • P: 状态转移概率矩阵,P(s'|s,a) 表示在状态 s 执行动作 a 后转移到状态 s' 的概率。
  • R: 奖励函数,R(s,a) 表示在状态 s 执行动作 a 后获得的即时奖励。
  • γ: 折扣因子,0 ≤ γ ≤ 1,用于度量未来奖励的当前价值。

马尔可夫链是一种随机过程,其未来状态只依赖于当前状态,与之前的历史状态无关。

 

策略网络(演员) 在舞台上表演,它只知道自己在做什么动作,但不知道效果好不好。

价值网络(教练) 在台下观看,手里拿着一套复杂的评分标准(Q值)。它不仅给演员的每个动作打分,更重要的是,它能告诉演员:“你的手再抬高一点,整体的分数就会更高!”——这就是它提供的梯度。

价值网络用于训练策略网络,价值网络将稀疏的环境奖励信号,转化为了一个稠密的、可微的“指导信号”,使得策略梯度方法在复杂、高维空间中变得可行。

 

PPO(Proximal Policy Optimization)算法是一种基于策略梯度的强化学*算法,由OpenAI团队提出,旨在解决传统策略梯度方法中的一些问题,尤其是在策略更新时可能出现的大幅度更新导致的性能下降问题。PPO算法的核心思想是在策略更新时引入一个“*端”操作,以确保策略更新不会偏离当前策略太远。

PPO算法使用了一个裁剪的目标函数 clip,该函数可以最小化策略更新过程中的风险。具体来说,PPO会计算新旧策略之间的比率,并将其限制在一个特定的范围内(例如,0.1到1.9),以避免策略更新过大。这种方法通过最小化一个包含裁剪概率比率和优势函数的目标损失函数来实现策略优化。

PPO算法具有以下几个显著特点:

  • 策略梯度方法PPO基于策略梯度方法,这是一种直接优化策略参数的方法,通过梯度上升来增加期望回报。
  • *端操作PPO在策略更新时使用了一个*端操作,这个操作通过一个称为“clip”的技巧来限制策略更新的步长
  • 重要性采样PPO使用重要性采样来估计策略梯度,这允许算法在训练过程中使用来自旧策略的样本来更新新策略。
  • 一般化PPO是一种“on-policy”算法,意味着它只能使用当前策略生成的数据来更新策略,这使得PPO在处理样本效率和偏差方面具有优势。

image

 

Q-learning算法(适用于离散的且有限的)

贝尔曼方程是由美国一位叫做理查德-贝尔曼科学家发现并提出的。它的核心思想是:当我们在特定时间点和状态下去考虑下一步的决策,我们不仅仅要关注当前决策立即产生的Reward,同时也要考虑当前的决策衍生产生未来持续性的Reward。简单地说就是既要考虑当前收益最大化,还需要去关注未来持续的收益

重点在于Q-value表

image

 更新Q(s,a)时不仅关注当前收益也关注未来收益,当前收益就是状态变更环境立即反馈的reward,未来收益就是状态变更后新状态对应可以采取的action中最大的Value,同时乘以折扣率γ。

image

 更新Q-value的表达式,有一个非常细节的地方。最开始运动的第一步的时候,我们是无法知晓下一步的State是什么的,源文件提供的类只能获取当前的State。但从当前State倒推,我们是知道上一个State是什么的,因为刚刚经历过,只要我们将上一个State记录下来即可。所以整个的更新表达式逻辑变为了用当前的State去更新上一步的(State,Action)对应的Q-value。

Reward的设置,可以取巧的使用项目中现有的Pacman每行动一步Score发生的变化作为Reward,两个状态变化时Score的差值我们认为就是Reward,这一步为我们节省了大量设置Reward的功夫。也可以自己定义Reward逻辑如离目标越*Reward越多,离Ghost越*Reward越少。

posted @ 2025-09-30 10:37  wangssd  阅读(35)  评论(0)    收藏  举报