- 目前智能体主要分为两类:
- 角色扮演智能体(Role-playing Agents):使用系统prompt设定智能体角色,让智能体模仿这一角色与用户进行交互;
- 强化学习智能体(RL Agent):使用强化学习的方式(下面会详细描述)与环境交互,并通过环境反馈更新策略。
- 多智能体强化学习(MARL):
- 如果多智能体没有与环境交互,只是调用多个大模型,那么其本质仍为角色扮演。但这种形式再多次交互后智能体会逐渐忘记其初始设定;
- 现在的智能体除了与环境交互之外,还会附带其他模块,如下图:
- 记忆:上下文、长短时记忆、规则等
- 工具:将指令转化为具体操作(可集成)
- 规划:基于记忆与工具
# 强化学习问题定义
# 强化学习里的概念
- 智能体(agent):智能体是强化学习算法的主体,它能够根据经验做出主观判断并执行动作,是整个智能系统的核心。
- 环境(environment):智能体以外的一切统称为环境,环境在与智能体的交互中,能被智能体所采取的动作影响,同时环境也能向智能体反馈状态和奖励。
- 状态(state):状态可以理解为智能体对环境的一种理解和编码,通常包含了对智能体所采取决策产生影响的信息。
- 动作(action):动作是智能体对环境产生影响的方式。
- 策略(policy):策略是智能体在所处状态下去执行某个动作的依据,即给定一个状态,智能体可根据一个策略来选择应该采取的动作。
- 奖励(reward):奖励是智能体序贯式采取一系列动作后从环境获得的收益。
- 注:这里指结果奖励,另外还有过程奖励(即在智能体执行每一个动作时得到的收益)
# 与监督学习、无监督学习的区别
| 有监督学习 | 无监督学习 | 强化学习 | |
|---|---|---|---|
| 学习依据 | 基于监督信息 | 基于对数据结构的假设 | 基于评估 |
| 数据来源 | 一次给定 | 一次给定 | 在时序交互中产生 |
| 决策过程 | 单步决策(如分类和识别等) | 无 | 序贯决策(如棋类博弈) |
| 学习目标 | 样本到语义标签的映射 | 数据的分布模式 | 选择能够获取最大收益的状态到动作的映射 |
# 强化学习的特点
- 基于评估:强化学习利用环境评估当前策略,以此为依据进行优化
- 交互性:强化学习的数据在与环境的交互中产生
- 序列决策过程:智能主体在与环境的交互中需要作出一系列的决策,这些决策往往是前后关联的
- 注:现实中强化学习问题往往还具有奖励滞后,基于采样的评估等特点。
# 马尔科夫决策过程
- 以机器人在棋盘格移动为例:
- 在下图网格中,假设有一个机器人位于,其每一步只能向上或向右移动一格,跃出方格会被惩罚(且游戏停止)。如何使用强化学习找到一种策略,使机器人从到达?
- 在下图网格中,假设有一个机器人位于,其每一步只能向上或向右移动一格,跃出方格会被惩罚(且游戏停止)。如何使用强化学习找到一种策略,使机器人从到达?
# 离散马尔可夫过程(Discrete Markov Process)
- 一个随机过程实际上是一列随时间变化的随机变量,其中当时间是离散量时,一个随机过程可以表示为,其中每个都是一个随机变量,这被称为离散随机过程。
- 马尔可夫链(Markov Chain):满足马尔可夫性(Markov Property)的离散随机过程,也被称为离散马尔科夫过程。这一过程具有无记忆性:
即时刻状态仅与时刻状态相关。
# 马尔可夫奖励过程(Markov Reward Process)
- 为了在序列决策中对目标进行优化,在马尔可夫随机过程框架中加入了奖励机制:
- 奖励函数,其中描述了从第步状态转移到第步状态所获得奖励;
- 在一个序列决策过程中,不同状态之间的转移产生了一系列的奖励,其中为的简便记法。
- 引入奖励机制,就可以衡量任意序列的优劣,即对序列决策进行评价。
- 问题:给定两个因为状态转移而产生的奖励序列和,哪个序列决策更好?
- 为了比较不同的奖励序列,定义反馈(return),用来反映累加奖励:
其中为折扣系数(discount factor),满足
- 反馈值反映了某个时刻后所得到累加奖励,当衰退系数小于时,越是遥远的未来对累加反馈的贡献越少
- 对于上述问题,假设:
- 故序列决策更好。
- 为了比较不同的奖励序列,定义反馈(return),用来反映累加奖励:
- 使用离散马尔可夫过程描述机器人移动问题:
- 随机变量序列:表示机器人第步的位置,每个随机变量的取值范围为(其中表示越界状态)
- 状态转移概率:满足马尔可夫性
- 定义奖励函数:从到所获得奖励,其取值为:到为,为,越界时为
- 定义衰退系数:
- 综合以上信息,可用来刻画马尔科夫奖励过程。
- 然而,这个模型不能体现机器人能动性,仍然缺乏与环境进行进行交互的手段。
# 引入动作(Action)
- 在强化学习问题中,智能主体与环境交互过程中可自主决定所采取的动作,不同动作会对环境产生不同影响,为此:
- 定义智能主体能够采取的动作集合为
- 由于不同的动作对环境造成的影响不同,因此状态转移概率定义为,其中为第步采取的动作
- 奖励可能受动作的影响,因此修改奖励函数为
- 注:
- 动作集合可以是有限的,也可以是无限的
- 状态转移可以是确定(deterministic)的,也可以是随机概率性(stochastic)的。
- 确定状态转移相当于发生从到的转移概率为
- 由此我们对上述离散马尔科夫过程进行修改:
- 增加动作集合:
- 状态转移概率修改为:满足马尔可夫性,其中。
- 奖励函数修改为
- 随机变量序列与衰退系数不变
- 综合以上信息,可通过来刻画马尔科夫决策过程
- 马尔可夫决策过程可用如下序列来表示:
- 马尔科夫过程中产生的状态序列称为轨迹(trajectory),可如下表示:
轨迹长度可以是无限的,也可以有终止状态。有终止状态的问题叫做分段的(即存在回合的)(episodic),否则叫做持续的(continuing)。
- 在机器人移动问题中,初始状态,终止状态为.
# 强化学习中的策略学习
- 马尔可夫决策过程对环境进行了描述,那么
智能主体如何与环境交互而完成任务?——需要进行策略学习! - 策略函数:
- 策略函数,其中的值表示在状态下采取动作的概率。
- 策略函数的输出可以是确定的,即给定情况下,只有一个动作使得概率取值为(别无选择)。对于确定的策略,记为。
- 如何进行策略学习:
- 一个好的策略是在当前状态下采取了一个行动后,该行动能够在未来收到最大化的反馈:即让最大化
- 一个好的策略函数应该能够使得智能体在采取了一系列行动后可得到最佳奖励
- 为了对策略函数进行评估,定义:
- 价值函数(Value Function),其中,即在第步状态为时,按照策略行动后在未来所获得反馈值的期望;
- 由马尔可夫性,未来的状态和奖励只与当前状态相关,与无关。因此取任意值该等式均成立,如“逢山开路,遇水搭桥”。
- 动作-价值函数(Action-Value Function) ,其中表示在第步状态为时,按照策略采取动作后,在未来所获得反馈值的期望。
- 价值函数(Value Function),其中,即在第步状态为时,按照策略行动后在未来所获得反馈值的期望;
- 这样,策略学习转换为如下优化问题:寻找一个最优策略,对任意使得值最大
# 最终定义
- 综合以上概念分析,我们可以对强化学习问题进行如下定义:
给定一个马尔可夫决策过程,学习一个最优策略,对任意使得值最大。 - 价值函数和动作-价值函数反映了智能体在某一策略下所对应状态序列获得回报的期望,它比回报本身更加准确地刻画了智能体的目标。
- 价值函数和动作-价值函数的定义之所以能够成立,离不开决策过程所具有的马尔可夫性,即当位于当前状态时,无论当前时刻的取值是多少,一个策略回报值的期望是一定的(当前状态只与前一状态有关,与时间无关)。
# 贝尔曼方程
- 贝尔曼方程(Bellman Equation)也被称作动态规划方程(Dynamic Programming Equation),由理查德·贝尔曼(Richard Bellman)提出。
- 推导:
- 价值函数:
其中为在策略下采取动作的概率,为采取动作后带来的回报期望。
- 动作-价值函数:
其中为在状态采取行动进入状态的概率,为在采取进入得到的回报,为在获得的回报期望。
- 将式代入式中,得到价值函数的递推方程:
这说明,价值函数取值与时间没有关系,只与策略、在策略下从某个状态转移到其后续状态所取得的回报以及在后续所得回报有关。
- 再将式代入式中,得到动作-价值函数的递推方程:
这说明,动作-价值函数取值同样与时间没有关系,而是与瞬时奖励和下一步的状态和动作有关。
- 价值函数:
- 上述式和式分别为价值函数与动作-价值函数的贝尔曼方程。
- 贝尔曼方程描述了价值函数或动作-价值函数的递推关系,是研究强化学习问题的重要手段。
- 其中价值函数的贝尔曼方程描述了当前状态价值函数和其后续状态价值函数之间的关系,即当前状态价值函数等于瞬时奖励的期望加上后续状态的(折扣)价值函数的期望。
- 而动作-价值函数的贝尔曼方程描述了当前动作-价值函数和其后续动作-价值函数之间的关系,即当前状态下的动作价值函数等于瞬时奖励的期望加上后续状态的(折扣)动作-价值函数的期望。
- 在实际中,需要计算得到最优策略以指导智能体在当前状态如何选择一个可获得最大回报的动作。求解最优策略的一种方法就是去求解最优的价值函数或最优的动作-价值函数(即基于价值方法,value-based approach)。一旦找到了最优的价值函数或动作-价值函数,自然而然也就是找到最优策略。当然,在强化学习中还有 基于策略(policy-based) 和 基于模型(model-based) 等不同方法。
# 基于价值的强化学习
# 策略迭代的基本模式
- 为了求解最优策略,以下是一种思路:从一个任意的策略开始,首先计算该策略下价值函数(或动作-价值函数),然后根据价值函数调整改进策略使其更优,不断迭代这个过程直到策略收敛。
- 通过策略计算价值函数的过程叫做策略评估(policy evaluation),通过价值函数优化策略的过程叫做策略优化(policy improvement),策略评估和策略优化交替进行的强化学习求解方法叫做通用策略迭代(Generalized Policy Iteration,GPI)。
# 策略优化定理
在讨论如何优化策略之前,首先需要明确什么是“更好”的策略。
- 对于确定的策略和,如果对于任意状态,
那么对于任意状态,有
即策略不比差。注:不等式左侧的含义是只在当前这一步将动作修改为,未来的动作仍然按照的指导进行。
- 给定当前策略、价值函数和行动-价值函数时,可如下构造新的策略,只要满足如下条件:
便是对的一个改进。于是对于任意,有
# 强化学习中的策略评估方法
- 假定当前策略为,策略评估指的是根据策略来计算相应的价值函数或动作-价值函数。这里将介绍在状态集合有限前提下三种常见的策略评估方法,它们分别是基于动态规划的方法、基于蒙特卡洛采样的方法和 时序差分(temporal difference) 法。
# 动态规划(DP)
- 核心思想:使用迭代的方法求解贝尔曼方程组
- 算法流程:
- 初始化函数;
- 循环(直到收敛):
- 枚举;
- 更新
- 缺点:
- 智能主体需要事先知道状态转移概率;
- 无法处理状态集合大小无限的情况。
# 蒙特卡洛采样(MC)
- 核心思想:大数定律——当样本足够大时,样本期望向均值收敛(这里样本代表策略轨迹的反馈)
- 算法流程:
- 选择不同的起始状态,按照当前策略采样若干轨迹记它们的集合为;
- 枚举;
- 计算中每次出现时对应的反馈;(这些反馈对应的采样序列均从出发)
- 更新
- 优点:
- 智能主体不必知道状态转移概率
- 容易扩展到无限状态集合的问题中
- 缺点:
- 状态集合比较大时,一个状态在轨迹可能非常稀疏,不利于估计期望
- 在实际问题中,最终反馈需要在终止状态才能知晓,导致反馈周期较长
# 时序差分(TD)
- 可以看作蒙特卡罗方法和动态规划方法的有机结合
- 算法流程:
- 初始化函数;
- 循环(直到收敛):
- 初始化为初始状态;
- 循环(直到为终止状态):
- ;(选取动作集合中的一个动作)
- 执行动作,观察奖励和下一个状态;
- 更新;
- 更新;
- 时序差分算法与蒙特卡洛方法相似之处在于,时序差分方法从实际经验中获取信息,无需提前获知环境模型的全部信息。
- 时序差分算法与动态规划方法的相似之处在于,时序差分方法能够利用前序已知信息来进行在线实时学习,无需等到整个片段结束(终止状态抵达)再进行价值函数的更新。
- 实际上,时序差分算法中的更新表达式可化为:,其中为学习得到的价值函数值(即时序差分目标)
- 时序差分法和蒙特卡洛法都是通过采样若干个片段来进行价值函数更新的,但是时序差分法并非使用一个片段中的终止状态所提供的实际回报值来估计价值函数,而是根据下一个状态的价值函数来估计,这样就克服了采样轨迹的稀疏性可能带来样本方差较大的不足问题,同时也缩短了反馈周期。
# 策略优化方法:Q-learning
- 基于时序差分评估方法进行优化:
- 算法流程:
- 初始化函数;
- 循环(直到收敛):
- 初始化为初始状态;
- 循环(直到为终止状态):
- (选取动作-价值函数最优对应的动作)
- 执行动作,观察奖励和下一个状态;
- 更新;
- 更新;
- Q学习中直接记录和更新动作-价值函数而不是价值函数,这是因为策略优化要求已知动作-价值函数,如果算法仍然记录价值函数,在不知道状态转移概率的情况下将无法求出。于是,Q学习中,只有动作-价值函数(即函数)参与计算。
- 然而,有时外部刺激不足以使智能体尝试新的策略(导致模型收敛后智能体仍无法到达目标状态),那么此时可以从内部入手为智能体改变固有策略来添加一个探索的动力。
# -greedy策略
- 为此,在Q学习中引入探索(exploration)与利用(exploitation)机制。这一机制用贪心策略来代替。
- 用贪心策略定义如下:在状态,以的概率来选择带来最大回报的动作,或者以的概率来随机选择一个动作。表达式:
- 贪心策略的解释:大体上遵循最优策略的决定,偶尔(以的小概率)进行探索。像这样更新时的目标策略与采样策略
不同的方法,叫做 离策略(off-policy) 方法。
# 用神经网络拟合价值函数:Deep Q-learning
- Q-learning的不足:
- 状态数量太多时,有些状态可能始终无法采样到,因此对这些状态的函数进行估计是很困难的
- 状态数量无限时,不可能用一张表(数组)来记录函数的值
- 思路:将函数参数化(parametrize),用一个非线性回归模型来拟合函数,例如(深度)神经网络
- 能够用有限的参数刻画无限的状态
- 由于回归函数的连续性,没有探索过的状态也可通过周围的状态来估计
- 算法流程:
- 初始化函数和参数;
- 循环(直到收敛):
- 初始化为初始状态;
- 循环(直到为终止状态):
- (选取动作-价值函数最优对应的动作)
- 执行动作,观察奖励和下一个状态;
- 更新损失函数;
- 根据梯度更新参数
- 更新;
- 损失函数刻画了的估计值与当前值的平方误差
- 利用梯度下降法优化参数
- 如果用深度神经网络来拟合函数,则算法称为深度Q学习或者深度强化学习
# 基于策略的强化学习
直接参数化策略函数,求解参数化的策略函数的梯度。
具体的老师也没讲,以后再来探索吧~
# 深度强化学习的应用
- 围棋博弈(AlphaGO)
- 雅达利游戏
# 总结
强化学习关系图:

参考:
《人工智能导论》终于结束了!只能说一言难尽吧,感觉这门课第一次开还是有些实验性质,作为第一批吃螃蟹的人,笔者感觉还是有不少地方可以改进(最主要的是课时太少啦!而且没有上机实验!)而且说实话大二上就学这些东西确实有些吃力(需要自学不少前置知识),笔者认为放在大三学更加合适(同时也建议设置为选修课而不是必修课……)。
当然上面也只是笔者的一些胡言乱语,仅供参考。不多说了,复习去了~
