强化学习可以解决什么问题?
- 学习打游戏
- 围棋比赛
- 星际
AlphaStar - 投资管理
- 发电站控制
- 人机对话
- 计算机视觉
关于强化学习
强化学习在各个领域均有应用:
- 在计算机科学领域有机器学习
- 在工程领域有最优控制(一种在给定约束条件下使某一性能指标达到最优的控制方法)
- 在数学领域有运筹学,经济领域有有限理性(指个体在决策过程中受到认知能力、信息获取和处理能力等因素的限制,从而无法做出完全理性的决策)
- 在心理学领域有经典条件反射(一种学习过程,通过将原本无关的刺激与自然产生某种反应的刺激联系起来,使得原本无关的刺激也能引发类似的反应)
- 在神经科学领域有奖励系统(一种激励和鼓励个体实现目标的机制)。
机器学习的分支
有监督学习
:利用一组已知类别的训练样本调整分类器的参数,使习得的分类器能够对未知样本进行分类或预测
无监督学习
:从无标注的数据中学习隐含的结构或模式
强化学习
:学习“做什么才能使数值化的收益信号最大化”,是机器通过与环境交互来实现目标的一种计算方法。
强化学习的特点
强化学习不同于其他机器学习的算法:
没有监督数据,只有奖励(reward)信号
在监督学习中,模型通常有一个清晰定义的目标,通过给定的输入-输出对来学习映射关系。每个训练样本都包括输入数据和对应的正确输出(标签)。然而,在强化学习中,智能体没有给定的正确答案或者标签,只有一个奖励信号来表明其行为的好坏。
奖励信号不一定是实时的,可能存在延迟
在很多情况下,强化学习中的奖励不是立即给出的。智能体可能要在一系列的动作之后才能接收到奖励,这就是所谓的延迟奖励。这意味着智能体需要能够将奖励与一系列动作相关联,即使这些动作和奖励之间可能存在时间间隔。(比如下棋,到最后才能知道此局是输是赢)
时间是一个重要因素
在强化学习中,智能体的决策是序列性的,并且每个决策都是在一个时间步内做出的。强化学习算法必须考虑到时间的概念,因为动作之间的顺序很重要。在这种情况下,智能体的目标是学习一个策略,即随时间的推移如何选择动作以最大化总奖励。
智能体(Agent)当前的动作(Action)影响后续接收到的数据
在强化学习中,智能体的每个动作都会对环境造成影响,从而影响到它后续接收到的数据。这种现象称为环境的动态性(或非静态性)。与之相比,传统的监督学习和非监督学习算法通常假设数据分布是独立同分布的,即模型的输出不会影响后续的输入数据。
这些特点使得强化学习适用于那些需要通过试错来学习最佳行为策略的复杂环境,比如游戏、机器人控制和推荐系统等。强化学习的独特之处在于它关注如何在长期内进行决策,并且能够处理奖励可能延迟或间接的情况。
强化学习的基本要素
奖励(Reward)
定义(
奖励假设
):所有问题的目标都可以被描述成最大化期望的累计奖励
- 奖励 R t R_t Rt 是一个反馈信号,是一个标量
- 反应智能体(Agent)在时间步 t 工作得如何
- 智能体的工作就是
最大化累计奖励
强化学习
主要基于奖励假设
(Reward Hypothesis)
奖励
——序列决策——智能体——环境 ——状态
关于奖励的例子
-
直升飞机飞行特技动作
- +reward 跟随期望的轨迹
- -reward 坠机
-
管理投资组合
- +reward银行中有收益
-
控制发电站
- +reward生产电量
- -reward超过安全阀值
-
Atari游戏
- +reward分数增加
- -reward分数减少
序列决策(Sequential Decision Making)
- 目标:选择一定的动作序列以最大化未来的总体奖励
- 智能体的行为可能是一个很长的动作序列
- 大多数时候奖励是延迟的
- 宁愿牺牲即时(短期)奖励以获取更多的长期奖励
奖励——序列决策
——智能体——环境 ——状态
智能体与环境(Environment)
奖励——序列决策——
智能体
——环境
——状态
- 智能体在每个时间步t,:
- 接收观测(observation) O t O_t Ot
- 接收标量奖励信号 R t R_t Rt
- 执行动作(Action) A t A_t At
- 环境:
- 接收动作 A t A_t At
- 产生观测 O t + 1 O_{t+1} Ot+1
- 产生标量奖励信号 R t + 1 R_{t+1} Rt+1
奖励——序列决策——智能体
——环境
——状态
历史(History)与状态(State)
历史
是观测、行动和奖励的序列
H
t
=
O
1
,
R
1
,
A
1
,
O
2
,
R
2
,
A
2
,
.
.
,
O
t
−
1
,
R
t
−
1
,
A
t
−
1
,
O
t
,
R
t
H_t=O_1,R_1,A_1,O_2,R_2,A_2,..,O_{t-1},R_{t-1},A_{t-1},O_t,R_t
Ht=O1,R1,A1,O2,R2,A2,..,Ot−1,Rt−1,At−1,Ot,Rt
- 根据这个历史可以决定接下来会发生什么
- 智能体选择行动
- 环境选择观测及奖励
状态
是一种用于确定接下来会发生的事情(行动、观察、奖励)的信息
- 状态是关于历史的函数 S t = f ( H t ) S_t=f(H_t) St=f(Ht)
奖励——序列决策——智能体——环境 ——状态
环境状态(Environment State)
- 环境状态
S
t
e
S^e_t
Ste是环境的
内部状态
- 用来确定下一个观测/奖励
- 环境状态通常对智能体式
不可见的
- 即使
S
t
e
S^e_t
Ste可见,大都
包含
大量不相关的信息
奖励——序列决策——智能体——环境 ——状态
智能体状态(Agent State)
-
智能体状态 S t a S^a_t Sta是智能体
内部对信息的表达
- 包括智能体可以使用的、决定未来动作的所有信息
- 是强化学习算法使用的信息
-
智能体状态是历史的函数
S t a = f ( H t ) S^a_t =f(H_t) Sta=f(Ht)
奖励——序列决策——智能体——环境 ——状态
信息状态(Information State)
信息状态(也叫马尔可夫状态,Markov State)包含了历史上所有有用的信息。
马尔可夫状态(Markov ):状态 S t S_t St 具有马尔可夫性,当且仅当
P [ S t + 1 ∣ S t ] = P [ S t + 1 ∣ S 1 , … , S t ] \mathbb{P}[S_{t+1}|S_t] = \mathbb{P} [S_{t+1}|S_1,\dots,S_t] P[St+1∣St]=P[St+1∣S1,…,St]
给定当前时刻的状态,将来与历史无关
H
1
:
t
→
S
t
→
H
t
+
1
:
∞
H_{1:t} \rightarrow S_t \rightarrow H_{t+1:\infty}
H1:t→St→Ht+1:∞
上式意味着下一个状态 S t + 1 S_{t+1} St+1只依赖于当前状态 S t S_t St,而与之前的历史状态 S 1 , . . . , S t − 1 S_1, ..., S_{t-1} S1,...,St−1无关。
在马尔可夫决策过程中,马尔可夫状态为建模决策过程提供了数学上的简化,因为你只需要考虑当前的状态,而不是整个历史序列。这大大减少了问题的复杂性。
例如,在一个简单的棋盘游戏中,棋盘的当前布局(包括所有棋子的位置)就构成了一个马尔可夫状态,因为游戏的下一个状态(或者棋盘的下一个布局)仅取决于当前布局和玩家的下一步走法,而与之前的走法无关。
奖励——序列决策——智能体——环境 ——状态
环境的可观测性
完全可观测的环境Fully Observable Environments
- 下围棋
- 下象棋
完全可观测
:智能体可以直接观察到全部环境状态
O
t
=
S
t
a
=
S
t
e
O_t = S^a_t=S^e_t
Ot=Sta=Ste
智能体状态 = 环境状态 = 信息状态
正式的说,这是马尔科夫决策过程(MDP)
部分可观测的环境Partially Observable Environments
部分可观测
:智能体智能部分的观测到环境
- 打麻将
- 斗地主
智能体状态 不等于
环境状态
正式的说,这是部分可观测马尔科夫决策过程
(POMDP)
智能体的组成
强化学习智能体由下述三个组件中的一个或多个组成:
-
策略
(Policy):智能体的行为函数。输入为状态,输出为行动决策 -
价值函数
(Valuefunction):评估每个状态或行动有多好 -
模型
(Model):智能体对环境的表示,是智能体眼里的环境
策略(Policy)
策略是学习智能体在特定时间的行为方式
- 是从状态到行动的映射
- 确定性策略(Deterministic Policy): a = π ( s ) a = \pi(s) a=π(s)
- 随机策略(Stochastic Policy): π ( a ∣ s ) = P ( A t = a ∣ S t = s ) \pi(a|s) = P(A_t=a|S_t=s) π(a∣s)=P(At=a∣St=s),这个输出每个动作的概率值,并不会指定某个动作
确定性策略
随机策略
迷宫(当迷宫的环境不是全局可观测的)
- 智能体智能看见附近格子的信息,如果智能体在灰色格子上,两个方块上的状态是一样的
- 采用确定性策略,可能学到在灰色方块上向左走。如果agent在左边的灰色方块上,他永远不可能通关游戏
- 采用随机策略便可以再任意格子上有概率的通关游戏
价值函数
价值函数是对于未来累积奖励的预测
- 用于评估在给定的策略下状态的好坏
- 可用于选择动作
V π ( s ) = E π [ R t + 1 + γ R t + 2 + γ 2 R t + 3 + … ∣ S t = s ] V_\pi(s)=\mathbb{E}_π[R_{t+1}+\gamma R_{t+2}+\gamma² R_{t+3}+\dots |S_t=s] Vπ(s)=Eπ[Rt+1+γRt+2+γ2Rt+3+…∣St=s]
其中,s 是状态, π \pi π是智能体, γ \gamma γ是一个系数,越未来的数据,赋予的权重越小
模型
模型用于模拟环境的行为,建模环境的动态特征
解决下列两个问题:
- 状态转移概率:用来预测环境的下一个状态
P s s ′ a = P [ S t + 1 = s ′ ∣ S t = s , A t = a ] P^a_{ss'}=\mathbb{P}[S_{t+1} =s'|S_t=s,A_t=a] Pss′a=P[St+1=s′∣St=s,At=a] - 奖励:预测环境给出的下一个即时奖励
R s a = E [ R t + 1 ∣ S t = s , A t = a ] R^a_s=\mathbb{E}[R_{t+1} |S_t=s,A_t=a] Rsa=E[Rt+1∣St=s,At=a]
环境真实的运行机制通常不称为模型,而称为环境动力学
模型并不能立即给我们一个好的策略
智能体分类
基于策略的更新与学习
方法,强化学习方法可分为:
- 基于价值函数
- 基于直接策略搜索
- 基于执行者-评论者(Actor-Critic)
根据强化学习算法是否依赖模型
,强化学习方法可分为:
- 基于模型的强化学习算法
- 无模型的强化学习算法
根据环境返回的回报函数是否已知
,强化学习方法可分为:
- 正向强化学习算法
- 逆向强化学习算法:从专家的实例中学习回报函数。
强化学习问题
学习(Learning)与规划(Planning)
序列决策中的两个基础问题:
- 强化学习
- 环境初始未知
- 智能体不断与环境交互
- 智能体提升它的策略
- 规划
- 环境模型已知
- 智能体根据Model进行计算(不进行额外的交互)
- 智能体提升它的策略
强化学习示例:
游戏内在运行机制未知,直接与游戏交互,操作摇杆,观测到画面及分数
规划示例:
游戏内在运行机制已知;如果在状态s采取了动作a接下的状态与分数全部可知;在大脑里找到最优策略(不与环境交互):基于树的搜索策略
探索(Exploration)和利用(Exploitation)
- 强化学习类似于一个试错的学习
- 智能体从其与环境的交互中发现一个好的策略
- 在试错的过程中不会损失太多奖励
- 探索会发现有关环境的更多信息,有选择地放弃某些奖励
- 利用已知信息来最大化回报,强调开发利用已有的信息
- 探索和利用是决策时需要平衡的两个方面
例子:饭店选择,利用:去最喜欢的饭店,探索:去一个新的饭店
预测(Prediction)与控制(Control)
- 预测:评估未来
- 策略已经给定
- 控制:最大化未来
- 找到最优的策略
格子世界:预测
格子世界:控制