赞
踩
本系列博客是强化学习的学习笔记,学习资料:
David Silver深度强化算法学习 +项目讲解
强化学习是很多领域的交叉,包括:
奖励
信号延时
的时间
很重要(时序的,而非独立同分布的)行动
会影响到接下来它接收的数据这些都是一些动作
,不像之前学过的深度学习,大部分是做分类、预测
标量
信号行动
的优劣累积
奖励
一个仍存在争议的定义(奖励假设):
所有的目标都可以被描述为是最大化累积期望奖励
一个智能体需要从环境接收两种信息:观察信息 O t O_t Ot和奖励信息 R t R_t Rt,输出一个行动 A t A_t At,作用于环境
环境受到行动的影响后,又产生 O t + 1 O_{t+1} Ot+1和 R t + 1 R_{t+1} Rt+1,输入到智能体中。
历史
就是一连串很长的序列,包括观察、行动和奖励:
H
t
=
O
1
,
R
1
,
A
1
,
.
.
.
,
A
t
−
1
,
O
t
,
R
t
H_t=O_1,R_1,A_1,...,A_{t-1},O_t,R_t
Ht=O1,R1,A1,...,At−1,Ot,Rt
也就是所有可观测变量在t时刻及之前的信息,或者是说机器人或嵌入式智能体的感觉运动流。(这个理解起来比较抽象)
下一步的行动取决于历史
状态
是决定下一步发生什么的信息,可以看作一种“总结”信息,相比于历史
,状态更精练。
正规来说,状态是一个关于历史的函数:
S
t
=
f
(
H
t
)
S_t = f(H_t)
St=f(Ht)
环境状态用 S t e S_t^e Ste来表示,环境状态即环境所使用的一切用来产生观测和奖励的数据。
通常来说,环境状态对于智能体是不可见的。就算可见,它当中也可能包含了一些不相关的信息。
用 S t a S_t^a Sta表示智能体状态,它是智能体的内部表达,即一切智能体用于选择下一步行动所用的任何信息。
智能体状态是强化学习算法所使用的信息。
它可以是任何关于历史的函数:
S
t
a
=
f
(
H
t
)
S_t^a = f(H_t)
Sta=f(Ht)
信息状态(也即马尔科夫状态
)包含了历史中所有的有用信息。
定义
状态 S t S_t St是马尔科夫的当且仅当
P [ S t + 1 ∣ S t ] = P [ S t + 1 ∣ S 1 , … , S t ] \mathbb{P}\left[S_{t+1} \mid S_{t}\right]=\mathbb{P}\left[S_{t+1} \mid S_{1}, \ldots, S_{t}\right] 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 e S_t^e Ste和历史 H t H_t Ht是马尔科夫的。
所以 S t a S_t^a Sta不是马尔科夫的?
老鼠在第三轮是得到奶酪还是遭到电击?
智能体直接观察环境状态
O
t
=
S
t
a
=
S
t
e
O_t=S_t^a=S_t^e
Ot=Sta=Ste
部分观测:智能体间接
地观测环境:
现在,智能体状态≠环境状态
这被称为部分观测马尔可夫决策过程
(POMDP)
智能体必须构建自己的环境表达 S t a S_t^a Sta,比如:
置信度
:
S
t
a
=
(
P
[
S
t
e
=
s
1
]
,
.
.
.
,
P
[
S
t
e
=
s
n
]
)
S_t^a=(\mathbb{P}[S_t^e=s^1],...,\mathbb{P}[S_t^e=s^n])
Sta=(P[Ste=s1],...,P[Ste=sn])一个强化学习智能体可能包含一个或更多如下组件:
策略
是智能体的行为,它是一个从状态到行动的映射,比如有:
值函数
是对将来奖励的一种预测,用来评估状态的好坏,由此来选择行动,比如:
v
π
(
s
)
=
E
π
[
R
t
+
1
+
γ
R
t
+
2
+
γ
2
R
t
+
3
+
…
∣
S
t
=
s
]
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]
vπ(s)=Eπ[Rt+1+γRt+2+γ2Rt+3+…∣St=s]
γ
\gamma
γ是一个0和1之间的数,上式说明给定状态s,越往后的奖励对智能体这一步的价值计算影响越小。所以智能体更看重短期内的奖励
模型不是必须的,模型预测环境
接下来会如何
P \mathcal{P} P预测了接下来的状态
R \mathcal{R} R预测了紧接着的奖励
比如:
P
s
s
′
a
=
P
[
S
t
+
1
=
s
′
∣
S
t
=
s
,
A
t
=
a
]
R
s
a
=
E
[
R
t
+
1
∣
S
t
=
s
,
A
t
=
a
]
\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}
Pss′aRsa=P[St+1=s′∣St=s,At=a]=E[Rt+1∣St=s,At=a]
第一个就是所谓的状态转移方程?
奖励:每走一步奖励-1
行动:包括:东、南、西、北
状态:智能体的位置
箭头代表每个状态对应的策略
π
(
s
)
\pi(s)
π(s)
数字代表每个状态对应的值函数 v π ( s ) v_\pi(s) vπ(s)
每次选择值函数最大的行动
智能体可能有一个关于环境的内部模型,它可能是不完美的模型
网格表示了状态转移模型 P s s ′ a \mathcal{P}_{ss^{\prime}}^a Pss′a
数字表示了每个状态的即时奖励 R s a \mathcal{R}_s^a Rsa(对所有a都相同)
无模型
基于模型
个人感觉这两者的区别有点像机器学习中判别模型和生成模型的区别。生成模型对应基于模型的RL。
大多数情况下,值函数都包含了策略
在贯序决策中,有两个基本的问题:
强化学习
(可否改进强化学习,告诉其初始环境呢?)
规划
游戏的规则是未知的,智能体通过直接玩游戏来学习,从操纵杆选择行动,观测像素和得分
游戏规则已知,可以查询模拟器,智能体脑中有一个完美模型,如果在状态s下采取了行动a,下一个行动是什么?得分会怎样?…都可以被计算出
提前规划来寻找最优策略,比如:树搜索
强化学习就像试验-试错
学习,智能体从其经验和环境中应该发现一个良好的策略,但沿途却不会失去太多奖励。
开发
选择最喜爱的餐馆探索
选择一个新餐馆开发
展示最成功的广告探索
展示一个不同的广告开发
在最著名的地点开采探索
在一个新的地点开采开发
采取一个你认为最佳的行动探索
采取一个实验性的行动均匀随机策略的值函数是什么?
所有可能策略的最优值函数是什么?
最优策略是什么?
因为是在一下午做完的,后面做得比较粗糙。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。