最近需要学习POMDP相关的东西,奈何需要学习的东西较多。之前没接触过强化学习,找了个视频找了本书看。将一下东西记录下来吧。
视频地址:David Silver强化学习课程
参考博客:
- https://www.leiphone.com/news/201608/If3hZy8sLqbn6uvo.html
- https://blog.csdn.net/u013745804/article/details/78196834
强化学习简介
核心思想
在强化学习的主要核心就是:
通过agent观察的Environment的变化(称之为observation),来决定采取不同的动作(action),使未来获得的奖励(reward)最大。
Agent and Environment
如上图。在一个时间序列过程中,每个时间步t对agent和environment都有影响。
对agent来说,在每一个时间步长中,要进行如下操作:
- 执行动作
- 观察环境变化
- 计算执行此动作的reward
对环境environment来说,执行的操作与agent对应:
- 接收agent的动作
- 观察environment的变化,发送observation给agent
- 发送reward值给agent
History and State
这里引入这两个概念:
- History 由observations, actions, rewards组成的一个序列
- state 决定下一个时间步将会发生什么的表示
定义公式如下:
- H t H_t Ht = O 1 O_1 O1, A 1 A_1 A1, R 1 R_1 R1… O t O_t Ot, A t A_t At, R t R_t Rt
状态由History决定:
- S t S_t St = f ( H t ) f(H_t) f(Ht)
一般地,将History state定义为一个Markov state,即下一时间步的状态 S ( t + 1 ) S_{(t+1)} S(t+1)只和当前状态 S t S_t St有关,与再之前的信息无关。
Major Components of an RL Agent
agent一般由下列三部分组成,也可不同时存在
- policy 策略
- Value function 值函数
- Model 模型
policy 策略
- A policy is the agent’s behavior
- It is a map from state to action
- Deterministic policy: a = π π π(s) 确定策略
- Stochastic policy: π ( a ∣ s ) π(a|s) π(a∣s) = P [ A t = a ∣ S t = s ] [At=a|St=s] [At=a∣St=s] 随机策略
Value function(值函数)
它预测了当前状态下未来可能获得的reward的期望,用于衡量当前状态的好坏。
公式:
V
π
(
S
)
V_π(S)
Vπ(S) =
E
π
[
R
t
+
1
+
γ
R
t
+
2
+
⋅
⋅
⋅
∣
S
t
=
s
]
E_π[R_{t+1}+ γR_{t+2}+···|S_t = s]
Eπ[Rt+1+γRt+2+⋅⋅⋅∣St=s]
表示当前状态s下,未来n个时间步获得reward的期望值
Model(模型)
预测environment下一步会做出什么样的改变,从而预测agent接收到的状态或者reward是什么。
- P模型预测环境的下一个状态
- R模型预测下一个reward
探索和利用
强化学习是一种试错(trial-and-error)的学习方式:最开始的时候不清楚environment(环境)的工作方式,不清楚执行什么样的action(行为)是对的,什么样的action(行为)是错的。因而agent需要从不断尝试的经验中发现一个好的policy,从而在这个过程中获取更多的reward。
在学习过程中,会有一个在Exploration(探索)和Exploitation(利用)之间的权衡。
-
Exploration(探索)会放弃一些已知的reward信息,而去尝试一些新的选择——即在某种状态下,算法也许已经学习到选择什么action让reward比较大,但是并不能每次都做出同样的选择,也许另外一个没有尝试过的选择会让reward更大,即Exploration希望能够探索更多关于environment的信息。
-
Exploitation(利用)指根据已知的信息最大化reward。