概要
主要从四个方面介绍:
- 强化学习是什么?
- 解决什么问题?
- 用什么样的方式解决问题?
- 强化学习的重要概念
强化学习是什么?
强化学习是一个序列决策问题。即处在当前状态应该做出什么样的动作。
强化学习的思想就是在和环境的不断交互中,最大化奖励。以游戏为例,采取某个策略赢得游戏,则“强化”这个策略,即倾向于选择该策略,以取得好的结果。当然,这里也涉及强化学习中的探索(explpration)和利用(exploitation)的权衡。即也会以一定概率选择从未采用过的策略。
强化学习和监督学习、非监督学习并列,都属于机器学习的范畴。下图展现了这种关系。
强化学习和监督学习的区别和联系:
- 区别:监督学习的数据中包含label,需要做的是训练一个模型,根据特征判断其label。而强化学习没有确定的label,而是根据环境反馈的reward来调整策略,即学习如何选择一系列动作,以最大化收益。
- 区别:监督学习的训练数据之间一般是独立的,没有依赖关系。强化学习的输入数据是状态信息,状态之间是有时间依赖的。
- 联系:在实际应用中,监督学习和强化学习都可以使用前馈网络作为网络框架。监督学习的输入是特征,输出是label;强化学习输入是状态的向量,输出是该执行的动作。
强化学习和无监督学习的区别和联系:
- 区别:无监督学习只有数据特征,没有label信息,也没有reward。
- 区别:无监督学习的数据之间也是独立的。
强化学习能解决什么问题?
上面也说到,强化学习其实是一个序列决策问题。当我们需要对于某个状态到达最终状态做决策时,可以选择强化学习方法。
近年来,强化学习在游戏领域取得了很多成果,教会了机器玩游戏,并且能达到超过人类的水平。这里,机器一次次的做出尝试,有时打赢游戏,有时输掉。在这与环境的交互中,机器学会了评估某个状态的价值,某个状态下做某个动作的价值。从而不断优化策略,达到更优的水平。
除了游戏领域,在其他各种领域也逐渐出现了强化学习的身影。人们为了不用的应用设计适合的状态空间、动作空间和奖励函数。从而将强化学习应用到各种任务中。
而且,深度学习的发展也使得其思想与强化学习结合,Deep RL的研究也很多。但目前Deep RL存在很多局限,比如:采样效率较低等。若想要深入了解,请参考深度强化学习的弱点和局限。
强化学习解决问题的方式
强化学习的建模过程如下:
图中的大脑代表智能体(agent),我们通过操作智能体来做动作。图中的地球代表环境,智能体与其进行交互。
图中最重要的三个要素为:
- 状态state: t t t时刻的状态为 S t S_t St,是状态空间中的一个。
- 动作action:agent根据以往经验或者轨迹采样计算得来的状态-动作价值,在 t t t时刻决定作出动作 A t A_t At。该动作也是动作空间中的一个。
- 奖励reward:agent做出动作 A t A_t At之后,环境会返回给agent一个奖励。【奖励可能是延迟的,直到最终状态才有一个奖励值。所以在做出一个动作之后,奖励可能为0】
强化学习的重要概念
除了上面介绍的三个主要要素:状态、动作、奖励之外,强化学习还有一些要素和概念需要了解:
- 策略policy:是从state到action的映射,是agent做出动作的依据。表达了在状态s执行动作a的概率,即:
π ( a ∣ s ) = P ( A t = a ∣ S t = s ) \pi(a|s) = P(A_t = a | S_t = s) π(a∣s)=P(At=a∣St=s) - 价值函数value function:价值函数是对未来reward的预测,用来评估当前状态好还是不好。
v π ( s ) = E π [ R t + 1 + γ R t + 2 + γ 2 R t + 3 + . . . ∣ S t = s ] v_{\pi}(s) = E_{\pi}[R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + ... | S_t = s] vπ(s)=Eπ[Rt+1+γRt+2+γ2Rt+3+...∣St=s] - 上式中的 γ \gamma γ是奖励衰减因子,在[0, 1]之间,表达了未来reward对于当前状态价值估计的影响。
- 前文也提到,强化学习需要在探索和利用之间做个权衡。不仅要根据以往经验选择能使得V值最大的动作,还要以一定的概率选择从未执行过的动作。那么这里选择未执行动作的概率记为 ϵ \epsilon ϵ。
- 轨迹trajectory:是指状态、动作、价值的序列,即:
H t = S 1 , R 1 , A 1 , . . . , A t − 1 , S t , R t H_t = S_1, R_1, A_1, ..., A_{t-1}, S_t, R_t Ht=S1,R1,A1,...,At−1,St,Rt - 模型model:模拟环境,包括状态转移概率,返回给agent的奖励。【这在model-based的强化学习中会用到】
P s s ′ a = P [ S t + 1 = s ′ ∣ S t = s , A t = a ] R s a = E [ R t + 1 ∣ S t = s , A t = a ] P_{ss'}^a = P[S_{t+1} = s' | S_t = s, A_t = a] \\ R_s^a = E[R_{t+1} | S_t = s, A_t = a] Pss′a=P[St+1=s′∣St=s,At=a]Rsa=E[Rt+1∣St=s,At=a]
感谢刘建平老师提供了清晰的整理思路,有兴趣的可以查看他的博客。