在前面一篇简单介绍了强化学习的概念和模型,具体介绍了K-摇臂赌博机的原理并对比不同模型不同参数下的运行效果。可以参考前面一篇链接:强化学习之k-摇臂赌博机_易-的博客-CSDN博客
本次介绍有模型学习,有模型学习指的是马尔可夫决策过程的四元组E=<X、A、P、R>均为已知,即机器对环境进行了建模,能在内部模拟出与环境相同或相似的状况。此时任意状态x,x'和动作a,在x执行动作a转移到状态x'的概率P(x->x')是已知的,带来的奖赏R(x->x')也是已知的。
1.策略与估计
在模型已知时,对任意策略Π能估计出该策略带来的期望奖赏。另函数VΠ(x)代表从状态x出发,使用策略Π带来的奖赏;函数QΠ(x,a)表示从状态x出发,执行动作a后再使用策略Π带来的累积奖赏。这里V(·)称为“状态值函数”,Q(·)称为“状态-动作值函数”,分别表示“状态”以及“状态-动作”的累积奖赏。
根据前面累积奖赏的定义,有状态值函数:
(式1.1)
令x0表示起始状态,a0表示起始状态采取的第一个动作,则有状态-动作值函数:
(式1.2)
根据马尔可夫的一个性质:下一状态仅由当前状态决定,不依赖于以往任何状态,故值函数可以写成递归的形式。以T步累积奖赏为例,有:
(式1.3)
可以推导出:(式1.4)
根据全概率公式:可展开上式得到:
(式1.5)
全概率公式中,Bi理解为动作a。 在带入全概率公式可以理解为:T步的累积奖赏=(A:选择动作a的概率)*(B:在选择动作a的前提下得到的累积奖赏;由于在状态x下有很多个动作,故对其求和计算所有可能的动作a)。
A、选择动作a的概率:Π(x,a)
B、在选择动作a的前提下得到的累积奖赏:(选择了动作a)*(选择a后的累积奖赏) 有:(状态转移概率:P(x->x'))*(累积奖赏)
这里的累积奖赏(后面递归的部分):初始状态的奖赏r1+动作a后的T-1步的累积奖赏
初始状态的奖赏r1:x状态转移后状态x'所对应的奖赏,R(x->x')
整理可以得到递归式:(式1.6)
同理,对γ折扣累积奖赏有:(式1.7)
但是,使用全概率公式展开的前提是已知P和R。
从上面的递归式可以看出,从初始值 V0出发,能迭代计算T步后的累积奖赏,算法如下:
有了状态值函数V后,可以直接计算出状态-动作值函数:
(式1.8)
2.策略改进
对某个策略的累积奖赏进行评估以后,若发现它并不是最优策略,需要对其进行改进。理想的策略是能最大化累积奖赏:
(式2.1)
一个强化学习可能有多个最优策略,其对应的值函数V*称为最优值函数,即:
(式2.2)
但是式2.2达到最大的前提是策略空间无约束,即所有的动作a均可被执行,不会违背约束。
由于最优值函数累积奖赏值达到最大,因此可以对式1.6和1.7作改动,即对动作的求和改为最优:
(式2.3)
即:(式2.4)
代入式1.8可得到最优状态-动作值函数:
(式2.5)
关于最优值函数的等式,称为最优Bellman等式,其唯一解是最优值函数。
此时,上式揭示了非最优策略的改进方式:将策略选择的动作改变为当前最优。但是,在采用该算法之前,需证明对于策略的每一点改进是单调递增的,以γ折扣累积奖赏为例:
(式2.6)
上式推导使用了改变动作条件:(式2.7)
和状态-动作值函数:(式2.8)
至此,对于当前策略Π,可以将其改为:
(式2.9)
直到Π'与Π一致、不再发生变化,即找到了最优策略。
3.策略迭代与值迭代
由前两小节我们知道了如何评估一个策略的值函数,以及在策略评估后如何改进至最优策略。显然可以得到一个求解最优解的方法:从一个初始策略出发,先进行策略评估,然后改进策略,评估改进的策略,....不断地进行迭代。下图给出了基于T步累积奖赏策略的迭代算法:
算法中 t=T+1指累积奖赏不再发生变化,则可以退出。
由式2.6可知,策略改进与值函数的改进是一致的,因此可将策略改进视为值函数的改善,式2.3可得:
(式3.1)
于是得到值迭代的算法:
从算法可以看出,在模型已知时强化学习任务能归结为基于动态规划的寻优问题。
将在后面一篇文章中,介绍免模型学习:https://blog.csdn.net/weixin_43797015/article/details/121588382
参考资料:《机器学习》周志华著,清华大学出版社
《机器学习公式详解》(南瓜书)谢文睿、秦州编著,人民邮电出版社