增强学习概念:
增强学习关注的是智能体如何在环境中采取一系列行为,从而获得最大的累积回报。
通过增强学习,一个智能体应该知道在什么状态下应该采取什么行为。
强化学习,就是根据奖励,判断在相应的状态下,应该做的动作——从状态到动作的映射就是学习策略
增强学习是机器学习中一个非常活跃且有趣的领域,相比其他学习方法,增强学习更接近生物学习的本质,因此有望获得更高的智能,这一点在棋类游戏中已经得到体现。
特点:
1. 增强学习是试错学习(Trail-and-error),由于没有直接的指导信息,智能体要以不断与环境进行交互,通过试错的方式来获得最佳策略。
2. 延迟回报,增强学习的指导信息很少,而且往往是在事后(最后一个状态)才给出的,这就导致了一个问题,就是获得正回报或者负回报以后,如何将回报分配给前面的状态。
马尔可夫决策过程:
马尔可夫决策过程(Markov DecisionProcess, MDP)也具有马尔可夫性,与上面不同的是MDP考虑了动作,即系统下个状态不仅和当前的状态有关,也和当前采取的动作有关。
1、策略:状态到动作的映射
2、状态集
3、动作集
4、状态转移概率:在当前状态X下,执行了动作A后,状态会转移到Y的概率
5、奖励(延后)
问题一:
对于延后的奖励,如何将其分片到前面的状态,即如何根据后面的奖励,判断当前步骤的贡献?
推广起来就是,如何评价一个策略的好坏?
问题二
知道怎么评价策略后,如何改进当前策略至最优策略
分类:
一、有模型的强化学习(现实使用的情况基本不存在,应该就是为了推导用)
因为模型已知,所有情况都是可以计算出
首先,定义了奖励,解决了对于奖励延后的问题
当前的步骤的奖励:等于后面T步骤的奖励的和的组合
所以,对于T步的一个过程,其实由一个一步的过程和一个T-1 步的过程组合而成——这就是一个递推公式
根据递推公式,一个T步的过程,就可以从一个一步的过程逐渐递推得到
有了T步过程的奖励的计算方法后,因为强化学习主要是学习策略
最优的策略,可以理解为,在当前状态执行了这个动作之后,后面的T步的奖励最大
所以找到能使奖励最大的动作就是最优的动作,从而得到最优的策略
————这中间涉及到一些推到,用到了动态规划的算法+递推求极大等
——这就是有模型机器学习的动态规划算法
动态规划的优点在于它有很好的数学上的解释,但是动态要求一个完全已知的环境模型,这在现实中是很难做到的。另外,当状态数量较大的时候,动态规划法的效率也将是一个问题。
二、无模型的强化学习
同样利用有模型的思路,不同在于
1)没有模型
2)要从初始状态开始
解决办法:蒙特卡罗学习
方法概述:
1)首先,在状态未知的情况下,我们从初始状态出发,使用某种策略,进行采样,执行该策略T步,并获得轨迹
2)然后,对轨迹中出现的每个状态—动作,记录其后的奖赏之和,作为该状态—动作的一次累积奖赏的采样值
3)多次采样得到多条轨迹
4)将每个状态—动作对的累积奖赏采样值进行平均,及得到状态—动作值函数的估计
然后根据轨迹,不断的优化最优的策略
——即认为,当前出现的状态—动作对,是策略集中的一种,这个策略导致的后面的得分,是当前策略的评价
得分越高,评价越好。然后不断迭代,根据新一轮的轨迹,重新计算策略的得分,优化策略
需要处理的问题:
如何选择轨迹,用e贪心
改进:时间差分学习
对门特卡罗的改进,蒙特卡罗每完成一条轨迹才迭代一次,效率低,
时间差分,综合了蒙特卡罗的思想和动态规划的原理,每执行一步,就迭代一次,更新策略
效率更高
总结:
增强学习的关键,就是从环境状态到动作的映射的学习,就是策略的学习,就是要学习当前这种情况应该采用什么动作处理。
增强学习的主要学习方式是试错
增强学习具有延迟回报的特点,所以如何将回报分配给前面的动作,这是一个必须要解决的
求最优策略的两点前提:
1、如何评估一个策略的值函数
2、如何改进至最优策略
遇到的问题
1)原本的递推公式是这一步和下一步的关系,怎么变成的迭代的关系
注意递推公式的下标,k表示的是执行k步,不是次数
所以地推公式的意思是,执行k步的奖赏,都可以通过执行当前步和执行k-1步计算出来
所以地推公式,就是执行k步,就分解成执行一步和执行k-1步
(k不是迭代的次数,而是执行的步骤距离即时激励的步数)