原创 首页 科研

强化学习入门:从 MDP 到 A3C

LinJHS 2

马尔可夫决策过程

前言

马尔可夫决策过程(Markov Decision Process, MDP)是序贯决策(sequential decision)的数学模型,用于在系统状态具有马尔可夫性质的环境中模拟智能体可实现的随机性策略与回报。

MDP 基于一组交互对象,即智能体和环境进行构建,所具有的要素包括状态、动作、策略和奖励。在 MDP 的模拟中,智能体会感知当前的系统状态,按策略对环境实施动作,从而改变环境的状态并得到奖励,奖励随时间的积累被称为回报。

MDP 的理论基础是马尔可夫链,因此也被视为考虑了动作的马尔可夫模型。在离散时间上建立的 MDP 被称为“离散时间马尔可夫决策过程(descrete-time MDP)”,反之则被称为“连续时间马尔可夫决策过程(continuous-time MDP)”。此外 MDP 存在一些变体,包括部分可观察马尔可夫决策过程、约束马尔可夫决策过程和模糊马尔可夫决策过程。

在应用方面,MDP 被用于机器学习中强化学习(reinforcement learning)问题的建模。通过使用动态规划、随机采样等方法,MDP 可以求解使回报最大化的智能体策略,并在自动控制、推荐系统等主题中得到应用。

定义

基本概念

MDP 包含五个模型要素:

  • 状态(state)、动作(action)、策略(policy)、奖励(reward)和回报(return)

马尔可夫决策过程是一个四元组(S, A, P, R),其中:

  • S:状态空间(State Space),表示所有可能的状态的集合。

  • A:行动空间(Action Space),表示所有可能的行动的集合。

  • P:状态转移概率(Transition Probability),表示在当前状态采取某个行动后,转移到下一个状态的概率。记作:P(s'|s, a)。

  • R:奖励函数(Reward Function),表示在当前状态采取某个行动后,获得的即时奖励。记作:R(s, a, s')。

在马尔可夫决策过程中,决策者(Agent)在每个时刻根据当前状态选择一个行动,并根据状态转移概率转移到下一个状态,同时获得一个即时奖励。决策者的目标是选择一组行动序列(策略),使得累积奖励最大化。

连续与离散 MDP

MDP 的指数集(index set)是时间步:i∈[0,τ]i\in [0,\tau] 并按时间步进行演化(evolution)

  • 时间步离散的 MDP 被称为离散时间马尔科夫决策过程(descrete-time MDP)

  • 反之则被称为连续时间马尔科夫决策过程(continuous-time MDP)

A3C 算法

前言

A3C(Asynchronous Advantage Actor-Critic)算法是一种在强化学习领域中应用广泛的算法,它结合了策略梯度方法和价值函数的学习,用于近似解决马尔可夫决策过程(Markov Decision Process)问题。A3C 算法在近年来备受关注,因为它在处理大规模连续动作空间和高维状态空间方面具有出色的性能。

A3C 解决了 Actor-Critic 难以收敛的问题,同时更重要的是,提供了一种通用的异步的并发的强化学习框架,也就是说,这个并发框架不光可以用于 A3C,还可以用于其他的强化学习算法。

发展历程

A3C 算法是对 DQN(Deep Q Network)算法在强化学习领域的一个重要延伸和改进。DQN 算法在 2013 年被 DeepMind 团队首次提出,并在很多任务上取得了令人瞩目的效果。然而,DQN 算法在处理连续动作空间、高维状态空间等复杂问题上面临着困难。为了解决这些问题,研究人员开始关注基于策略梯度的方法,并提出了 A3C 算法。

公式

L(θ)=−E[log⁡π(a∣s;π)A(s;a)]L(\theta)=-E[\log \pi(a\vert s;\pi)A(s;a)]

其中

  • L(θ)L(\theta) 表示损失函数

  • θ\theta 表示模型参数

  • π(a∣s;π)\pi(a\vert s;\pi) 表示在状态 ss 下选择动作 aa 的概率

  • A(s,a)A(s,a) 表示在状态 ss 选择动作 aa 相对于平均回报的优势函数

A3C 算法的优化目标是最小化损失函数 L(θ)L(\theta)。

训练过程

  • 初始化神经网络参数。

  • 创建多个并行的训练线程,每个线程独立运行一个智能体与环境交互,并使用 Actor 和 Critic 网络实现策略和价值的近似。

  • 每个线程根据当前的策略网络选择动作,并观测到新的状态和奖励。各线程用自己的轨迹在线更新,不做经验回放。

  • 当一个线程达到一定的时间步数或者轨迹结束时,该线程用自己的轨迹计算优势函数并进行梯度更新。

  • 每个线程进行一定次数的梯度更新后,将更新的参数传递给主线程进行整体参数更新。

  • 重复上述步骤直到达到预定的训练轮次或者达到终止条件为止。


参考资料:

  1. 马尔可夫决策过程 https://baike.baidu.com/item/%E9%A9%AC%E5%B0%94%E5%8F%AF%E5%A4%AB%E5%86%B3%E7%AD%96%E8%BF%87%E7%A8%8B/5824810

  2. 马尔可夫决策过程 https://zhuanlan.zhihu.com/p/626636130

  3. 【强化学习】常用算法之一“A3C” https://blog.csdn.net/Code_and516/article/details/131451893

分享
如果这篇文章帮到你,可以请我喝一杯茶。

微信扫码打开

请我喝杯茶

如果这篇文章帮到你,可以请我喝一杯茶。

微信收款码
在商城请我一杯