本节课主要学习时序决策过程。
1.agent
在强化学习的环境中,agent的目的就是选取一系列的动作,从而使得自己的奖励可以最大化。强化学习的最大课题就是如何让agent获得一个长期的奖励。
- agent在采取当前动作的时候,会依赖于之前的历史,可以把游戏的状态看成是关于这个历史的函数。
- agent内部也有一个函数来更新状态。
- agent状态和环境的状态等价的时候,就叫这个环境为full observability,即全部可观测的。
2.强化学习agent的主要组成成分:
- 决策函数:用来选取下一步的动作。
- 价值函数:对现在当前状态进行估价,即现在的状态可以对后面的收益带来多大的影响。当价值函数越大,说明进入这个状态越有力。
- 模型:agent对环境状态的整个理解。
2.1 policy
policy:决定agent的行为,是一个函数把输入的状态变成行为。
有以下两种policy函数:
-
Stochastic policy:π函数
-
Deterministic policy:
policy函数的输入在玩游戏的过程中就是游戏的一帧,输出就是决定往上走还是往下走。
2.2 Value
价值函数:折扣的未来奖励的加和,通过某一种行为,未来会得到多大的奖励,价值函数定义中有一个折价的因子,要求在尽可能少的时间得到尽可能多的奖励。
价值函数的公式:
2.2.1 V函数
其中,Gt就是折扣因子和奖励的乘积之和。
2.2.2 Q函数
Q函数是强化学习算法在学习的一个函数。里面包含状态s和行动a。
Q函数得到后,进入某一种状态,最优的行为就可以通过Q函数来得到。
2.3 模型
模型决定了下一个状态会是什么样子,包含下一步的状态和下一步的奖励。
3. 马尔科夫决策过程(下节课重点讲解)
马尔科夫决策过程可视化了转态之间的转移,及之间采取的行为。
走迷宫的例子中:
- 奖励:每走一步得到-1分
- 行动:N,E,S,W
- 状态:agent的位置
4.agent分类
根据强化学习agent学习的不同,可以对agent进行归类:
- 第一种是基于价值函数的agent,这一类agent学习的就是价值函数,隐式的学习了策略。
- 第二种是基于策略导向的agent,直接学习的就是策略。
- 第三种是策略和价值结合的函数。把价值函数和策略函数都进行了学习。通过两者的交互得到一个最佳的行为。
还可以依据agent有没有学习环境模型而进行分类,分为:
- 有模型
- 无模型
5.exploration和exploitation
强化学习中的exploration和exploitation是两个很核心的问题,意思分别是探索新的东西和采取已知的东西。
- exploration主要是试错,尝试新的东西,在陌生的环境中进行。
- exploitation主要是在已知的环境中进行某种行动,比较确定。
附录:
github网址:
可以直接使用已有的包来实现你想实现的功能。
OpenAI中公开了很多强化学习的环境。如果已经安装了OpenAI环境,那么就可以直接建立"Taxi-V2"的环境。代码如下: