文章目录
一、定义
我们已经知道,如果有足够的数据,那么我们可以进行模仿学习。但是,如果数据不足或者我们想引入目的性,我们就可以通过引入奖励函数,来指导Agent的行为.
1、马尔可夫决策过程
关于Agent的序列行为与环境状态的相关变化,我们可以形式化地使用(马尔可夫决策过程)Markov decision process
进行描述.
定义一:马尔可夫决策过程
马尔可夫决策过程是一个四元组:
M
=
{
S
,
A
,
T
,
r
}
\mathcal{M}=\{\mathcal{S},\mathcal{A},\mathcal{T}, r\}
M={S,A,T,r}
其中:
- S : \mathcal{S}: S: 表示状态的集合。(状态反映的是客观世界)
- A : \mathcal{A}: A: 表示行动的集合。
- T : \mathcal{T}: T:转移算子。(一个条件概率的Tensor)
- r r r:奖励函数. ( r : S × A → R ) r: \mathcal{S} \times \mathcal{A} \to \mathcal{R}) r:S×A→R)
2、部分马尔可夫决策过程
有时候,如同前文所说的,一些时候,我们无法得到客观世界的状态,而只能得到观测。因此,我们使用(部分马尔可夫决策过程)partially pbserved Markov decision process
描述该过程:
定义二:部分马尔可夫决策过程
部分马尔科夫决策过程是一个六元组
M = { S , A , O , T , ϵ , r } \mathcal{M} = \{\mathcal{S}, \mathcal{A}, \mathcal{O}, \mathcal{T}, \mathcal{\epsilon}, r \} M={S,A,O,T,ϵ,r}
其中:
- S : \mathcal{S}: S: 表示状态的集合。(状态反映的是客观世界)
- A : \mathcal{A}: A: 表示行动的集合。
- O : \mathcal{O}: O: 表示观测的集合。
- T : \mathcal{T}: T:转移算子。(一个条件概率的Tensor)
- ϵ : \mathcal{\epsilon}: ϵ:发射概率,即 p ( o t ∣ s t ) p(o_t|s_t) p(ot∣st)
-
r
r
r:奖励函数. (
r
:
S
×
A
→
R
)
r: \mathcal{S} \times \mathcal{A} \to \mathcal{R})
r:S×A→R)
3、强化学习的目的
有了(部分)马尔科夫过程的形式化定义,我们就能够形式化地定义强化学习的目的了。先来看看强化学习的过程:
首先Agent根据策略
π
θ
(
a
∣
s
)
\pi_{\theta}(a|s)
πθ(a∣s)产生行动
a
a
a, 然后当前状态
s
s
s和行动
a
a
a共同产下一状态
s
′
s'
s′. 然后重复该过程。
强化学习的整个过程其实就是一个多了策略
π
θ
(
a
∣
s
)
\pi_{\theta}(a|s)
πθ(a∣s)的马尔科夫决策过程,这一过程可以形式化定义为:
p
θ
(
s
1
,
a
1
,
.
.
.
,
s
T
,
a
T
)
=
p
(
s
1
)
Π
t
=
1
T
π
θ
(
a
t
∣
s
t
)
p
(
s
t
+
1
∣
s
t
,
a
t
)
p_{\theta}(s_1,a_1,...,s_T, a_T)=p(s_1)\Pi_{t=1}^T\pi_{\theta}(a_t|s_t)p(s_{t+1}|s_t, a_t)
pθ(s1,a1,...,sT,aT)=p(s1)Πt=1Tπθ(at∣st)p(st+1∣st,at)
强化学习是希望Agent能够学习到好的策略
π
θ
(
a
∣
s
)
\pi_{\theta}(a|s)
πθ(a∣s)
如何衡量策略的好坏呢?应该结合奖励函数
以及由该策略产生的状态
和行动
序列来衡量。由此,我们得到强化学习的目的:
θ ∗ = a r g max θ E τ ∼ p θ ( τ ) [ ∑ t r ( s t , a t ) ] \theta^*=arg \max_{\theta}E_{\tau \sim p_{\theta}(\tau)}[\sum_tr(s_t,a_t)] θ∗=argθmaxEτ∼pθ(τ)[t∑r(st,at)]
即学习到最优的参数 θ ∗ \theta^* θ∗, 从而得到最优策略 π θ ∗ ( a ∣ s ) \pi_{\theta^*}(a|s) πθ∗(a∣s),使得序列的总奖励期望最高,其中 τ = ( s 1 , a 1 , . . . , s T , a T ) \tau=(s_1, a_1, ..., s_T, a_T) τ=(s1,a1,...,sT,aT)为状态行动序列.
4、简化表示
对联合概率进行边缘化,我们有 θ ∗ = a r g max θ E τ ∼ p θ ( τ ) [ ∑ t r ( s t , a t ) ] = a r g max θ ∑ t = 1 T E ( s t , a t ) ∼ p θ ( s t , a t ) [ r ( s t , a t ) ] \theta^*=arg \max_{\theta}E_{\tau \sim p_{\theta}(\tau)}[\sum_tr(s_t,a_t)] =arg \max_{\theta} \sum_{t=1}^TE_{(s_t, a_t) \sim p_{\theta}(s_t, a_t)}[r(s_t, a_t)] θ∗=argθmaxEτ∼pθ(τ)[t∑r(st,at)]=argθmaxt=1∑TE(st,at)∼pθ(st,at)[r(st,at)].
即将其简化表示为各时间步的状态和行为的奖励期望之和。我们再对概率图模型进行简单变化:
这就相当于一个由转移概率
p
(
(
s
t
+
1
,
a
t
+
1
)
∣
(
s
t
,
a
t
)
)
p((s_{t+1}, a_{t+1})|(s_t,a_t))
p((st+1,at+1)∣(st,at))决定的马尔科夫链,熟悉MAMC采样的同学肯定知道,基本所有的马尔科夫链会有一个平稳分布,且平稳分布唯一。因此,当
T
→
∞
T \to \infty
T→∞时,我们用下式表示强化学习的目的:
5、在意期望
特别值得注意的是,在强化学习中,我们在意的是奖励函数的期望,而不是奖励函数本身,因为期望是平滑的,平滑的性质使得我们能够采取梯度下降等方法进行学习。比如下方情形:
小车左转奖励为1,右转奖励为-1。如果专注奖励函数本身,那么它是离散的,不可微的。但是其期望
E
(
r
)
=
−
θ
+
(
1
−
θ
)
=
−
2
θ
+
1
E(r)=-\theta+(1-\theta)=-2\theta+1
E(r)=−θ+(1−θ)=−2θ+1. 是可微的。
二、强化学习算法
1、算法模块总览
强化学习可以分为多类算法。具体的,有(1)不基于模型的算法. (2)基于模型的算法.
而不基于模型的算法又可分为(1)基于价值的算法。(2)基于策略的算法。
无论是怎样的算法,他们的结构都可以下方的三个模块表示:
2、无模型、基于价值的算法
无模型,基于价值的算法可以由下图表示:
其在黄色框根据策略
π
θ
(
a
∣
s
)
\pi_{\theta}(a|s)
πθ(a∣s)以及转移算子
p
(
s
′
∣
s
,
a
)
p(s'|s,a)
p(s′∣s,a)采样,生成多条未来可能的行动和状态序列。绿色框只是简单计算所有序列的奖励期望。蓝色框使用梯度下降更新策略。然后重复该过程。这样的方法也叫作policy gradients
.
3、有模型的算法
无模型、基于策略的算法可以由下图表示:
其在黄色框根据策略
π
θ
(
a
t
∣
s
t
)
\pi_{\theta}(a_t|s_t)
πθ(at∣st)采样该时间Agent应该采取的行动。然后在绿色框计算得到
s
t
+
1
s_{t+1}
st+1, 最后在蓝色框进行梯度下降更新策略。
各种算法各有优劣,还是需要看实际的情况。具体如何选择,这里就不赘述了。
三、Q函数与V函数
1、Q函数
先来看我们最终的强化学习的目标函数:
∑ t = 1 T E ( s t , a t ) ∼ p θ ( s t , a t ) [ r ( s t , a t ) ] \sum_{t=1}^TE_{(s_t, a_t) \sim p_{\theta}(s_t, a_t)}[r(s_t, a_t)] t=1∑TE(st,at)∼pθ(st,at)[r(st,at)]
改写该式:
我们定义Q函数为:
也可写为:
其含义为: 从状态
s
1
s_1
s1和行为
a
1
a_1
a1开始的所有奖励和。
2、V函数
当然,我们也可以定义从状态
s
1
s_1
s1开始的所有奖励和,即V函数:
3、Q函数与V函数的使用
(1) 当我们知道Q函数时,我们可以通过Q函数提高我们的策略。即:
(2) 当我们知道V函数和Q函数时,由两个函数的定义,我们可以通过两者大小关系修改策略,即使得:
四、总结
最后用一张图总结深度强化学习的类别,笔者还未弄明白,先记下来吧: