强化学习——强化学习概述
文章目录1. 强化学习2. 序列决策(Sequential decision making)3. 动作空间Reference1. 强化学习(1)定义一个智能体(agent)怎么在一个复杂不确定的环境(environment)里面去极大化它能获得的奖励。(2)过程1: 智能体获取状态,并根据状态输出动作(决策)2: 环境根据执行的决策输出下一状态和该决策获得的奖励(3)强化学习与监督学习的比较(1)
文章目录
1. 强化学习
(1)定义
一个智能体(agent)怎么在一个复杂不确定的环境(environment)里面去极大化它能获得的奖励。
(2)过程
1: 智能体获取状态,并根据状态输出动作(决策)
2: 环境根据执行的决策输出下一状态和该决策获得的奖励
(3)强化学习与监督学习的比较
(1)强化学习输入的是序列数据,不满足独立同分布。
(2)强化学习无法得到立即反馈
(3)延迟奖励(delayed reward)
通常假设样本空间中全体样本服从一个未知分布,我们获得的每个样本都是独立地从这个分布上采样获得的,即独立同分布(independent and identically distributed,i.i.d.)
(4)强化学习的分类
(1)标准强化学习:手动设置特征 + 强化学习
(2)深度强化学习: 深度强化学习 = 深度学习 + 强化学习。不需要手动设置特征,将学习过程改进为端到端的训练(end-to-end training)。可以用一个神经网络来拟合我们这里的价值函数或策略网络,省去了特征工程(featureengineering)的过程。
2. 序列决策(Sequential decision making)
(1)奖励
奖励是由环境给的一个标量的反馈信号(scalar feedback signal),这个信号显示了智能体在某一步采取了某个策略的表现如何
(2)序列决策
智能体的目的就是选取一系列的动作来极大化它的累积奖励(Cumulative reward)
(3)状态
历史
历史是观测、行为、奖励的序列
H
t
=
O
1
,
R
1
,
A
1
,
O
2
,
⋯
,
O
t
,
R
t
H_t=O_1,R_1,A_1,O_2,\cdots,O_t,R_t
Ht=O1,R1,A1,O2,⋯,Ot,Rt
状态
状态是关于历史的函数
S
t
=
f
(
H
t
)
S_t=f(H_t)
St=f(Ht)
完全可观测的(fully observed)
通常建模程马尔可夫决策过程(MDP)。其中
O
t
=
S
t
e
=
S
t
a
O_t=S^e_t=S^a_t
Ot=Ste=Sta,即智能体的状态跟环境的状态等价的时候。
部分可观测的(partially observed)
是智能体得到的观测并不能包含环境运作的所有状态(如:自动驾驶汽车,汽车的状态仅仅是传感器可探查的数据)。其通常采用部分可观测马尔科夫决策过程,
3. 动作空间
定义
在给定的环境中,有效动作的集合
分类
(1)离散动作空间(discrete action space):智能体的动作数量是有限的
(2)连续动作空间(continuos action space):在连续空间中,动作是实值的向量
4. 智能体的组成和类型
强化学习的智能体可能有一个或多个如下的组成成分:
- 策略函数(policy function):把输入的状态变成行为
- 价值函数(value function):对当前状态进行评估(对后续收益的影响)
- 模型(model):表现智能体对环境的理解
4.1 策略
(1)定义
是一个函数,把输入的状态变成行为。
(2)分类
随机性策略(stochastic policy)
π
\pi
π函数
π
(
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),表示在状态s下输出动作为a的概率。然后通过采样得到一个动作。
确定性策略(deterministic policy)
采取最有可能的动作,即
a
∗
=
a
r
g
max
a
π
(
a
∣
s
)
a^*=arg \max_a \pi(a|s)
a∗=argmaxaπ(a∣s)
问题:比较随机性策略和确定性策略的优缺点
强化学习一般使用随机性策略,因为
① 随机性能更好的探索环境
② 随机性策略的动作具有多样性(不是唯一确定的)
③ 确定性策略对相同环境做出相同的动作,这会导致很容易被预测
4.2 价值函数
作用
价值函数是未来奖励的一个预测,用来评估状态的好坏。
折扣因子
希望尽可能在短的时间里面得到尽可能多的奖励。
(1)状态价值函数(state-value function)
表示在
π
\pi
π策略下,状态s的价值函数。
v
π
(
s
)
=
E
π
[
G
t
∣
S
t
=
s
]
=
E
π
[
∑
k
=
0
∞
γ
k
R
t
+
k
+
1
∣
S
t
=
s
]
,
f
o
r
a
l
l
s
∈
S
v_\pi(s)=E_\pi[G_t|S_t=s]=E_\pi[\sum_{k=0}^{\infty}\gamma^k R_{t+k+1}|S_t=s] \ , for \ all \ s \in S
vπ(s)=Eπ[Gt∣St=s]=Eπ[k=0∑∞γkRt+k+1∣St=s] ,for all s∈S
(2)动作状态价值函数(state-action-value function)
表示采取策略
π
\pi
π时,在状态s发生动作a下,未来可以获得的奖励
q
π
(
s
,
a
)
=
E
π
[
G
t
∣
S
t
=
s
,
A
t
=
a
]
=
E
π
[
∑
k
=
0
∞
γ
k
R
t
+
k
+
1
∣
S
t
=
s
,
A
t
=
a
]
q_\pi(s,a)=E_\pi[G_t|S_t=s,A_t=a]=E_\pi[\sum_{k=0}^{\infty}\gamma^k R_{t+k+1}|S_t=s,A_t=a]
qπ(s,a)=Eπ[Gt∣St=s,At=a]=Eπ[k=0∑∞γkRt+k+1∣St=s,At=a]
(3)Q函数和V函数的关系
v函数表示在状态s下,采取所有可能动作的未来奖励之和。
v
π
(
s
)
=
∑
a
∈
A
t
q
π
(
s
,
a
)
v_\pi(s)=\sum_{a \in A_t} q_\pi(s,a)
vπ(s)=a∈At∑qπ(s,a)
4.3 模型
模型决定了下一个状态。它由概率和奖励函数两部分组成
(1)状态转移概率
表示在状态s下,采取动作a,下一状态转化为s’的概率
P
s
s
′
a
=
P
[
S
t
+
1
=
s
′
∣
S
t
=
s
,
A
t
=
a
]
P_{ss'}^a=P[S_{t+1}=s'|S_t=s,A_t=a]
Pss′a=P[St+1=s′∣St=s,At=a]
(2)奖励函数
表示在当前状态采取某个行为可以获得的奖励
R
s
a
=
E
[
R
t
+
1
∣
S
t
=
s
,
A
t
=
a
]
R_s^a=E[R_{t+1}|S_t=s,A_t=a]
Rsa=E[Rt+1∣St=s,At=a]
4.4 类型
(1)基于价值的智能体(value-based agent)
显示的学习价值函数,隐式的学习策略。它维护一个价值表格或价值函数,并以此选取价值最大的动作。
常用算法
- Q-Learning
- Sarsa
(2)基于策略的智能体(policy-based agent)
直接学习策略。当学习好环境以后,在每个状态都会得到一个最佳行为。
常用算法
- 策略梯度算法
(3)有模型智能体(model-based agent)
根据环境经验,对环境进行建模构建一个虚拟世界,同时在虚拟世界和现实世界学习。
要求:能对环境建模。即能预测下一步的状态和奖励
(4)免模型智能体(model-free agent)
不对环境进行建模,直接与真实环境交互来学习最优策略。
目前,大部分深度强化学习都采用免模型学习。
5. 学习与规划
(1)学习(learning)
由于环境初始时是未知的,智能体需要不断与环境交互,逐渐改进策略
(2)规划(planning)
获得学习好的模型后,智能体不需要实时与环境交互就能知道未来环境。可以根据当前状态,根据模型寻找最优策略。
(3)解决思路
先学习环境如何工作,建立模型。再利用模型进行规划。
6. 探索和利用
探索:通过试错来理解采取的某个行为能否得到好的奖励。
利用:直接采取已知的可以得到很好奖励的行为。
(探索:看某个行为的奖励,利用:选取已知可以取得最好奖励的行为)
探索和利用窘境(exploration-exploitation dilemma):探索(即估计摇臂的优劣)和利用(即选择当前最优摇臂) 这两者是矛盾的,因为尝试次数(即总投币数)有限,加强了一方则会自然削弱另一方
Reference
https://github.com/datawhalechina/easy-rl
更多推荐