最近在学姐的论文DDL的驱使下,开始学习强化学习。打算整理一下知识体系。因为学着学着可能有点乱,出来了很多模型与思路,所以写篇文章整理一下,同时也是为了便于自己梳理自己的知识网络。主要参看的资料是一些中文的博客介绍了(没有借助论文因为觉得效率并不是很高,如果网上有现成的话感觉别人总结的东西是最利于吸收的。)这篇文章总结的东西是一些大体的思路以及理解性的东西,没有什么过多的数学推导。一些细节的东西会嵌入相关链接以供查阅。
本篇文章最好结合algorithm dog的这篇博客来看。先把他的这个系列看完了,相信其中还有很多一些逻辑关系没理清,可以之后来参看我后文的这些结构。
当初我就是看完了之后逻辑没理清楚,感觉明明好像已经把问题解决了,又多出来一些东西,不知道多出来的东西和之前的一些东西有什么差别。如果觉得理论都已经看懂了,后文我理的结构会在总体上应该有个比较好的认识
马尔科夫决策过程
目前我所了解到的强化学习的本质其实就是解决一个马尔科夫决策内容的一系列方案。那么什么是马尔科夫决策过程呢?
定义
MDPs 简单说就是一个智能体(Agent)采取行动(Action)从而改变自己的状态(State)获得奖励(Reward)与环境(Environment)发生交互的循环过程。
MDP 的策略完全取决于当前状态(Only present matters),这也是它马尔可夫性质的体现。
自己做了张思维导图:
很简单的一个例子:你在一个交叉路口,这是你的状态,你可以选择走1号路或者走2号路,这是你的动作集合,P用来表示走某条路的概率,如果走1号路,假设你能捡到10块钱,这就是你的奖励。π是你的决策:在目前的状态下你选择百分之70的概率走1,百分之30的概率走2,这就是你的一种决策。
解决方法
模型相关
通过动态规划的方法来求解MDP:Policy Iteration 和 Value Iteration.这种情况叫做模型相关的强化学习,意思是我们知道整个马尔科夫决策过程。大致意思是说我们知道奖励函数R(s,a)和转移概率P(s,a,s')的全貌。在知乎专栏中有很详细地介绍。(一个简单的数学递归过程,不要被看起来很难的数学式子吓到了)
模型无关
模型无关指的是我们不了解奖励函数R(s,a)和转移概率P(s,a,s')的全貌。好比你在一个迷宫之中,你并不知道从这里向左拐之后,你能捡到多少钱。解决模型无关的情况分别分为以下几个步骤:
以在一个迷宫中为例,在迷宫的某些坐标处藏了一定数量的金钱,目标是捡到更多的钱。
首先需要明确模型无关的策略评价:即在模型无关的情况下,你的策略对于每种状态的价值是多少。好比你在迷宫编号为1的地方的具有多大的价值,编号为2的地方具有多大的价值等等
其次明确如何在模型无关的情况下进行策略学习。即在两眼一抹黑的情况下如何去根据目前的一些情况去改善自己的策略,从而能在一个未知的迷宫中捡到更多的钱。
最后是一些优化,即如果你需要处理的一些维数很高,数据量很大,那么你需要用到一定的近似算法,去估计去估测结果。
训练:最后通过一些神经网络的方法进行训练以及反向传播。