强化学习
一、强化学习定义
1.强化学习就是程序或智能体(agent)通过与环境不断地进行交互学习一个从环境到动作的映射,学习的目标就是使累计回报最大化。
2.强化学习是一种试错学习,因其在各种状态(环境)下需要尽量尝试所有可以选择的动作,通过环境给出的反馈(即奖励)来判断动作的优劣,最终获得环境和最优动作的映射关系(即策略)。
二、基本组件(以吃豆子游戏为例)
1.agent:大嘴小怪物
2.环境:整个迷宫中的所有信息
3.奖励:agent每走一步,需要扣除1分,吃掉小球得10分,吃掉敌人得200 分,被吃掉游戏结束动作:在每种状态下,agent能够采用的动作,比如上下左右移动
三、目标
策略:在每种状态下,采取最优的动作
学习目标:获得最优的策略,以使累计奖励最大(即Score)
四、马尔可夫决策过程(MDP)
马尔可夫决策过程(Markov Decision Process)通常用来描述一个强化学习问题
智能体agent根据当前对环境的观察采取动作获得环境的反馈,并使环境发生改变的循环过程。
MDP 基本元素:
s∈S:有限状态state集合,s表示某个特定状态; a∈A:有限动作action集合,a表示某个特定动作;
T(S, a, S’)~Pr(s’|s,a): 状态转移模型, 根据当前状态s和动作a预测下一个状态s,这里的Pr表示从s采取行动a转移到s’的概率;
R(s,a):表示agent采取某个动作后的即时奖励,它还有 R(s,a,s’), R(s) 等表现形式;
Policy π(s)→a: 根据当前state来产生action,可表现为a=π(s)或 π(a|s) = P(a|s),后者表示某种状态下执行某个动作的概率。
值函数:
状态值函数V表示执行策略π能得到的累计折扣奖励:
整理之后可得:
状态动作值函数Q(s,a)表示在状态s下执行动作a能得到的累计折扣奖励:
整理之后可得:
最优值函数:
最优控制 :
在得到最优值函数之后,可以通过值函数的值得到状态s时应该采取的动作a:
五、Q-learning
蒙特卡洛强化学习
在现实的强化学习任务中,环境的转移概率、奖励函数往往很难得知,甚至很难得知环境中有多少状态。若学习算法不再依赖于环境建模,则称为免模型学习,蒙特卡洛强化学习就是其中的一种。
蒙特卡洛强化学习使用多次采样,然后求取平均累计奖赏作为期望累计奖赏的近似。<s0,a0,r1,s1,a1,r2,…,sT-1,aT-1,rT,sT>
蒙特卡洛强化学习:直接对状态动作值函数Q(s,a)进行估计,每采样一条轨迹,就根据轨迹中的所有“状态-动作”利用下面的公式对来对值函数进行更新。
每次采样更新完所有的“状态-动作”对所对应的Q(s,a),就需要更新采样策略π。但由于策略可能是确定性的,即一个状态对应一个动作,多次采样可能获得相同的采样轨迹,因此需要借助ε贪心策略:
蒙特卡洛强化学习算法需要采样一个完整的轨迹来更新值函数,效率较低,此外该算法没有充分利用强化学习任务的序贯决策结构。
Q-learning算法结合了动态规划与蒙特卡洛方法的思想,使得学习更加高效。
假设对于状态动作对(s,a)基于t次采样估算出其值函数为:
在进行t+1次采样后,依据增量更新得到:
然后,将 1/t+1 替换成系数α(步长),得到:
以γ折扣累计奖赏为例:
则值函数的更新方式如下:
Q-learning算法流程