强化学习入门

1. 强化学习的应用场景

在强化学习中,一般包括状态s、动作a、奖励r等元素,状态s表示目前任务所处的环境状态,动作a表示我们面对状态s的环境该做出什么动作,奖励r表示当我们在状态s时做出了动作a时,所得到的奖励。

举个简单的例子,当我们在玩俄罗斯方块时,目前游戏中各个方块所处的位置即为状态s,而我们根据各个方块的状态做出相应的操作动作,比如旋转或左移、右移即将落下的方块,则为动作a,而该动作所带来的得分即为奖励r。

在强化学习任务中,我们希望面对状态s做出最优的动作a,使得最终的奖励和是最大的,比如在俄罗斯方块游戏中获得最多的分数。根据状态s做出相应的最优的动作a,我们称为策略$\pi(a|s)$。强化学习的目标即找到可以得到最大奖励的策略$\pi(a|s)$。

2. 马尔科夫决策过程

在明确了强化学习应用场景以后,自然需要考虑如何对该类问题进行求解。马尔科夫决策过程是一种比较常见的方法。

马尔科夫过程是具有马尔科夫性的随机序列随机变量序列 ,马尔科夫性是指当前时刻的状态只与前一时刻的状态有关,而与之前的状态无关,即:

马尔科夫决策过程是指在马尔科夫过程中加入了动作a的额外变量,即当前时刻的状态不仅和上一时刻的状态有关,且和上一时刻做出的动作有关,即,如下图所示即为一个马尔科夫决策过程。

3. 强化学习的目标函数

强化学习的目标是希望整个决策过程完成以后,获得的回报可以尽可能的多。因此,我们可以将获得的总回报作为最终的优化目标。总回报R可以表示为:

我们需要考虑的一个问题是,远期的回报可能并不是确定的。因为未来可能出现的环境状态一定程度上是随机的,我们在计算远期回报时都计算的是期望,我们无法确定在当前时刻做出同一个动作未来的回报是否一定是相同的,所以,未来的回报需要打个折扣折算到当前时刻,这个概念和未来现金流的贴现是很类似的。假设折扣率为$\gamma$,则考虑折扣的总回报为:

$\gamma$一般介于[0, 1]之间,当$\gamma$值较大时,远期权重会变大,当$\gamma$值较小时,远期权重变小,更多看重的是短期回报。

4. Q函数

Q函数的自变量是状态s和动作a,计算的是状态s下做出动作a最终的回报。即$Q(s,a) = R$。根据确定的Q函数,我们很容易确定最优策略:

在强化学习中,主要的问题都围绕着如何求解Q函数,Q函数的求解过程称为Q-learning。

5. 学习过程

让我们假设一下,在一个简单的游戏中,状态s和动作a都非常有限,我们可以通过穷举的方法,列出所有的,计算出最终的回报,这样就得到了Q函数,我们也就得出了最优策略。然而在实际场景中,状态s和动作a往往都非常大,所以Q函数非常难以求解,这才会出现了各种求解Q函数的学习方法。在贝尔曼方程方法中,通过贝尔曼方程迭代优化随机初始化的Q函数,当Q函数收敛时,即可得到最优策略;在蒙特卡罗方法中,通过初始化的策略采样和环境的交互样本,根据这些样本来确定Q函数,从而得到最优策略;而在深度学习方法中,使用了网络模型模拟Q函数,从而确定最优策略。

5.1 贝尔曼方程

因为当前时刻的Q函数可以推导为当前时刻的回报r加上下一时刻的最大的回报,即推导为子问题:

因为下一时刻的状态ss是随机的,所以下一时刻的最大回报为 各个状态下最大回报的期望。

贝尔曼方程也称为动态规划方程,是的,就是那个背包问题里的动态规划问题^_^

有了贝尔曼方程以后,在计算Q(s,a)时,我们并不需要将游戏一直玩下去,根据下一时刻的Q函数即可确定当前的Q值。所以,我们可以先随机初始化Q函数,然后通过贝尔曼方程进行迭代优化Q函数,直到Q函数收敛。具体算法如下

初始化Q[num_state, num_action];

重复:

​ 选择状态s和执行动作a;

​ Q(s, a) $\leftarrow$

直到 收敛

这种方法有点类似EM算法,在迭代中会使得Q函数一直逼近最终值,最后收敛。当Q函数收敛后,即可确定最优策略:

5.2 蒙特卡罗

贝尔曼方程的应用有两个重要的必要条件:

  1. 需要知道状态转移概率,这样才可以确定下一时刻的回报期望
  2. 需要知道回报函数,否则计算当前的回报值

在蒙特卡罗方法中,我们假设策略是已知的,根据策略和环境不停地交互,通过采样的方法确定Q函数,在得到Q函数后,即可更新优化策略,再进行交互采样更新Q函数,不断重复直到收敛。

在该方法中,如果策略是确定的,则每次与环境的交互路径都是相同的,则无法计算其他动作的Q函数,称为对当前策略的利用,缺少了对环境的探索。为了平衡利用和探索,一般采用$\epsilon​$-贪心法,对于一个目前策略$\pi​$,其对应的$\epsilon​$-贪心法为:

该方法按照$\epsilon$的概率在候选动作中随机挑选执行动作,按照$1-\epsilon$的概率选择既定的策略$\pi$进行动作执行,这样可以保证采样的轨迹尽量覆盖所有的状态和动作,以求得更好的策略。

5.3 深度学习

既然Q函数如此难以找到,而网络模型具有超好的模拟能力,为什么不用深度学习进行Q函数的学习呢。使用网络模型进行Q函数的学习即为深度学习的方法。

在强化学习中的的深度学习与普通的监督学习或者非监督学习有一些区别,比如强化学习中训练样本具有相关性,数据分布会跟随训练过程发生变化等等,所以,需要作出相应的改进才能取得比较好的效果,最经典的就是由DeepMind提出的DQN。之后会对经典的深度强化学习模型进行分析。