强化学习
本文最后更新于174 天前,其中的信息可能已经过时,如有错误请发送邮件至 2641805259@qq.com

一、强化学习简介

搜索:

只能在确认环境中进行,得到的是从起点到终点动作序列

强化学习:

非确定环境,学会一个策略,能够在任意状态下找到最佳动作。

序列决策任务:

一个序列任务,通过各种动作达到自己目标。

智能体从交互中学习得到最大化累计奖励的行动。

关键要素

  1. 状态(state): 对当前环境的描述。

  2. 动作 (action) : 对智能体采取的行动

  3. 策略(policy): 如何根据观察到的状态做决策,从动作空间中选择一个动作。

    强化学习最终学得的就是一个策略函数。

    • 确定性策略:
    • 随机性策略:
  4. 状态转移(state transition): 从当前t时刻状态转移到下一个时刻的状态

  5. 奖励(reward): 执行一个动作后,环境返回给智能体一个数值。

    奖励函数的好坏影响强化学习的结果。

  6. 轨迹(trajectory): 智能体观测到的所有状态、动作、奖励的序列。

  7. 回报(return):从当前时刻开始到本回合结束的所有奖励总和。

    强化学习的目标是最大化回报,即累计奖励,而不是最大化当前奖励。

    通常考虑折扣回报,即当前时刻的奖励具有更大权重。

    是未来奖励的折扣因子,使得和未来奖励相比起来智能体更重视即时奖励

  8. 回合(episode):一局游戏。

交互过程

  • 观察到状态,根据策略 选择动作
  • 执行动作,状态转移至,获得奖励

二、马尔科夫决策过程(Markov Decision Process, MDP)

1. 基本概念

  • 状态变量:给定时刻,随机变量的取值
  • 初始状态概率:随机变量的先验概率分布
  • 转移模型(transition model):指定世界如何随时间演变,给定过去的状态变量取值之后,确定最新状态的概率分布

马尔可夫假设:当前状态只依赖于有限固定数量的过去状态。

状态 + 状态转移 = 马尔可夫过程

2. 定义

具有马尔可夫性质的随机过程。

状态是马尔可夫的,当且仅当:

强化学习对应了马尔可夫四元组:

有模型学习(model-based learning):假设均已知。

MDP模型的动态转换

  • 从状态开始,智能体选择某个动作,智能体得到奖励

  • MDP随机转移到下一个状态

  • 这个过程不断进行

  • 智能体的总回报为:

3. 一个例子——Grid World

环境:有若干网络单元组成的网格世界

可通行单元 / 禁止进入单元 / 目标单元 / 边界

任务:给定任意起始位置,寻找一条通往目标的"较好"路径。(如何定义“较好”?)

  • 状态:在grid world中,状态就是agent所在的位置。

  • 状态空间:所有状态的集合(假设一共只有9个格子)。

  • 动作:上下左右、不动

  • 动作空间:所有可行动作的集合

  • 状态转移概率:自定。

  • 奖励函数:

    • 越出边界:
    • 进入禁止单元:
    • 到达目标单元:
    • 其他情况,奖励

贝尔曼方程

1. 有模型学习

目标:选择能够最大化累计奖励期望的策略

三个步骤: 策略评估、改进、迭代

2. 价值函数

状态(或状态-动作二元组)的函数,用来评估当前智能体在给定状态(或给定状态与动作)下有多好。

  • 状态值函数(State value function)

  • 状态-动作值函数(State-Action value function)

  • 两者的关系:

3. 贝尔曼方程

其中:

  • 表示从状态 s 采取动作 a 转换到状态 s' 所获得的奖励
  • 表示从状态 s 采取动作 a 转换到状态 s' 的概率(归属于环境)
  • 表示在状态 s 下采取动作 a 的概率(归属智能体)

贝尔曼最优方程

最优策略对应的值函数称为最优值函数

非最优策略的改进方式:将策略选择的动作改为当前最优的动作

4. 价值迭代

过程:

  1. 对于每个状态,初始化

  2. 重复以下过程直到收敛:

    • 对每个状态,更新

5. 策略迭代

过程:

  1. 随机初始化策略

  2. 重复以下过程直到收敛:

    • 策略评估:
    • 策略改进:对每个状态,更新

总结:

  • 两种策略均可归结为基于动态规划的寻优算法
  • 价值迭代是贪心更新法
  • 策略迭代中,用Bellman等式更新价值函数代价很大
  • 对于空间较小的MDP,策略迭代通常很快收敛
  • 对于空间较大的MDP,价值迭代更实用(效率更高)

无模型学习

状态转移函数与奖励函数未知。

从“经验”中学习一个MDP模型:

  • 学习状态转移概率

有没有办法不学习MDP?能不能从经验数据中直接学习价值函数和策略函数?——模型无关的强化学习(Model-Free Reinforcement Learning)

1. 蒙特卡洛强化学习

  • 在模型未知的情形下,从起始状态出发,使用某个策略进行采样获得轨迹

    Episode 1:

  • 对于轨迹中出现的每一对状态-动作,记录其奖赏之和,作为该状态-动作对的一次累计奖赏采样值

  • 多次采样得到多条轨迹之后,将每个状态-动作对的累计奖赏采样值进行平均,得到状态-动作值函数的估计

  • 从某个状态-动作出发,执行策略得到一个回合的轨迹,基于该回合数据估计状态-动作的价值

  • 一个长的回合可以看做很多个从不同状态-动作出发的子回合,可以用于估计多个不同状态-动作 的值;样本效率更高

    image-20251017100222978

  • 访问在一个回合中的每个时间步长的状态

    • 增量计算器
    • 增量总累计奖励
    • 价值被估计为累计奖励的均值
  • 同理,可计算出

注意:如果策略是确定性的,对于某个状态只会输出一个动作,使用这样的策略进行采样,只能得到多条相同的轨迹

引入贪心算法

  1. 轨迹采样:按照当前策略的贪心版本与环境交互,得到 episode
  2. 策略评估:根据采样的轨迹更新的估计
  3. 策略改进:根据新的,更新策略

异策略(off-policy)蒙特卡洛强化学习

仅在评估时引入贪心策略,策略改进时改进原始策略

  • 估计一个不同分布的期望:

  • 将每个实例的权重重新分配为

使用策略的采样轨迹来评估策略,实际上就是对累计奖赏估计期望

使用策略的采样轨迹来评估策略,仅需对累计奖赏加权

分别表示两个策略产生第条轨迹的概率

增量蒙特卡诺更新

  • 对于状态-动作对,假设基于个采样已经估计出

  • 则在得到第个采样时,有

  • 更一般地,可以把更换为系数

注:蒙特卡洛强化学习通过考虑采样轨迹,克服了模型未知给策略估计造成的困难

蒙特卡洛强化学习的缺点:低效

  • 求平均时以“批处理式”进行
  • 在一个完整的采样轨迹完成后才对状态-动作值函数进行更新

2. 时序差分(temporal difference, TD)学习

开车从北京到上海,出发前模型预测总车程为14小时,即,到达上海发现实际用时是16小时。基于两者之差去更新模型,让模型预测更准。

  • 假设我经过4.5小时到达济南,模型再次预测,发现济南到上海只需要11小时

    TD 算法将称为TD目标,它比最初的预测更可靠。

其中是前一次在状态处执行动作后转移到的状态,是策略选择的动作

SARSA(on-policy)

学习与执行的是同一个策略

  • 对于当前策略执行的每个(状态-动作-奖励-状态-动作)元组

  • 更新状态-动作值函数为

两个actions都是由当前策略选择的。

Q-Learning

SARSA适用于需要安全探索的情形,学习的是实际执行策略的结果,不会高估风险状态。

Q-learning的目标是尽快找到最优策略,对学习稳定性要求低,适用于游戏AI

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇