本文档记录了《机器学习》第 16 章强化学习相关内容
任务与奖赏
形式化表示
- 环境 E=⟨X,A,P,R⟩
- 状态 x∈X
- 动作 a∈A
- 状态转移概率 P:X×A×X↦ℝ
奖赏 R:X×A×X↦ℝ
一些应用中奖赏函数可能仅与状态转移有关: R:X×X↦ℝ
“机器”与“环境”的界限
在环境中状态的转移、奖赏的返回是不受机器控制的,机器只能通过选择要执行的动作来影响环境,也只能通过观察转移后的状态和返回的奖赏来感知环境。
策略(Policy)
- 确定性策略: π:X↦A
- 随机性策略: π:X×A↦ℝ ,有 ∑aπ(x,a)=1
奖赏
-
T
步累计奖赏:
?[1T∑Tt=1rt] - γ 折扣累计奖赏: ?[∑+∞t=0γtrt+1]
K
-摇臂赌博机
离散状态空间、离散动作空间
最大化单步奖赏
- 需要知道每个动作带来的奖赏
- 执行最大奖赏的动作
获知每个摇臂的期望奖赏
仅探索
将所有尝试机会平均分配给每个摇臂,以每个摇臂各自的平均吐币概率为奖赏期望的近似估计。
可以很好地估计每个摇臂的奖赏,但由于探索的存在常常会失去选择最优摇臂的机会。
仅利用
选取目前最优(平均奖赏最大)的摇臂。很难对摇臂的期望奖赏有一个较好的估计,从而选不到最优摇臂。
ϵ -贪心
基于
ϵ
的概率对探索和利用进行折中
离散状态空间、离散动作空间
仅探索
将所有尝试机会平均分配给每个摇臂,以每个摇臂各自的平均吐币概率为奖赏期望的近似估计。
可以很好地估计每个摇臂的奖赏,但由于探索的存在常常会失去选择最优摇臂的机会。
仅利用
选取目前最优(平均奖赏最大)的摇臂。很难对摇臂的期望奖赏有一个较好的估计,从而选不到最优摇臂。
基于 ϵ 的概率对探索和利用进行折中
第
k
个摇臂第
如何确定 ϵ
- 摇臂奖赏不确定性较大,则选用较大的 ϵ
- 摇臂奖赏不确定性较小,则选用较小的 ϵ
Softmax
基于当前已知的摇臂平均奖赏对探索和利用进行折中
摇臂概率的分配
基于 Boltzmann 分布
有模型学习
假定任务对应的马尔科夫决策过程四元组
E=⟨X,A,P,R⟩
均已知,即机器已对环境进行了建模,能在机器内部模拟出与环境相同或近似的状况,从状态
x
执行动作
策略评估
状态值函数 V(⋅) :指定状态上的累积奖赏
T 步累积奖赏
VπT(x)=?π[1T∑t=1Trt|x0=x]
VπT(x)=∑a∈Aπ(x,a)∑x′∈XPax→x′(1TRax→x′+T−1TVπT−1(x′))γ 折扣积累奖赏
Vπγ(x)=?π[∑t=0+∞γtrt+1|x0=x]Vπγ(x)=∑a∈Aπ(x,a)∑x′∈XPax→x′(Rax→x′+γVπT−1(x′))
状态-动作值函数 Q(⋅) :指定状态-动作上的累积奖赏
T 步累积奖赏
QπT(x,a)=∑x′∈XPax→x′(1TRax→x′+T−1TVπT−1(x′)) γ 折扣积累奖赏
Qπγ(x)=∑x′∈XPax→x′(Rax→x′+γVπT−1(x′))
策略改进
一个强化学习可能会有多个最优策略,最优策略对应的的值函数 V∗ 称为最优值函数:
其中, π∗=argmaxπ∑x∈XVπ(x) 。
最优值函数
T 步累积奖赏
V∗T(x)=maxa∈A∑x′∈XPax→x′(1TRax→x′+T−1TV∗T−1(x′)) γ 折扣积累奖赏
V∗γ(x)=maxa∈A∑x′∈XPax→x′(1TRax→x′+T−1TV∗γ(x′))
最优状态-动作值函数
最优值函数 V∗(x)=maxa∈AQπ∗(x,a)
T 步累积奖赏
Q∗T(x,a)=∑x′∈XPax→x′(1TRax→x′+T−1Tmaxa′∈AQ∗(x,a′)) γ 折扣积累奖赏
Q∗γ(x)=∑x′∈XPax→x′(Rax→x′+γmaxa′∈AQ∗(x,a′))
策略迭代与值迭代
策略迭代(采用 sum)
从一个初始策略出发,先进行策略评估,再进行策略改进,不断迭代直到策略收敛。
值迭代(采用 max)
策略迭代每次改进完都要进行评估,较为耗时,可将策略改进视为值函数的改进。
免模型学习
相比有模型学习,实际任务中环境的转移概率、奖赏函数、状态数很难得知,无法依赖环境建模。
蒙特卡洛(Monte-Carlo)强化学习
策略评估替代方法
- 多次采样,然后取平均累积奖赏作为期望累积奖赏的近似
- 策略估计由状态值函数
V
改为 状态-动作值函数
Q 的原因:策略是通过 Q 获得的,当模型未知时很难通过V 得到 Q 。
同策略
评估与改进的策略相同,采用
- 随机采样
s
条轨迹,每条轨迹长为
T ,每个时刻为一个三元组 (xt,at,rt+1) ,最后一个时刻只有状态 - 对每个时刻
t∈[0,T−1]
计算当前累积奖赏
R=1T−t∑Ti=t+1ri
,利用
R
更新平均奖赏
Q(xt,at) - 更新策略
π(x,a)
:
- 以 1−ϵ 的概率取当前平均奖赏最大的动作 π(x,a)=argmaxa′Q(x,a′)
- 以 ϵ 的概率随机选取动作
异策略
引入 ϵ -贪心是为了便于策略评估,但最终希望改进的是原始确定性策略。
- 随机采样
s
条轨迹,每条轨迹长为
T ,每个时刻为一个三元组 (xt,at,rt+1) ,最后一个时刻只有状态 - 计算选取每个动作
ai
的概率
pi
:
- ai=π(xi):1−ϵ+ϵ/|A|
- ai≠π(xi):ϵ/|A|
- 对每个时刻
t∈[0,T−1]
计算当前累积奖赏
R=1T−t∑Ti=t+1ri∏T−1t=t+1?(ai=π(xi))pi
,利用
R
更新平均奖赏
Q(xt,at) - 更新策略 π(x,a) :取当前平均奖赏最大的动作 π(x,a)=argmaxa′Q(x,a′)
时序差分(Temporal Difference)学习
蒙特卡洛强化学习算法效率较低,并且没有充分利用强化学习任务的 MDP 结构,TD 学习则结合了动态规划与蒙特卡洛方法的思想,将蒙特卡洛批处理式更新状态-动作值函数更改为增量式进行。
对值函数的估计
设基于
t
个采样估计出的值函数
其中 rt+1−Qπt(x,a) 称为 MC 误差。
原始状态-动作值函数
增量求和
-
x′
表示前一次在状态
x
执行动作
a 后转移到的状态 - a′ 是策略 π 在状态 x′ 上选择的动作
- Qπt(x,a) 是老的估计的回报
- Qπt(x′,a′) 是新的回报
同策略 Sarsa
- x=x0,a=π(x)
- 对每个时刻在环境
E
中执行动作
a ,得到奖赏 r 和转移状态x′ - 根据当前转移状态 x′ 和 ϵ -贪心策略获得下一动作 a′ ,即 a′=πϵ(x′)
- 更新状态-动作值函数: Q(x,a)=Q(x,a)+α(r+γQ(x′,a′)−Q(x,a))
- 更新策略: π(x)=argmaxa″Q(x,a″)
- x=x′,a=a′ ,循环 2-5
异策略 Q-Learning
- x=x0,a=π(x)
- 对每个时刻在环境
E
中执行动作
a ,得到奖赏 r 和转移状态x′ - 根据当前转移状态 x′ 和 原始策略获得下一动作 a′ ,即 a′=π(x′)
- 更新状态-动作值函数: Q(x,a)=Q(x,a)+α(r+γQ(x′,a′)−Q(x,a))
- 更新策略: π(x)=argmaxa″Q(x,a″)
- x=x′,a=a′ ,循环 2-5
值函数近似
值函数能表示为一个数组,最简单情况下能表达为状态的线性函数:
以异策略为例,可以得到如下强化学习算法:
- x=x0,a=π(x)=argmaxa″θ⊤(x;a″)
- 对每个时刻在环境
E
中执行动作
a ,得到奖赏 r 和转移状态x′ - 根据当前转移状态 x′ 和 ϵ -贪心策略获得下一动作 a′ ,即 a′=πϵ(x′)
- 更新值函数: θ=θ+α(r+γθ⊤(x′;a′)−θ⊤(x;a))(x;a)
- 更新策略: π(x)=argmaxa″θ⊤(x;a″)
- x=x′,a=a′ ,循环 2-5
模仿学习
借鉴专家的决策过程范例,如迭代式强化学习算法:
- 从范例轨迹中计算得到状态的加权和均值向量 x¯∗
- 初始化随机策略 π
- 第
t
次从策略中采样,通过轨迹计算状态的加权和均值向量
x¯∗t - 计算最小化向量: w∗=argmaxwminti=1w⊤(x¯∗−x¯∗t) ,保证 ∥w∥≤1
- 根据环境 ⟨X,A,R(x)=w∗⊤x⟩ 更新策略 π