一. 强化学习概念(Reinforcement learning)
引言:Reinforcement learning (RL) is an area of machine learning inspired by behaviorist psychology, concerned with how software agents ought to take actions in an environment so as to maximize some notion of cumulative reward from——维基百科. 强化学习是机器学习领域之一,受到行为心理学的启发,主要关注智能体如何在环境中采取不同的行动,以最大限度地提高累积奖励。)
1.1 强化学习定义
强化学习主要由智能体(Agent)、环境(Environment)、状态(State)、动作(Action)、奖励(Reward)组成。智能体执行了某个动作后,环境将会转换到一个新的状态,对于该新的状态环境会给出奖励信号(正奖励或者负奖励)。随后,智能体根据新的状态和环境反馈的奖励,按照一定的策略执行新的动作。上述过程为智能体和环境通过状态、动作、奖励进行交互的方式
智能体通过强化学习,可以知道自己在什么状态下,应该采取什么样的动作使得自身获得最大奖励。由于智能体与环境的交互方式与人类与环境的交互方式类似,可以认为强化学习是一套通用的学习框架,可用来解决通用人工智能的问题。因此强化学习也被称为通用人工智能的机器学习方法
1.2 概念术语解释
-
下面对前文中提到的几个概念进行详细解释,当在t时刻:
智能体(Agent):强化学习的本体,作为学习者或者决策者
环境(Environment):强化学习智能体以外的一切,主要由状态集合组成
状态(States):一个表示环境的数据,状态集则是环境中所有可能的状态
动作(Action):智能体可以做出的动作,动作集则是智能体可以做出的所有动作
奖励(Reward):智能体在执行一个动作后,获得的正/负反馈信号,奖励集则是智能体可以获得的所有反馈信息
-
几个延申出来的概念
策略(Policy):强化学习是从环境状态到动作的映射学习,称该映射关系为策略。通俗的理解,即智能体如何选择动作的思考过程称为策略
轨迹(trajectory \tau):
轨迹
就是当前状态以及它采取的策略,即状态和动作的一个序列:动作空间(action space):在当前的环境中,有效动作的集合被称为
动作空间
。依据智能体的动作数量是否有限可以分为离散动作空间和连续动作空间:智能体的动作数量有限的动作空间称为离散动作空间,反之则被称为连续动作空间策略函数(policy function):智能体利用策略来选取下一步的动作。
策略函数
能够把输入的状态变成动作随机性策略(stochastic policy): 即。输入一个状态s,输出所有行为的概率,然后对上述概率进行采样,得到最终的行为(一般采用
随机性策略
)确定性策略(deterministic policy): 采取
最有可能的动作
,即
-
价值函数(value function):
对未来奖励的预测
,用于评估状态的好坏,价值函数里面有一个折扣因子
-
V函数:期望的下标是函数,函数的值可反映在使用策略的时候,到底可以得到多少奖励。即从某个状态,按照策略走到最终状态很多很多次,
最终获得奖励总和的平均值
- Q函数:可以获得奖励的期望取决于当前的状态和当前的动作,与V值不同,Q值和策略并没有直接相关,而与环境的状态转移概率相关,而环境的状态转移概率是不变的
-
V函数:期望的下标是函数,函数的值可反映在使用策略的时候,到底可以得到多少奖励。即从某个状态,按照策略走到最终状态很多很多次,
-
根据agent学习的东西不同,我们可以把agent进行归类:
基于价值的算法(value-based):学习价值函数,对于每个状态估算其价值(只能应用在不连续、离散环境中)
基于策略的算法(policy-based):学习策略函数,对于每个状态计算各个动作的概率
演员-评论家算法(Actor-Critic):同时学习价值函数和策略函数
-
模型(model):模型表示了
Agent
对这个环境的状态进行了理解,它决定了这个世界是如何进行的,模型决定了下一个状态会是什么样的,就是说下一步的状态取决于你当前的状态以及你当前采取的行为,它由两个部分组成概率:这个转移状态之间是怎么转移的,如下式所示:
奖励函数:当你在当前状态采取了某一个行为,可以得到多大的奖励,如下式所示:
-
另外,我们是可以通过agent到底有没有学习这个环境模型来分类:
model-based:
Agent
通过学习这个状态的转移来采取动作model-free:
Agent
没有去直接估计这个状态的转移,也没有得到环境的具体转移变量。它通过学习价值函数和策略函数进行决策
1.3 强化学习与监督学习的连续与区别
强化学习和监督学习的区别如下:
强化学习处理的大多数是
序列数据
,其很难像监督学习的样本一样满足独立同分布学习器并没有告诉我们每一步正确的动作应该是什么,学习器需要自己去发现哪些动作可以带来最多的奖励,只能通过不停地尝试来发现最有利的动作
智能体获得自己能力的过程,其实是不断地试错探索(trial and error exploration)的过程。
探索(exploration)
和利用(exploitation)
是强化学习中非常核心的问题。其中,探索指尝试一些新的动作,这些新的动作有可能会使我们得到更多的奖励,也有可能【一无所有】;利用指采取已知的可以获得最多奖励的动作,重复执行这个动作,因为我们知道这样做可以获得一定的奖励。 因此,我们需要在探索和利用之间进行权衡,这也是在监督学习中没有的情况在强化学习过程中,没有非常强的
监督者(supervisor)
,只有奖励信号(reward signal)
,并且奖励信号是延迟的,即环境会在很久以后才告诉我们之前所采取的动作到底是不是有效的。因为我们没有得到即时反馈,所以智能体使用强化学习来学习就非常困难。当我们采取一个动作后,如果使用监督学习,就可以立刻获得一个指导,比如,我们现在采取了一个错误的动作,正确的动作应该是什么。而在强化学习中,环境可能会告诉我们这个动作是错误的,但是它并不会告诉我们正确的动作是什么。而且更困难的是,它可能是在一两分钟过后才告诉我们这个动作是错误的。所以这也是强化学习和监督学习不同的地方