强化学习是一种用于学习的计算方法,一个agent如何在复杂、不确定的环境下极大化奖励reward。
示意图由两部分组成:一部分是Agent,一部分是Environment。在强化学习的过程中Agent和Environment一直在交互,当Agent在Environment中获得一个状态state,Agent会利用这个状态state输出一个决策action,这个决策action放到环境Environment中去,环境Environment会通过这个决策action进行到下一步,输出下一个状态以及当前决策所得到的奖励。Agent的目的就是从环境中尽可能多的获取奖励。
可以实现超人类的效果。
The history is the sequence of observations, actions, rewards.
State is the function used to determine what happens next.
Environment state and agent state
• Full observability: agent directly observes the environment state, formally as Markov decision process (MDP)
agent的观测可以包含所有环境运作的状态
• Partial observability: agent indirectly observes the environment, formally as partially observable Markov decision process(POMDP)
agent的观测并不能包含所有环境运作的状态
Policy决定Agent的行为,它是把输入的状态变成一个行为。有两种policy,一种是stochastic policy,另一种是deterministic policy。
(1)Stochastic policy: Probabilistic sample
(1) 通过Agent学习的内容进行分类
(2) 通过Agent是否学习环境模型来分类
强化学习的这个交互就是由 agent 跟环境进行交互。所以算法的 interface 也是用这个来表示。比如说我们现在安装了 OpenAI Gym。那我们这里就可以直接调入 Taxi-v2
的环境,就建立了这个环境。初始化这个环境过后,就可以进行交互了。Agent 得到这个观测过后,它就会输出一个 action。然后这个 action 会被这个环境拿进去执行
这个 step,然后环境就会往前走一步,然后返回新的 observation 和 reward 以及一个 flag variable 就决定你这个游戏是不是结束了。几行代码就实现了强化学习里面的
framework。
import gym # 导入 Gym 的 Python 接口环境包
env = gym.make('CartPole-v0') # 构建实验环境
env.reset() # 重置一个 episode
for _ in range(1000):
env.render() # 显示图形界面
action = env.action_space.sample() # 从动作空间中随机选取一个动作
env.step(action) # 用于提交动作,括号内是具体的动作
env.close() # 关闭环境
Gym 中的小游戏,大部分都可以用一个普通的实数或者向量来充当动作。打印 env.action_space.sample() 的返回值,能看到输出为 1 或者 0。
env.action_space.sample() 的含义是,在该游戏的所有动作空间里随机选择一个作为输出。在这个例子中,意思就是,动作只有两个:0 和 1,一左一右。
env.step() 这个方法的作用不止于此,它还有四个返回值,分别是 observation 、 reward 、 done 、 info 。
import gym
env = gym.make('CartPole-v0')
env.reset()
for _ in range(1000):
env.render()
action = env.action_space.sample()
observation, reward, done, info = env.step(action)
print(observation)
env.close()
env.step() 完成了一个完整的
过程。
1.主要内容
上节课介绍了agent的组成成分,由model、value、policy组成。
(1)这节课先介绍马尔科夫链,再介绍马尔科夫奖励过程,最后介绍马尔科夫决策过程。
(2)当给定一个决策之后,如何计算Policy evaluation价值函数。
(3)马尔可夫决策过程的控制,两种算法:policy iteration和value iteration。
2.马尔可夫决策过程可以描述agent和environment的交互过程。马尔可夫决策过程是强化学习过程中的一个基本框架。
在马尔可夫决策过程中,环境是全部可观测的(fully observable)。很多时候在环境中有些量是不可观测的,部分观测的问题也可以转换成马尔可夫决策过程。
3.定义马尔可夫模型
一个状态转移符合马尔可夫,一个状态的下一个状态取决于当前状态,跟当前状态之前的状态都没有关系。