强化学习 - 详细解读DQN

一. 强化学习

1. 什么是强化学习问题?

强化学习 - 详细解读DQN
强化学习是机器学习领域的三大分支之一,深度学习+强化学习也被认为是通往通用AI的道路。
强化学习 - 详细解读DQN
强化学习问题可以描述为agent从environment中获取观察的state和获取reward,并产生action作用于environment。如上图描述所示。用数学语言描述就是Markov Decision Process(MDP)。

2. 强化学习的理论体系

(1). MDP

强化学习问题可以用MDP来描述。在说MDP之前,需要先了解Markov Property和Markov Process。

Markov Property

强化学习 - 详细解读DQN
简言之,当前状态包含了过去所有状态的信息,一旦当前状态信息已知,过去状态信息就可以抛弃。
Markov Property除了包含有这一信息,还有就是状态转移概率P\Rho
强化学习 - 详细解读DQN

Markov Process

在说MDP之前要说的就是Markov Process了。
强化学习 - 详细解读DQN
下面是Markov Process的例子。
强化学习 - 详细解读DQN
左面的图是Markov Process的实际体现。圆圈中代表不同的state,以及曲线上的状态转移概率(state transition probability)。

我们可以从这个描述中随机的取样,以Class1Class 1为初始状态,上图右侧是部分sample的episodes(即从初始状态到终止状态的路径,包含所有走过的中间状态)。

描述了从Markov Process中sample episodes后,对应的就是在sample时各个state之间的转移概率。下图描述的便是状态转移概率。
强化学习 - 详细解读DQN

Markov Decision Process

说完了Markov PropertyMarkov Process,现在应该说一下Markov Decision Process了。
强化学习 - 详细解读DQN
MDP中除了之前说的S,PS,P之外,还有A(action),R(reward),γA(action),R(reward),\gamma等信息,所有的这些才构成了MDP的要素。

强化学习问题是通过找到最优的策略(对应MDP的元素,也就是选择最优的statestate,在不同的statestate上选择最优的actionaction)来使获得的rewardreward最大。

我们将会逐渐的说明所有要素后再回顾MDP的完整架构。

(2). R(reward)R(reward)

rewardreward的定义如下:
强化学习 - 详细解读DQN
为什么是从Rt+1R_{t+1}开始呢,是因为回报函数的意义是在tt时刻,执行一步actionaction后到下一状态的回报值.
我们可以通过上面提到的那个例子, 把rewardreward的部分添加上, 来理解GtG_{t}式子的意义.
从图中可以看到, 只有从一个状态转移到另一个状态的时候, 才会有奖励值, 这个设置方式正是MDP的设置方式.
强化学习 - 详细解读DQN
为什么需要有γ\gamma ?
强化学习 - 详细解读DQN
γ\gamma越接近0,表示越注重当前回报,当γ=0\gamma=0时,Gt=Rt+1G_{t}=R_{t+1}, 表示只以执行一次actionaction后的rewardreward作为最终的rewardreward, 此时系统只关注眼前的利益.
γ\gamma越接近1, 表示系统的眼光更长远, 当γ=1\gamma=1时, GtG_{t}代表从当前步一直到目标所有的奖励值之和, 考虑到所有的奖励情况.

现在, 我们已经有个rewardreward的计算公式, 只要遍历MDP结构的所有结点, 就可以得到GtG_t的最大值, 也就可以得到相应的最优的策略. 但问题是, 对于小规模的问题, 这样计算没有问题, 但是大规模的问题, 只有当某个statestate开始, 已知到目标全部遍历完成, 才可以得到这个statestate能获得的最终的rewardreward, 计算效率很低.

因此, 再引入一个概念, valuefunctionvalue function.

(3). Value FunctionValue\ Function

强化学习 - 详细解读DQN
从定义来看, value functionvalue \ function就是在StS_t状态下回报的期望值.
从实际意义来理解,就是从StS_t状态开始,能获得总rewardreward的估计,体验出了这个状态的价值.
还是以上面提到的例子来解释.
强化学习 - 详细解读DQN
强化学习 - 详细解读DQN
对于C1C1状态的value functionvalue\ function,就是以C1C1为初始状态一直到终止状态每个episode回报值的平均值.

value functionvalue\ function代替GtG_t作为评价标准,来寻找最优的策略,那么下面的问题就是求解value functionvalue\ function,只要能解出value functionvalue\ function的最大值,对应的episode就是最优的策略.

(4). BellmanEquationBellman Equation

为了求解value functionvalue\ function,我们将value functionvalue\ function展开.
强化学习 - 详细解读DQN
最后的一个等式是因为期望体现在实际的MDP结构中,就是StS_tSt+1S_{t+1}不同的概率乘以v(St+1)v(S_{t+1}).
强化学习 - 详细解读DQN
BellmanEquationBellman Equation表示的是以迭代的方式求解value functionvalue\ function.
为了求解BellmanEquationBellman Equation,我们将其表示为矩阵的形式.
通过此段文字上面的图片的说明,就可以推出下面矩阵的表示形式.
强化学习 - 详细解读DQN
因为BellmanEquationBellman Equation是线性方程,所以对于简单的MDP问题,可以直接求解.对于复杂的MDP问题,可以通过迭代的方式求解.
强化学习 - 详细解读DQN

自此,已经说了MDP中的S,R,P,γS,R,P,\gamma,还有一个重要的元素没有说:A(action)A(action).

(5). ActionAction

statestateactionaction之间是输入输出的关系,给一个statestate,有对应的