最近学习了RL, 感觉RL属于机器学习中比较有意思的一个领域,监督学习、无监督学习都是扔一堆静止的数据去训练你的模型,而强化学习是让模型与环境的交互中进行学习,让人感觉更像一种有智慧的生物(然而并不是)。比如需要让机器学会玩一个游戏
有两种方法:
1. 有监督学习 (专家级玩家玩无数次,记录下结果作为有标记数据)
2. 强化学习
强化学习是在与环境的交互中不断得到反馈进行学习的,就像一个真实的生命,基本流程如下图所示。
上图中的Agent可以理解为我们的模型,在它与环境交互的过程中,不断感知环境的状态,从而做出决策,采取某个action,然后再从环境中得到reward,根据reward的大小来调整自己的策略。
强化学习在经典物理学的认知范畴内,认为时间可以切分成若干有严格先后顺序的时刻,因此可以形成
这样的状态,动作和回报系列。
强化学习还有一个重要的确定性假设,也就是说,对于某个输入状态 s0 ,无论进行多少次试验,只要都采取某个动作 a0 ,输出的结果也是一样的,就像编程中的纯函数,没有side effects。这样才能让模型学习到如何根据不同的状态做出最优的决策。
有了时间和确定性的假设,就有了MDP(Markov Decision Process) 这个概念用于描述这个世界。
马尔科夫决策过程(MDP)
MDP的假设:未来只取决于当前。如果我们站在上帝视角下看,我们知道这个世界的每个物体的状态,那么未来的变化只跟当前的状态相关,和过去没有关系。用公式表示也就是
即下一时刻的状态取决于当前的状态与动作。这里的状态指的是完全可观察的全部环境状态。
估值函数
使用强化学习的目标是为了让模型学习成为特定场景下的master,比如玩一个游戏,根据环境的变化采取相应的动作,取得尽量高的rewards。那么评价这个模型是否优秀,就看使用它能否取得尽量高的rewards。因此我们需要去量化rewards。