参考文献:《机器学习》,周志华(西瓜书) (今天看书总是走神,干脆总结一下,希望帮自己理清思路。如果碰巧能被大神看到,如有不正确或不严谨之处,万望指教!)
动态规划法
动态规划法是典型的有模型强化学习算法,即模型已知,对任意状态
x
x
x,
x
′
x'
x′和动作
a
a
a,在
x
x
x状态下执行动作
a
a
a转移到
x
′
x'
x′状态的概率
P
x
→
x
′
a
P_{x→x'}^a
Px→x′a?是已知的,该转移所带来的奖赏
R
x
→
x
′
a
R_{x→x'}^a
Rx→x′a?也是已知的。 在每执行一步策略后就进行值函数的更新。 1.策略评估
V
π
(
x
,
a
)
V^\pi(x,a)
Vπ(x,a)表示从状态
x
x
x出发,使用策略
π
\pi
π所才来的累积奖赏;
Q
π
(
x
,
a
)
Q^\pi(x,a)
Qπ(x,a)表示从状态
x
x
x出发,执行动作a后再使用策略
π
\pi
π带来的累积奖赏。 对于T步累计奖赏有
V
T
π
=
∑
a
∈
A
π
(
x
,
a
)
∑
x
′
∈
X
P
x
→
x
′
a
(
1
T
R
x
→
x
′
a
+
T
?
1
T
V
T
?
1
π
(
x
′
)
)
V_T^\pi=\sum_{a\in A}\pi(x,a)\sum_{x'\in X}P_{x→x'}^a(\frac{1}{T}R_{x→x'}^a+\frac{T-1}{T} V_{T-1}^\pi(x'))
VTπ?=∑a∈A?π(x,a)∑x′∈X?Px→x′a?(T1?Rx→x′a?+TT?1?VT?1π?(x′)) 对于
γ
\gamma
γ折扣累计奖赏有
V
γ
π
(
x
)
=
∑
a
∈
A
π
(
x
,
a
)
∑
x
′
∈
X
P
x
→
x
′
a
(
R
x
→
x
′
a
+
γ
V
γ
π
(
x
′
)
)
V_\gamma^\pi(x)=\sum_{a\in A}\pi(x,a)\sum_{x'\in X}P_{x→x'}^a(R_{x→x'}^a+\gamma V_\gamma^\pi(x'))
Vγπ?(x)=∑a∈A?π(x,a)∑x′∈X?Px→x′a?(Rx→x′a?+γVγπ?(x′)) 有了状态值函数V,就能直接计算出状态-动作值函数
Q
T
π
=
∑
x
′
∈
X
P
x
→
x
′
a
(
1
T
R
x
→
x
′
a
+
T
?
1
T
V
T
?
1
π
(
x
′
)
)
Q_T^\pi=\sum_{x'\in X}P_{x→x'}^a(\frac{1}{T}R_{x→x'}^a+\frac{T-1}{T} V_{T-1}^\pi(x'))
QTπ?=∑x′∈X?Px→x′a?(T1?Rx→x′a?+TT?1?VT?1π?(x′))
Q
γ
π
(
x
)
=
∑
x
′
∈
X
P
x
→
x
′
a
(
R
x
→
x
′
a
+
γ
V
γ
π
(
x
′
)
)
Q_\gamma^\pi(x)=\sum_{x'\in X}P_{x→x'}^a(R_{x→x'}^a+\gamma V_\gamma^\pi(x'))
Qγπ?(x)=∑x′∈X?Px→x′a?(Rx→x′a?+γVγπ?(x′)) 2.策略改进 立项的策略应能最大化累积奖赏:
π
?
=
arg?max
?
π
∑
x
∈
X
V
π
(
x
)
\pi^*=\argmax_\pi \sum_{x\in X}V^\pi(x)
π?=πargmax?∑x∈X?Vπ(x)
V
T
?
(
x
)
=
max
?
a
∈
A
∑
x
′
∈
X
P
x
→
x
′
a
(
1
T
R
x
→
x
′
a
+
T
?
1
T
V
T
?
1
π
(
x
′
)
)
V_T^*(x)=\max_{a\in A}\sum_{x'\in X}P_{x→x'}^a(\frac{1}{T}R_{x→x'}^a+\frac{T-1}{T} V_{T-1}^\pi(x'))
VT??(x)=maxa∈A?∑x′∈X?Px→x′a?(T1?Rx→x′a?+TT?1?VT?1π?(x′))
V
γ
?
(
x
)
=
max
?
a
∈
A
∑
x
′
∈
X
P
x
→
x
′
a
(
R
x
→
x
′
a
+
γ
V
γ
π
(
x
′
)
)
V_\gamma^*(x)=\max_{a\in A}\sum_{x'\in X}P_{x→x'}^a(R_{x→x'}^a+\gamma V_\gamma^\pi(x'))
Vγ??(x)=maxa∈A?∑x′∈X?Px→x′a?(Rx→x′a?+γVγπ?(x′)) 于是:
V
?
(
x
)
=
max
?
x
∈
A
Q
π
?
(
x
,
a
)
V^*(x)=\max_{x\in A}Q^{\pi^*}(x,a)
V?(x)=maxx∈A?Qπ?(x,a) 则最优状态-动作值函数有
Q
T
?
(
x
,
a
)
=
∑
x
′
∈
X
P
x
→
x
′
a
(
1
T
R
x
→
x
′
a
+
T
?
1
T
max
?
a
′
∈
A
Q
T
?
1
?
(
x
′
,
a
′
)
)
Q_T^*(x,a)=\sum_{x'\in X}P_{x→x'}^a(\frac{1}{T}R_{x→x'}^a+\frac{T-1}{T} \max_{a'\in A}Q_{T-1}^*(x',a'))
QT??(x,a)=∑x′∈X?Px→x′a?(T1?Rx→x′a?+TT?1?maxa′∈A?QT?1??(x′,a′))
Q
γ
π
(
x
)
=
∑
x
′
∈
X
P
x
→
x
′
a
(
R
x
→
x
′
a
+
γ
max
?
a
′
∈
A
Q
γ
?
(
x
′
,
a
′
)
)
Q_\gamma^\pi(x)=\sum_{x'\in X}P_{x→x'}^a(R_{x→x'}^a+\gamma \max_{a'\in A}Q_{\gamma}^*(x',a'))
Qγπ?(x)=∑x′∈X?Px→x′a?(Rx→x′a?+γmaxa′∈A?Qγ??(x′,a′)) 3.策略迭代与值迭代 策略迭代:策略评估→改进策略→策略评估→改进策略…… 值迭代:将策略改进视为值函数的改善,得
V
T
(
x
)
=
max
?
a
∈
A
∑
x
′
∈
X
P
x
→
x
′
a
(
1
T
R
x
→
x
′
a
+
T
?
1
T
V
T
?
1
(
x
′
)
)
V_T(x)=\max_{a\in A}\sum_{x'\in X}P_{x→x'}^a(\frac{1}{T}R_{x→x'}^a+\frac{T-1}{T} V_{T-1}(x'))
VT?(x)=maxa∈A?∑x′∈X?Px→x′a?(T1?Rx→x′a?+TT?1?VT?1?(x′))
V
γ
?
(
x
)
=
max
?
a
∈
A
∑
x
′
∈
X
P
x
→
x
′
a
(
R
x
→
x
′
a
+
γ
V
γ
(
x
′
)
)
V_\gamma^*(x)=\max_{a\in A}\sum_{x'\in X}P_{x→x'}^a(R_{x→x'}^a+\gamma V_\gamma(x'))
Vγ??(x)=maxa∈A?∑x′∈X?Px→x′a?(Rx→x′a?+γVγ?(x′))
免模型学习
学习算法不依赖于环境建模 1.蒙特卡洛强化学习 一种直接的策略评估评估替代方法是多次“采样”,然后求取平均累积奖赏来作为期望累积奖赏的近似。 由于模型未知,从V到Q转换困难,估计对象从V转变为Q。 其本质是通过多次尝试后求平均来作为期望累积奖赏的近似,但它在求平均时是“批量处理”进行的,即在一个完整的采样轨迹完成后再对所有状态-动作对进行更新。 此类算法需在完成一个采样轨迹之后再更新策略的值估计。缺点是:未充分利用强化学习任务的MDP结构。 1.1同策略蒙特卡洛学习算法 欲较好地获得值函数的估计,就需要多条不同采样轨迹。 蒙特卡洛方法进行策略评估后,进行策略改进。被评估和被改进的是同一个策略,因此称为“同策略”蒙特卡洛强化学习算法。
同策略蒙特卡洛强化学习算法最终产生的是
?
\epsilon
?-贪心策略。 1.2异策略蒙特卡洛学习算法 在策略评估时引入
?
\epsilon
?-贪心策略,在策略改进时改进原策略。 2.时序差分学习 结合了动态规划与蒙特卡洛的思路。 将蒙特卡洛强化学习的更新过程增量式进行。设对于状态-动作对
(
x
,
a
)
(x,a)
(x,a),假设基于
t
t
t个采样已估计出值函数
Q
t
π
(
x
,
a
)
=
1
t
∑
i
=
1
t
r
i
Q_t^\pi (x,a)=\frac{1}{t}\sum_{i=1}^{t}r_i
Qtπ?(x,a)=t1?∑i=1t?ri?,则在得到第
t
+
1
t+1
t+1个采样
r
t
+
1
r_{t+1}
rt+1?时,通过增量求和可得
Q
t
+
1
π
(
x
,
a
)
=
Q
t
π
(
x
,
a
)
+
α
(
R
x
→
x
′
a
+
γ
Q
t
π
(
x
′
,
a
′
)
+
Q
t
π
(
x
,
a
)
)
Q_{t+1}^\pi(x,a)=Q_{t}^\pi(x,a)+\alpha (R_{x→x'}^a+\gamma Q_{t}^\pi(x',a')+Q_{t}^\pi(x,a))
Qt+1π?(x,a)=Qtπ?(x,a)+α(Rx→x′a?+γQtπ?(x′,a′)+Qtπ?(x,a)) Sarsa算法是一个同策略算法,评估与执行均为
?
\epsilon
?-贪心策略。 将Sarsa修改为异策略算法,得到Q-学习算法
值函数近似
状态空进连续,有无穷多个状态。直接对连续状态空间的值函数进行学习。假定状态空间为n维实数空间
X
=
R
n
X=\textbf{R}^n
X=Rn,状态线性函数为:
V
θ
(
x
)
=
θ
T
x
V_\boldsymbol{\theta}(x)=\boldsymbol{\theta}^T\boldsymbol{x}
Vθ?(x)=θTx 通过上式学得值函数尽可能近似真实值函数
V
π
V^\pi
Vπ,单个样本的更新规则:
θ
=
θ
+
α
(
V
π
(
x
)
?
V
(
x
)
)
x
\boldsymbol{\theta}=\boldsymbol{\theta}+\alpha(V^\pi(\boldsymbol{x})-V(\boldsymbol{x}))\boldsymbol{x}
θ=θ+α(Vπ(x)?V(x))x 借助时序差分学习,基于
V
π
(
x
)
=
r
+
γ
V
π
(
x
′
)
V^\pi(\boldsymbol{x})=r+\gamma V^\pi(\boldsymbol{x}')
Vπ(x)=r+γVπ(x′)用当前估计的值函数代替真实值函数,即
θ
=
θ
+
α
(
r
+
γ
θ
T
x
′
?
θ
T
x
)
x
\boldsymbol{\theta}=\boldsymbol{\theta}+\alpha(r+\gamma\boldsymbol{\theta}^T\boldsymbol{x}'-\boldsymbol{\theta}^T\boldsymbol{x})\boldsymbol{x}
θ=θ+α(r+γθTx′?θTx)x
模仿学习
机器能获得人类专家的决策过程返利,从范例中学习,称为“模仿学习”。 1.直接模仿学习 假定获得一批人类专家决策轨迹数据
{
τ
1
,
τ
2
,
.
.
.
,
τ
m
}
\{ \tau_1,\tau_2,...,\tau_m\}
{τ1?,τ2?,...,τm?},每条轨迹包含状态和动作序列
τ
i
=
<
s
1
i
,
a
1
i
,
s
2
i
,
a
2
i
,
.
.
.
,
s
n
i
+
1
i
>
\tau_i=< s_1^i,a_1^i,s_2^i,a_2^i,...,s_{n_i+1}^i>
τi?=<s1i?,a1i?,s2i?,a2i?,...,sni?+1i?>,其中
n
i
n_i
ni?为第i条轨迹中的转移次数。 可利用监督学习来符合人类专家决策轨迹数据的决策。 将轨迹上所有“状态-动作对”抽取出来,构造一个新的数据集合
D
D
D,即吧状态作为特征,动作作为标记,然后对这个新构造出的数据集合D适用分类或回归算法即可学得策略模型。学得的策略可作为机器新型强化学习的处事策略,在通过强化学习方法基于环境反馈进行改进,获得更好策略。 2.逆强化学习 设计奖赏函数困难,从人类专家提供的范例数据中反推出奖赏函数。 基本思想:欲使机器做出与范例一致的行为,等价于在狗哥奖赏函数的环境中求解最优策略,该最优策略所产生的轨迹与范例数据一致。也就是说,我们要寻找某种奖赏函数使范例数据最优,即可使用这个江上寒暑来训练强化学习策略。 假设将行函数能表达为状态特征的线性函数,即
R
(
x
)
=
w
T
x
R(\boldsymbol{x})=\boldsymbol{w}^T\boldsymbol{x}
R(x)=wTx,策略
π
\pi
π的积累奖赏可写为
ρ
π
=
w
T
E
[
∑
t
=
0
+
∞
γ
t
x
t
∣
π
]
\rho^\pi=\boldsymbol{w}TE[\sum_{t=0}^{+\infty}\gamma^t\boldsymbol{x}_t|\pi]
ρπ=wTE[∑t=0+∞?γtxt?∣π] 即状态向量加权和的期望与系数
w
\boldsymbol{w}
w的内积。 将向量期望
E
[
∑
t
=
0
+
∞
γ
t
x
t
∣
π
]
E[\sum_{t=0}^{+\infty}\gamma^t\boldsymbol{x}_t|\pi]
E[∑t=0+∞?γtxt?∣π]简写为
x
ˉ
π
\bar{\boldsymbol{x}}^\pi
xˉπ,可用蒙特卡洛方法通过采样近似期望。可将每条范例轨迹上的状态加权求和再平均,记为
x
ˉ
?
\bar{\boldsymbol{x}}^*
xˉ?,于是有:
w
?
=
arg?max
?
w
min
?
π
w
T
(
x
ˉ
?
?
x
ˉ
π
)
\boldsymbol{w}^*=\argmax_{w}\min_\pi \boldsymbol{w}^T(\bar{\boldsymbol{x}}^*-\bar{\boldsymbol{x}}^\pi)
w?=wargmax?minπ?wT(xˉ??xˉπ)
s
.
t
.
∣
∣
w
∣
∣
≤
1
s.t. ||\boldsymbol{w}||\leq1
s.t.∣∣w∣∣≤1
|