B站听课笔记:
对强化学习原理的基本了解,后续将深入学习。
学习强化学习的目标:一个是原理部分,另一是实践和编程部分。
原理部分花费大量时间——数学性强,系统性强
状态值——从一个状态出发,沿着一个策略,所得到奖励回报的平均值。
v π ( z ) = E [ G t ∣ S t = s ] . \ v_\pi (z) = \ E[ \ G_t | \ S_t = s]. vπ(z)= E[ Gt∣ St=s].
状态值越高,说明对应的策略越好;状态值越低,说明沿着该策略得到的奖励是较少的。
状态值能去评价一个策略的好坏
分析状态值的工具——描述所有状态,状态值之间的关系
v π = r π + γ P π v π \ v_\pi = r_\pi + \gamma P_\pi v_ \pi vπ=rπ+γPπvπ
widely used later
强化学习的最终目的:求解最优策略
Bellman optimality equation: v = m a x π ( γ P π v ) = f ( v ) \ v = \ max_{\pi} (\gamma P_\pi v) = f(v) v= maxπ(γPπv)=f(v)
1、不动点原理 fixed-point theorem——解释了两个方面
2、fundamental problems 基础性的问题,一定有解。
3、an algorithm solving the equation
widely used later
首要的最优策略算法
value iteration 值迭代 ——第三章的bellman最优策略公式的迭代表达
policy iteration 策略迭代——第五章应用
truncated policy iteration 值迭代和策略迭代的统一方式
迭代算法中的两个子步骤:Policy update 和 value update,widely used later
两个步骤不断迭代,从而得到最优策略。
需要模型
没有模型的情况,可以用蒙托卡罗强化学习算法。
E [ X ] ≈ x ˉ = 1 n ∑ i = 1 n x i E[X] ≈ \bar{x} = \frac {1}{n} \sum _{i=1}^{n} x_i E[X]≈xˉ=n1i=1∑nxi
随机变量的期望值E[X]
1、MC basic——将第四章中policy iteration中的依赖于模型的那部分更换为依赖于数据的。
实际情况不能用,效率非常低
2、MC exploring starts
3、MC ϵ \epsilon ϵ-greedy
过渡章节,从非增量到增量
估计一个随机变量的期望值E[X],两种方法:
non-incremental——将所有采样全部采到后,一次性求平均,得到E[X]的近似。
incremental——开始有估计值,得到一个采样后,对估计值更新一次,从而使得估计值越来越准。在样本采样的过程中,就可以用该值了,虽然该值可能不太准确。
1、Robbins-Monro (RM) algorithm——实际上是在求解一个函数等于0的方程。
即RM算法是为了求解 ω \omega ω 取什么值时, G ( ω ) = 0 G(\omega) =0 G(ω)=0成立。
RM算法不需要知道函数表达式、梯度、导数等均不需要知道就可以求出来。
2、Stochastic gradient descent (SGD)——随机梯度下降,一种特殊的RM算法。
3、SGD,BGD,MBGD的比较
BGD:batch gradient descent
MBGD:mini-batch gradient descent
增量式算法的思想和SGD的思想,widely used later
一种非常经典的方法
1、TD learning of state values
利用TD的方法来学习state values,能比较好地揭示TD方法地思想是什么。
chapter5利用蒙托卡罗的方法来计算state value,chapter4利用模型来计算state value,本章利用时序差分的方法来计算state value。
2、Sarsa: TD learning of action values
利用TD的思想来学习action value,并以此为依据去更新策略,得到一个新的策略再得到一个新的action value,这样不断循环下去就能不断地去改进策略,直到最后得到一个最优的策略。
3、Q-learning:TD learning of optimal action values
直接计算 optimal action values,是一个 off-policy算法。
4、Unified point of view
统一化视角——很多算法,实际上它的表达式非常类似,其求解的数学问题也非常类似。
第七章及以前部分,全都是基于表格形式的。
即:每一个状态都对应一个状态值 v π ( s ) v_\pi (s) vπ(s),这些状态值存在一个表格或向量中。访问和修改都非常容易。
但是,当状态非常多或者状态是连续的,这种表格形式的效率比较低下或不再适用了。这时候用函数的形式去代替。
即函数 v ^ ( s , ω ) \hat{v}(s,\omega) v^(s,ω)能够和真实的 v π ( s ) v_\pi (s) vπ(s)越接近越好。
1、State value estimation with value function approximation (VFA):
m i n ω J ( ω ) = E [ v π ( S ) − v ^ ( S , ω ) ] min_{\omega} J(\omega) = E[v_\pi (S)- \hat v(S,\omega)] minωJ(ω)=E[vπ(S)−v^(S,ω)]利用VFA思想去来做state value estimation。
2、Sarsa with VFA
VFA思想与Sarsa相结合,来估计action value,再和policy improvement相结合,不断迭代来得到最优策略。
3、Q-learning with VFA
VFA思想与Q-learning相结合,来估计action value,再和policy improvement相结合,不断迭代来得到最优策略。
4、Deep Q-learning
DQN里面有很多技术,比如:用两个网络或者经验回放等
神经网络是函数非常好的一个表达方式,本章中,神经网络首次进入强化学习中。
第九章、第十章都是policy-based的方法。
1、Metrics to define optimal policies:
J ( θ ) = v ˉ π + r ˉ π J(\theta) = \bar v_\pi + \bar r_\pi J(θ)=vˉπ+rˉπ
1)明确目标函数 v ˉ π 和 r ˉ π \bar v_\pi 和 \bar r_\pi vˉπ和rˉπ;
2)求目标函数的梯度;
3)用梯度上升或梯度下降对目标函数进行优化。
2、Policy gradient:目标函数所对应的梯度Policy gradient
∇ J ( ω ) = E [ ∇ θ l n π ( A ∣ S , θ ) q π ( S , A ) ] \nabla J(\omega) = E[\nabla_\theta ln \pi(A| S,\theta) q_\pi(S,A)] ∇J(ω)=E[∇θlnπ(A∣S,θ)qπ(S,A)]
著名的Policy gradient定理。该定理直接给出来它的梯度。
相对来说求该梯度是一个比较复杂的过程。仅熟悉该表达式即可。
3、Gradient-ascent algorithms (REINFORCE)
θ t + 1 = θ t + α ∇ θ l n π ( a t ∣ s t , θ t ) q t ( s t , a t ) \theta _{t+1} = \theta _{t} + \alpha \nabla_\theta ln \pi(a_t| s_t,\theta _t) q_t(s_t,a_t) θt+1=θt+α∇θlnπ(at∣st,θt)qt(st,at)
当有了梯度,就可来做梯度上升,去最大化目标函数。此时可用到一个非常经典的Policy gradient的方法——REINFORCE
将第九章和第八章的内容结合在一起。本章的actor-critic方法就是第九章的policy gradient方法。
为了突出value所起到的作用。其中的actor对应的是policy update,critic对应的是value。
1)The simplest actor-critic (QAC)
即为上式。
Advantage actor-critic (A2C)
引入一个baseline来减小估计的方差。
Off-policy actor-critic
actor-critic本质上还是policy gradient,policy gradient自然的是一种on-policy的算法。可以用importance sampling(重要性采样)来变成Off-policy的算法。
所有的on-policy都可以用重要性采样来变成off-policy
以上三种方法都要求策略是随机的,也就是在每个状态,都能概率选择到所有的action
用数学语言去描述一个问题,是最高效的一种方法。