强化学习学习笔记(一):RL介绍

强化学习课程学习系列笔记,RL Course by David Silve,按照课程顺序,每节课一篇博客笔记,主要记录课程内容和个人理解。

视频链接:油管 or B站

PPT地址:https://www.davidsilver.uk/teaching/

1. Something About RL

Reinforcement Learning 强化学习(后简称RL)是一个很有用的工具,在很多领域都有它的身影(下图左),比如在神经科学,科学家们研究人体的多巴胺系统是如何通过调节情绪作为奖励系统影响人体的学习和行为的 [1]。心理学主要研究人类和动物的条件反射和操作性条件反射,其核心是理解个体通过一些行为改变环境,接受环境的反馈刺激,改变最初的行为[2]。数学中的运筹学也涉及到了强化学习,其研究的是利用数学模型等方法寻找复杂问题中的最佳或近似最佳的解答。此外,经济学中的限制理性理论以及工程学中的最优控制也都和RL相关。当然本篇主要讲的是计算机科学背景下的强化学习,主要是在机器学习中的应用。我们都知道,机器学习主要可以分为监督学习,无监督学习和强化学习(下图右),强化学习和其他机器学习算法的主要区别如下:

  • 强化学习没有一个supervisor,只有奖励信号,也就是说训练过程中数据没有完全确定的标签或真值。
  • 反馈是有延迟的,可能在执行若干步后才会返回一个之前行为的reward
  • 强化学习的数据一般是序列化的,在时间上存在依赖,因此不是iid的数据,无法并行化,时间开销是强化学习需要考虑的一个重点。
  • Agent的动作会影响其后续接收的序列化数据,也就是说这是一个动态的环境,数据不是事先确定的。

image-20240812201810462

 

以下是一些强化学习应用场景的举例:

  • Fly stunt manoeuvres in a helicopter (驾驶直升机进行特技飞行动作): 这是强化学习的一项实际应用,智能体通过反复试验和调整策略来学习如何在模拟环境中驾驶直升机进行复杂的特技飞行动作。
  • Defeat the world champion at Backgammon (击败西洋双陆棋的世界冠军): 强化学习算法已被用于游戏中,如西洋双陆棋,智能体通过不断与自己或其他对手对弈,逐步提高技能,最终击败人类冠军。
  • Manage an investment portfolio (管理投资组合): 强化学习可以应用于金融领域,通过不断学习市场行为和投资策略,智能体能够优化投资组合以最大化回报。
  • Control a power station (控制发电站): 在能源领域,强化学习可用于优化发电站的操作,智能体可以学习如何在各种条件下有效地运行发电设备,以最大化效率和安全性。
  • Make a humanoid robot walk (让类人机器人行走): 强化学习在机器人学中得到了广泛应用,例如教类人机器人学习如何行走,通过不断调整步态和姿态,智能体逐渐学会稳定的行走方式。
  • Play many different Atari games better than humans (玩许多不同的雅达利游戏,并表现得比人类更好): 这是强化学习中著名的应用之一,智能体通过大量的游戏模拟,学习到比人类玩家更好的游戏策略,能够在多种雅达利游戏中击败人类玩家。

2. The RL Problem

2.1 Reward

Reward就是一个标量,用$R_t$表示,作为反馈信号来衡量一个Agent在 $t$​ 步动作执行后的好坏,其值取决于动作执行前的状态,动作本身,以及动作执行后的状态,Agent的使命就是最大化累加得到的总奖励值。RL实际上基于一个奖励假设(Reward Hypothesis):

All goals can be described by the maximisation of expected cumulative reward

以下是一些奖励值的例子:

Fly stunt manoeuvres in a helicopter (驾驶直升机进行特技飞行动作):

  • +ve reward for following desired trajectory(遵循期望轨迹的正奖励): 当智能体成功按照期望的轨迹飞行时,会获得正向奖励。
  • −ve reward for crashing(坠毁的负奖励): 如果智能体在飞行过程中发生坠毁,则会受到负向奖励。

Defeat the world champion at Backgammon (击败西洋双陆棋的世界冠军):

  • +/−ve reward for winning/losing a game(赢得/输掉比赛的正/负奖励): 当智能体赢得比赛时会获得正向奖励,输掉比赛时则会受到负向奖励。

Manage an investment portfolio (管理投资组合):

  • +ve reward for each $ in bank(每增加一美元的正奖励): 当智能体通过投资增加银行账户中的资金时,会获得正向奖励。

Control a power station (控制发电站):

  • +ve reward for producing power(产生电力的正奖励): 当智能体成功地产生电力时,会获得正向奖励。
  • −ve reward for exceeding safety thresholds(超出安全阈值的负奖励): 如果智能体操作导致超出安全阈值,则会受到负向奖励。

Make a humanoid robot walk (让类人机器人行走):

  • +ve reward for forward motion(向前运动的正奖励): 当智能体控制的机器人成功向前移动时,会获得正向奖励。
  • −ve reward for falling over(摔倒的负奖励): 如果机器人摔倒或失去平衡,智能体会受到负向奖励。

Play many different Atari games better than humans (玩许多不同的雅达利游戏,并表现得比人类更好):

  • +/−ve reward for increasing/decreasing score(得分增加/减少的正/负奖励): 当智能体在游戏中增加得分时会获得正向奖励,减少得分时则会受到负向奖励。

2.2 Sequential Decision Making

不同的任务虽然在形式上完全不同,但都可以统一看成进行序列化的决策,即Sequential Decision Making。其目标是选择能够最大化未来总奖励的行动。这意味着智能体不仅要考虑当前的奖励,还要考虑行动在整个时间序列上的累积效果。因为某些行动的影响可能不会立即显现,而是会在未来的某个时刻产生影响。同时奖励也可能会延迟。这意味着智能体在采取某些行动后,可能不会立刻得到奖励,而是需要等待一段时间。因此,有时候可能更好的是牺牲即时奖励以获得更多的长期奖励。

例如,金融投资可能需要几个月的时间才能成熟并获得回报。给杂技直升机加油虽然可能在短期内看不到好处,但如果不加油,几个小时后可能会发生坠机事故。再比如在游戏比赛中,想方设法阻止对手的动作可能不会立即带来胜利,但这种策略可以在之后的多次移动中显著提高获胜的机会。

2.3 Agent and Environment

RL的核心就是设计一个算法作为Agent,在每一时间步会接受reward和observation,并执行一个Action影响其所处的环境,环境会发生变化并发出新的observation和reward值。Agent接受新的reward和observation,并作出相应的调整,执行合适的动作,如此反复。

image-20240812210223305

2.4 State

2.4.1 History and State

History,字面意思,就是一组随着时间增加的序列,包含observation,action,reward,可以表示为:$H_t = O_1,R_1, A_1,…,A_{t-1}, O_t,R_t$ 注意不包含 $t$ 时间的Action。因此,History某种程度上决定了接下来会发生什么:

  • Agent根据History来确定第 $t$ 步的Action
  • environment根据History和Agent执行的Action,确定接下来的observation和reward

但是history中有很多冗余信息,会导致Agent的决策不够高效,因此通常使用State作为替代。State就是History的一个summery,提取出了足够的信息,可以用函数表示为:$S_t = f(H_t)$

2.4.2 Environment State

环境状态指的是环境自身的私有状态,决定了下一步环境需要展现给Agent的observation和reward是什么。通常环境的状态并不是对Agent完全可见的,即使完全可见,也可能存在一些与任务无关的干扰信息。

image-20240812212224098

2.4.3 Agent State

Agent的状态是Agent的内部表征,提供了必要的信息用于确定Agent的下一个action,也就是说Agent state可以看作是RL算法的输入。Agent state可以看作是 History的一个函数。

image-20240812212650966

2.4.4 Information State

下面介绍一个更加数学化一点的状态,information state 也被称为Markov state,它包含了所有来自History的必要信息,如果一个State满足以下式子,我们称它是Markov的:

$$
\mathbb{P}\left[S_{t+1} \mid S_{t}\right]=\mathbb{P}\left[S_{t+1} \mid S_{1}, \ldots, S_{t}\right]
$$

说人话意思就是,如果未来的事件只和当前状态相关,和过去的任何信息没有关联,则称这一状态是Markov的。这样的好处是,一旦我们确定了当前时刻的状态,过去的所有历史记录都可以丢弃,因为未来之和当前状态关联,历史记录就没用了。以杂技直升机为例,直升机的当前位置,速度,加速度,角速度就组成了一个Markov State,由这些信息就可以确定下一步操作是什么,十分钟前的任何信息都不会对下一步操作有任何影响。如果我们不知道当前时刻的速度,那就不是Markov状态,因为我们需要依靠过去时刻的位置信息推算出当前速度,来获得直升机的运动状态。

2.4.5 Fully / Partially Observable Environments

Full observability 指的是 Agent可以直接观察environment的全部state,即Agent state 等价于 environment state 等价于 information state,此时我们称这种决策为 Markov Decision Process (MDP)。

然而,Agent很多时候无法获得environment的全部状态,比如机器人仅依靠摄像头的视觉信息,无法获取自身的绝对位置,玩扑克牌的机器人无法获取对手的手牌信息等等。此时成为Partial observability,决策过程称为 partially observable Markov decision process((POMDP)。在这种情况下, Agent需要自己构建一个 state representation,也就是上面说的agent state。可能的状态有:整个History,或者Beliefs of environment state,或者Recurrent neural network隐式表示。

3. Inside An RL Agent

3.1 Policy(策略)

智能体根据某个状态选择动作的方式称为策略,即状态到选择每个动作的概率之间的映射,从一个状态映射到一个动作的策略称为确定性策略(deterministic policy)记做 $a=\pi(s)$。 更一般地,随机性策略(stochastic policy)给出了在给定状态下选择各个动作的概率值,表示为:

$$
\pi(a \mid s)=\mathbb{P}\left[A_{t}=a \mid S_{t}=s\right]
$$

需要注意的是,策略只依赖于当前状态,即满足上述提到的Markov性质,属于Markov决策,MDP。

3.2 Value function

为了评价智能体在使用策略 $\pi$ 时,在状态 $s$ 有多好,定义策略 $\pi$ 的状态价值函数,用于预测从某个状态开始,基于Policy $\pi$ 依次执行所有动作,能获得的未来 reward 期望,表示为:

$$
v_{\pi}(s)=\mathbb{E}_{\pi}\left[R_{t+1}+\gamma R_{t+2}+\gamma^{2} R_{t+3}+\ldots \mid S_{t}=s\right]
$$

其中 $\gamma$ 为衰减因子,用于限定当前状态的未来reward在多大程度上收到较远状态的影响。

3.3 Model

model用于预测环境接下来会做什么,主要包含Transitions $\mathcal{P}$ 和Rewards $\mathcal{R}$,前者用于预测在某个状态下执行某个动作后转移到另外一个状态的概率,后者预测某个状态执行某个动作后获得reward的期望,具体可以表示为:

$$
\begin{aligned}
\mathcal{P}_{s s^{\prime}}^{a} & =\mathbb{P}\left[S_{t+1}=s^{\prime} \mid S_{t}=s, A_{t}=a\right] \\
\mathcal{R}_{s}^{a} & =\mathbb{E}\left[R_{t+1} \mid S_{t}=s, A_{t}=a\right]
\end{aligned}
$$

也就是说,Model其实就是真实环境的模拟器simulator,这一组件并不是必须的,根据是否具有model,RL的方法可以分为model-free和model-based两类,后面会学到。

3.4 Categorizing RL agents

根据RL算法中是否包含上述的三个组件,就可以对RL算法进行分类,得到下面的韦恩图。后面会分别介绍每种算法的具体定义和实现。

image-20240813211409737

4. Problems within RL

4.1 Exploration and Exploitation

  • Exploration: trying new things that might enable the agent to make better decisions in the future,倾向于探索环境中新的信息,比如说去没吃过的饭店吃饭。
  • Exploitation: choosing actions that are expected to yield good reward given the past experience。倾向于开发使用我们已经探测得到的最大reward。

前者可以获得稳定的效果,但是不一定是最优的,后者可能会得到更优的方法,但是也可能得到一个不如以前方法的效果。

4.2 Planning and Learning

  • Learning problem:你的环境是未知的,你不能提前知道你的决策将对环境造成什么样的改变。我们需要通过不断地与环境交互,从而得知我们的action造成什么样的改变。
  • Planning Problem:我们的工作环境是已知的,我们被告知了整个环境的运作规则的详细信息。智能体能够计算出一个完美的模型,并且在不需要与环境进行任何交互的时候进行计算。在这种情况下智能体不用实时地与环境交互就能知道未来环境,只需要知道当前的状态,就能够开始思考,来寻找最优解。

4.3 Prediction and Control

  • 预测(Prediction):给你一个policy,agent得到,这个policy能够得到多少reward,这是一个预估未来的过程。
  • 控制(Control): 确定众多决策中,哪一个决策能够得到最多的奖励。

要强调的是,这两者的区别就在于,预测问题是给定一个policy,我们要确定他的value function是多少。而控制问题,是在没有policy的前提下,我们要确定最优的value function以及对应的决策方案。

Reference

[1] Baik J H. Stress and the dopaminergic reward system[J]. Experimental & molecular medicine, 2020, 52(12): 1879-1890.

[2] https://zh.wikipedia.org/wiki/%E6%93%8D%E4%BD%9C%E5%88%B6%E7%B4%84

暂无评论

发送评论 编辑评论


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