强化学习是指智能体通过不断试错的方式进行学习,利用与环境进行交互时获得的奖励或惩罚来指导行为
试错学习
试错学习的目标通常是以最大化累积的奖励来呈现,这个过程就是序列决策(sequential decision making)。
换句话说,对于任意问题,只要能够建模成序列决策问题或者带有鲜明的试错学习特征,就可以使用强化学习来解决,并且这是截至目前最为高效的方法之一,这就是要学习强化学习的原因。
其他类型的强化学习,例如观察学习(模仿学习、离线强化学习)
马尔可夫决策过程(Markov decision process,MDP),它能够以数学的形式来表达序列决策过程,也是强化学习最基本的问题模型。
智能体和环境之间交互是在一系列离散的时间(time step)中交互的,通常时间 t t t是有限的,即有限马尔可夫决策过程(Finite MDP)。上限用 T T T表示,从 t t t到 T T T为一个回合,比如游戏的一局。
有些方法可以拓展到连续时间的情况,但为了方便,我们尽量只考虑离散时步的情况。
马尔可夫决策过程有一个前提,即马尔可夫性质。
P ( s t + 1 ∣ s 0 , s 1 , . . , s t ) = P ( s t + 1 ∣ s t ) P(s_{t+1}|s_0,s_1,..,s_t) = P(s_{t+1}|s_t) P(st+1?∣s0?,s1?,..,st?)=P(st+1?∣st?)
P ( s t + 1 ∣ s 0 , s 1 , . . , s t , α t ) = P ( s t + 1 ∣ s t , α t ) P(s_{t+1}|s_0,s_1,..,s_t,\alpha_t) = P(s_{t+1}|s_t,\alpha_t) P(st+1?∣s0?,s1?,..,st?,αt?)=P(st+1?∣st?,αt?)
在给定历史状态 s 0 , s 1 , . . . , s t s_0,s_1,...,s_t s0?,s1?,...,st?下,某个未来的状态只与当前状态 s t s_t st?有关,与历史的状态无关。
显然,现实生活中很多场景都不符合马尔可夫性质,但可以结合其他方法来辅助强化学习。
G t = r t + r t + 1 + . . . + r T G_t = r_{t} + r_{t+1} + ... +r_{T} Gt?=rt?+rt+1?+...+rT?
G t = r t + γ r t + 1 + . . . + γ n r T G_t = r_{t} + \gamma r_{t+1} + ... +\gamma^nr_{T} Gt?=rt?+γrt+1?+...+γnrT?
其中 G t G_t Gt?是累积奖励(回报), γ \gamma γ是衰减因子,位于0-1之间,奖励越靠后,权越小。
带衰减因子有以下考量
上图中, s 1 , s 2 , s 3 s1,s2,s3 s1,s2,s3分别表示三种不同的状态,其中的连线表示不同状态之间转移的概率。上图被称为马尔可夫链(Markov Chain),例如 P 12 = P ( S t + 1 = s 2 ∣ S t = s 1 ) P_{12} = P(S_{t+1} = s_2|S_{t} = s_1) P12?=P(St+1?=s2?∣St?=s1?)
进一步可扩展为 P s s ′ = P ( S t + 1 = s ′ ∣ S t = s ) P_{ss'} = P(S_{t+1} = s'|S_{t} = s) Pss′?=P(St+1?=s′∣St?=s)
其中大写S表示所有状态的集合,可以将状态之间转化的概率用表格表示。
进而表示为状态转移矩阵(State Transition Matrix)
是马尔可夫链 + 奖励函数R,如果状态有限,则奖励函数可以用向量表示。如下图所示,可以将奖励过程看作一个随波逐流的纸船,到达不同位置获得不同的奖励。
状态价值函数:被定义为回报的期望,即当我们进入某一个状态后,我们现在有多大的价值。
例如计算S4的价值函数
马尔可夫决策过程可以用一个五元组< S , A , R , P , γ S,A,R,P,\gamma S,A,R,P,γ>表示,其中A表示动作空间、R表示奖励函数、P表示状态转移矩阵、 γ \gamma γ表示衰减因子。
较MRP增加了行为A,未来的状态不仅依赖于当前的状态,也依赖于在当前状态智能体采取的动作。
性质
P ( s t + 1 ∣ s t , α t ) = P ( s t + 1 ∣ s 0 , s 1 , . . , s t , α t ) P(s_{t+1}|s_t,\alpha_t) = P(s_{t+1}|s_0,s_1,..,s_t,\alpha_t) P(st+1?∣st?,αt?)=P(st+1?∣s0?,s1?,..,st?,αt?)
奖励函数也多了一个当前的动作 R ( s t = s , a t = a ) = E [ r t ∣ s t = s , a t = a ] R(s_t = s,a_t = a) = E[r_t|s_t=s,a_t=a] R(st?=s,at?=a)=E[rt?∣st?=s,at?=a]
策略定义了在某一个状态应该采取什么样的动作。知道当前状态后,我们可以把当前状态代入策略函数来得到一个概率,即
π ( a ∣ s ) = p ( a t = a ∣ s t = s ) π(a|s) = p(a_t =a|s_t=s) π(a∣s)=p(at?=a∣st?=s)概率代表在所有可能的动作里面怎样采取行动,比如可能有 0.7 的概率往左走,有 0.3 的概率往右走,这是一个概率的表示。
左侧的马尔可夫链或者马尔可夫奖励过程,从一个状态到另一个状态只需要状态转移函数 P ( s ′ ∣ s ) P(s'|s) P(s′∣s)。右侧的马尔可夫决策过程需要先选择行为,即中间一层黑色结点,最终转移到另一种状态。