深入浅出强化学习原理入门

第2章 马尔可夫决策过程

  • 马尔可夫性, 当前系统的下一个状态仅与当前状态有关,而与以往状态无关
  • 马尔可夫过程,以一定的概率在有限状态下转换,吃饭睡觉打豆豆。。。
  • 马尔可夫决策过程,马尔可夫决策过程(S,A,P,R,$\gamma$),S是有限状态集合,A是有限动作集合,P为状态转移,R是回报函数,$\gamma$是折扣因子,马尔可夫决策过程与马尔可夫过程不同的是它的动作是带转移概率的
  • 强化学习的目标是在给定的马尔可夫决策过程中寻找最优策略,这个策略指的是状态到动作的映射,在q-learning中,这个策略就是q表,第一维是状态,第二维是动作
  • 策略,所谓策略是指状态到动作的映射,在q-learning中指的是从一个状态转移到下一个状态到概率
  • 状态值函数V,智能体在状态s时采用策略$\pi$采取一系列连续动作得到的累积回报的期望,详细一点就是智能体处于状态s,采用策略pi后所有一系列动作得到的回报累积,这里之所以要加期望,是因为有些策略采取的动作是概率,比如书中的例子一个人在某个状态睡觉打游戏是有一定概率大,都有可能发生—挖坑,书中图2.4圆圈中的状态值函数是怎么计算出来的?
  • 状态行为值函数Q,智能体在状态s时采取一步动作后进入下一个状态得到的状态值函数
  • 挖坑—什么是贝尔曼方程?
    ###第3章 基于模型的动态规划方法

理解公式$v_{k+1}(s) = \sum_{a\in A}\pi(a|s)(R_s^a+\gamma\sum_{s^\in S}P_{ss}v_k(s`))$就行

强化学习中主要使用值函数进行策略评估和策略改善,即训练与推理。上面的公式就是值函数迭代的公式(高斯塞德尔迭代法),从图3.7理解,当前状态的值函数等于采取所有动作得到的回报并加上所到达状态的值函数的期望,具体计算方法见图3.7下面的那个计算例子。

利用值函数进行推理采用贪婪策略,即从当前状态出发,把所有可以采取的动作都做一遍,哪个回报大就采用哪个动作

第4章 基于蒙特卡罗的强化学习方法

  • 蒙特卡罗积分,求某个函数在某个区间的定积分,将函数先乘以某个分布已知的函数$\pi(x)$,然后在这个已知的分布上采样,最后求和的均值。
  • 原理,和动态规划的一样,有衡量在某个状态s采取一些列动作获得回报和的状态值函数V,有Q函数,不同的是动态规划的值函数是迭代出来的,蒙特卡洛方法的V函数是采样然后计算出来的
  • 同策略,产生数据的策略和要评估改善的策略是同一个策略,即训练的时候在状态s采取的动作和在推理的时候在状态s采取的动作是否一致,dqn中就是异策略,训练的时候为了尽可能走过所有的状态,状态到动作映射会覆盖所有的状态,但是推理的时候只会选取最有的策略

第5章 基于时间差分的强化学习方法

TD方法:$V(S_t)<-V(S_t)+\alpha(R_{t+1}+\gamma V(S_{t+1})-V(S_t))$

值函数等于上一步的值函数的一个比例加上当前动作后的reward和下一个状态的值函数

  • 时序差分方法,蒙特卡罗方法,动态规划方法的区别与联系,动态规划方法用空间换时间,把每个动作后的Q表都记录下来,在求某个状态的值函数时,在采取了某个动作走到下一个状态时,下一个状态的Q值已经记录下来了,由上一次记录并存储下来,举例见书中图3.7,这个方法需要知道状态的转移概率,在每个状态,采取哪个动作的概率都是需要已知,这个现实中是 不好弄的;蒙特卡罗可以解决动态规划需要状态转移矩阵的问题,它从随机初始状态开始,通过多次实验,统计从状态s到最终状态得到的奖励,缺点是效率低,每次都需要等到实验做完,且需要多次实验;时间差分结合了两者优势,用Q表存储记录每次实验后的状态值函数,但是像蒙特卡洛方法一样不停的与周围环境交互得到新数据,不要先验概率

TD($\lambda$):TD方法使用了下一个状态的值函数,TD($\lambda$)使用多个

动态规划,蒙特卡洛,时间差分的对比

蒙特卡洛:$Q(s,a)\leftarrow Q(s,a) + \alpha(G_t - Q(s,a))$

在状态s处的状态行为值函数为状态行为值函数+随机试验到状态s时的累积回报(挖坑,Q不是不记忆的吗?)

时间差分:$Q(s,a)\leftarrow Q(s,a)+\alpha(r + \gamma Q(s,a)- Q(s,a))$

时间差分用空间换时间,用一张Q表记录以前做过的试验,更新的时候通过走一步进入状态s`,并加上以前记录的状态s·共同得到状态s处的状态行为值函数,

###第6章 基于值函数逼近的强化学习方法

  • 基于值函数逼近理论,在Q-learning,时间差分,蒙特卡洛等方法中,使用Q表记录在什么样的状态采取什么动作会得到什么回报值,基于值函数逼近的就是使用参数$\theta$表示值函数,输入状态和动作,得到回报的值函数
  • dqn, $Q(s,a)\leftarrow Q(s,a)+\alpha(r + \gamma Q(s,a)- Q(s,a))$

​ $\theta_{t+1}=\theta + \alpha[r + \gamma max_{a}Q(s,a`;\theta)- Q(s,a;\theta)] \Delta (Q(s,a;\theta))$

计算TD目标网络的参数$r + \gamma max_{a}Q(s,a`;\theta)$的参数为$\theta^-$,而计算值函数的网络参数为$\theta$,一条数据包括当前状态$s_1$,采取动作a,立即回报r,下一个动作$s_2$,取出数据训练时,$\theta$每一步都更新,$\theta^-$每隔一定步数才更新;计算的方法为用贪婪策略在某些状态选取动作,存储一下数据,然后采样通过上式子更新参数$\theta$,目标网络参数只计算,等到若干步以后,才将Q函数的$\theta$更新到目标函数的Q函数中

第7章 基于策略梯度的强化学习方法

直接搜索策略

###第8章 基于置信域策略优化的强化学习方法

  • TRPO Trust Region Policy Optimization基于置信域策略优化
  • $\eta(\tilde\pi)=\eta(\pi) + E_{s_0,a_0…\tilde\pi}[\sum_{t=0}^{\infty}\gamma^tA_{\pi}(s_t,a_t)]$,为了搜索好的策略,即关于的策略函数每前进一步,回报函数都会比以前的好,需要更好的$\theta$的步长,或者把回报函数更改为旧回报函数加上一项不小于0的新值,以保证递增,$A_{\pi}(s,a)=Q_{\pi}(s,a)-V_{\pi}(s)$
  • 信息论,$H(P,Q)=-\int P(x)logQ(x){\rm d}x$,交叉熵常用来作为机器学习的损失函数,真是样本分布是$P(x)$,模型概率分布是$Q(x)$,两者相等时最小
  • 优化方法,最速下降法,就是朝着导数方向前进,应该就是梯度下降法;牛顿法,使用二阶导数性质的梯度下降法,$x_{k+1}=x_k + d_k$, $G_kd_k=g_k$,$g_k$是一阶导数,$G_k$是二阶导数,反正就是迭代更新参数x

第9章 基于确定性策略搜索的强化学习方法

随机策略指在状态s确定时,智能体采取的动作不一定是一样的,但是确定性策略则不一样,在状态s一定是,它所采取的动作一定是一样的。

  • Actor-Critic- Algorithm,行动与评估策略,行动策略是随机的以保证可以探索环境,评估策略是确定性的
  • ddpg,$r_t+\gamma Q^w(s_{t+1},u_{\theta}(s_{t+1})-Q^w(s_t, a_t))$,行动策略网络是$u$,参数为$\theta$,评估网络$Q$,参数是$w$,训练的时候采用贪婪策略探索环境,使用确定性策略更新Q,评估的时候使用Q函数
  • DQN和DDPG的区别,DQN时离散的,DDPG时连续的;DQN只有一个网络,DDPG有两个网络;

###第10章 基于引导策略搜索的强化学习方法

无模型时,智能体通过向环境试错得到策略网络,gps算法先通过控制相从数据中获取好的数据,监督相从控制相产生的数据学习模型;之所以要这么干的原因是有些网路有成千上万个参数,用常见的环境试错,无法从环境中学习到好的策略

第11章 逆向强化学习

通常强化学习的回报函数都是人为经验给出的,但是这个是很主观的,逆向强化学习就是为了解决如何学习强化学习回报而来的。

  • 学徒学习方法,智能体从专家示例中学习回报函数
  • 最大边际规划方法,先建模$D={(x_i,A_i,p_i,F_i,y_i,L_i)}$从左到右依次为状态空间,动作空间,状态转移概率,回报函数的特征向量,专家轨迹,策略损失函数,学习者要照一个特征到回报的现行映射