强化学习是机器学习的一种。强化学习实质上是一种机器学习范式,适用于多阶段序贯决策以获得较好的长期回报的场景。反复实验(trial and error)和延迟奖励(delayed reward)是强化学习最重要的两个特征。
生活中常见的强化学习过程:
一般我们在图片分类的实验中,先有一大堆标定的数据,比如车、飞机等图片,然后训练一个分类器,网络在训练时已经把真实的Label给到网络了,如果预测错误,比如把车预测成飞机,就直接说预测是错误的,把错误的写成一个loss函数。所以在监督学习中,输入的数据都是没有关联的,如果有关联,网络就会不好学习。监督学习告诉了learner,正确的标签是什么,使用正确的标签来修正自己的预测。
图来自于:https://cdn.modb.pro/db/245201
但是在强化学习中,这两点都不满足,强化学习的训练数据就是玩游戏的一个过程,数据就是游戏中的这样一个过程序列,比如游戏走在第三步的时候,将这个learner放入到网络,希望网络在当前的状态下输出一个决策,但是我们并没有标签告诉我们这个决策动作是正确的还是错误的,得等到游戏结束才行。面临一个奖励延迟,训练网络就是比较困难的。
图来自于莫烦教程
监督学习和强化学习的不同点有:
在这个图中展示了强化学习的一些关键要素:
1、Agent是需要去做决策的智能体;
2、Environment是智能体所处的环境;
3、环境会向智能体提供一定的可观测的信息,也就是智能体所处的State;
4、并且处于特定State的智能体会得到一定的Reward,智能体根据State可以采取相应的Action,从而实现最大化长期收益的目的。
在强化学习的环境中,agent的目的就是选取一系列的动作,从而使得自己的奖励可以最大化。强化学习的最大课题就是如何让agent获得一个长期的奖励。
根据强化学习agent学习的不同,可以对agent进行归类:
还可以依据agent有没有学习环境模型而进行分类,分为:
Reward表示每个时刻采取动作后得到的是即时奖励。
Return表示在时刻采取某个动作后,到游戏结束可以得到的总的奖励。
我们将奖励的特点总结为以下三点:
不同的环境允许不同种类的动作。在给定的环境中,有效动作的集合经常被称为 动作空间(action space) 。
有离散动作空间(discrete action spaces) ,在这个动作空间里,agent 的动作数量是有限的。
有连续动作空间(continuous action spaces) 。在连续空间中,动作是实值的向量。
区分动作空间的连续与离散对具体问题需要具体分析,这可能会影响到算法的选择。
马尔科夫决策过程是强化学习中的一个基本框架。马尔科夫决策过程的环境是fully observable,即全部可观测的。但是很多时候,很多量是不可观测的,但是这样也可以使用马尔科夫决策过程来解决。马尔科夫的重要特征:一个状态的下一个状态只取决于当前状态,而跟之前的状态无关。这个特征是所有马尔科夫过程的基础。
为什么在强化学习中会用到马尔科夫决策过程呢?
在强化学习中,agent与environment一直在互动。在每个时刻t,agent会接收到来自环境的状态s,基于这个状态s,agent会做出动作a,然后这个动作作用在环境上,于是agent可以接收到一个奖赏Rt+1Rt+1,并且agent就会到达新的状态。所以,其实agent与environment之间的交互就是产生了一个序列。
马尔科夫过程的定义:马尔科夫过程是一个二元组(S,P),且满足S是有限状态集合,P是状态转移矩阵。状态转移概率矩阵为:
下图所示,一个学生的7种状态{娱乐,课程1,课程2,课程3,考过,睡觉,论文}:
每种状态的转换概率如下图所示。则该生从课程1开始一天可能的状态序列为:
将动作和回报考虑在内的马尔科夫过程称为马尔科夫决策过程。
强化学习采用一种更接近人类和动物习得技能的方式,在探索与利用中学到更优的策略规划与控制,能够最大化序列决策任务中的长期收益。强化学习在复杂环境中可以探索更多的状态空间和同时处理更多样化的动作组合,达到甚至超越人类能探索到的决策能力。因此强化学习的应用非常广泛,可应用于游戏、机器人控制、推荐、交通、能源、金融等等。
图来自于:http://www.mysecretrainbow.com/ai/21730.html
见百度网盘地址:https://pan.baidu.com/s/1PmvLQ1PZN5ZMyDClx9evZQ
提取码:b8fd
大家感兴趣可以自行下载学习,里面涵盖多个强化学习实战项目,比较完整。