强化学习基础教程:基本概念、分类及核心概念详解
强化学习基础教程:基本概念、分类及核心概念详解
1.基础概念
1.1 强化学习的定义
强化学习(Reinforcement Learning,RL)是一种实现序贯决策的机器学习方法。它通过让机器与环境进行交互,不断尝试,从错误中学习,做出正确决策从而实现目标。强化学习与有监督学习和无监督学习并列,是一种独立的机器学习方法。
在强化学习中,机器通过与环境的交互来实现目标。具体来说,机器在环境的一个状态下做出动作决策,将这个动作作用到环境中,环境则会根据这个动作发生相应的改变,并将相应的奖励反馈和下一轮状态传回机器。这个交互过程是迭代进行的。
1.2 强化学习的基本要素
- 动作(Action):智能体作出的决策行为
- 智能体(Agent):学习器与决策者,作出动作的主体
- 状态(State):智能体从环境中获得到的信息
- 奖励(Reward):环境根据状态与智能体做出的动作产生的反馈信号,用R或r表示
- 回报(Return):未来的累积奖励,用Ut表示从t时刻到结束时的累积奖励
- 策略(Policy):一般用π表示,由观测到的状态根据策略决定作出动作
2.强化学习分类
2.1 根据agent学习方式分类
- 基于策略的强化学习(Policy-based RL):学习一个策略函数π(a|s),无需构造价值函数,如REINFORCE算法
- 基于价值的强化学习(Value-based RL):学习最优动作价值函数Q*,无需策略函数,如Q-learning,Sarsa,DQN方法
- Actor-Critic方法:一种特别的方法,上述两者的结合。Actor会基于概率作出动作,Critic会根据作出的动作打分,是一类结合了策略评估(Critic)和策略改进(Actor)的强化学习算法。A2C (Advantage Actor-Critic)、A3C (Asynchronous Advantage Actor-Critic)、DDPG (Deep Deterministic Policy Gradient)、TD3 (Twin Delayed Deep Deterministic Policy Gradient)、PPO (Proximal Policy Optimization)等算法均是Actor-Critic方法
2.2 根据是否理解所处的环境分类
- Model-based:学习环境的模型,通过学习状态转移概率P(s, s')采取行动
- Model-free:无环境的模型,通过学习价值函数Vπ(s)与策略函数进行决策。Q-learning,Sarsa,Policy Gradients都是model-free方法,从环境中得到反馈从而学习,智能体只能和环境进行交互,通过采样到的数据来学习,这类学习方法统称为无模型的强化学习(model-free reinforcement learning)
2.3 根据agent是否与环境交互分类
- 在线强化学习(Online RL):学习过程中,agent除了从数据集中学习,还需要与环境进行交互
- 离线强化学习(Offline RL):学习过程中,agent不与环境进行交互,只从数据集中直接学习一套策略来完成相关任务
2.4 根据如何使用已有的数据进行学习和决策分类
- 在线策略(On-policy)算法:行为策略和目标策略是同一个策略,agent根据当前的策略来选择动作,并且学习的目标是优化当前正在执行的策略
- 离线策略(Off-policy)算法:行为策略和目标策略不是同一个策略,学习算法可以利用从其他策略生成的数据来进行学习,而不局限于当前执行的策略
2.5 根据更新方式分类
- 回合更新(Monte-Carlo update):游戏有开始和结束,回合更新只有等待一局游戏从开始到结束,然后才能更新行为准则
- 单步更新(Temporal-Difference update):在游戏过程中,每一步都可以更新,不用等待游戏的结束,边玩边学习,学习效率更好
3.Rollout的含义
Rollouts通常指的是在执行策略梯度或其他基于模拟的强化学习方法时,智能体在环境中进行的一系列模拟交互步骤。这些步骤用于收集数据,以评估或改进当前的策略。
在强化学习中,rollout指的是在训练过程中,智能体根据当前的策略在环境中进行一系列的模拟交互步骤,模拟并收集样本数据的过程。在每个rollout中,智能体从环境中观测当前状态,然后根据选择的策略采取一个动作。接下来,智能体与环境进行交互,执行该动作,并观察到下一个状态和获得的奖励。此后,智能体根据新的状态更新其策略,并在下一个步骤中选择下一个动作。这个过程会持续进行,直到满足某个停止条件,比如达到最大步数或达到终止状态。
Rollout的目的是通过与环境的交互来生成样本数据,用于策略优化和价值函数估计。这些样本数据将被用于更新策略参数或进行价值函数的拟合,以改善智能体的性能。通常,rollout会在训练过程中进行多次,以收集足够的样本数据来训练和优化智能体。
Rollout的长度可以根据具体任务进行调整,可以是固定长度,也可以是变长的。在一些连续控制任务中,rollout可能会持续进行数百或数千个时间步。然而,在一些离散决策任务中,rollout可能会在有限步数内完成。
4.episode回合、transition转移、trajectory轨迹的概念
4.1 episode回合
一个完整的任务执行过程被称为一个回合或一个episode,强调任务从开始到终止的全部过程。一个episode可以包含多个trajectory。在某些情况下,一个episode可以被视为一个完整的trajectory,而在其他情况下,一个trajectory可能只是episode中的一部分。
在每个回合中,智能体从环境中接收状态(state),然后执行动作(action),环境根据智能体的动作和当前状态返回奖励(reward)和新的状态。这个过程一直持续,直到任务结束或达到某个终止条件。例如,在玩棋盘游戏时,一个回合可能是一整局游戏的过程,从游戏开始到游戏结束。
4.2 transition转移
在强化学习中,一个状态到另一个状态的变化被称为转移。转移通常由三元组表示:(state, action, next_state)。即在某个状态下,智能体执行了一个动作后,环境的响应将导致状态从当前状态转移到下一个状态。转移还可以包括奖励信号,可以表示为四元组:(state, action, next_state, reward)。
4.3 trajectory(轨迹)
一个轨迹是智能体与环境之间相互作用的一个序列,通常包括一系列状态、动作和奖励。轨迹是一连串的状态-动作对,描述了智能体是如何在环境中移动并与环境互动的。轨迹可以由一系列转移组成,而一个回合中的所有转移组合在一起就形成了整个轨迹。trajectory可以是从一个episode中抽取的,也可以是多个episode的组合。trajectory可以跨越多个episode,或者是一个episode中的一个子序列。
4.4 回合、转移、轨迹三者的区别与联系
- Episode(回合)通常由一系列Transition(转移)组成
- episode是整个学习任务的执行过程,trajectory是一个序列,而transition是轨迹中的单一步骤
- 个人理解:多个transition构成一个trajectory,一个或多个trajectory构成一个episode
- 举个例子,考虑一个机器人学习走迷宫的任务。一个回合可以包含机器人从迷宫的入口走到出口的整个过程。在这个回合中,机器人可能经历了多个轨迹,每个轨迹对应于机器人在迷宫中的不同路径选择。每个轨迹可以被看作是一次特定的路径规划过程。
4.5 范围(horizon)
范围(horizon) 是指一个回合的长度(每个回合最大的时间步数)
4.6 自举(bootstrapping)
在统计学中,自举(Bootstrapping)是一种通过对原始数据集进行重复采样(有放回的抽样)来估计统计量分布的方法。在强化学习中,“自举”通常是指利用现有的估计(如当前的Q值或价值函数)来改进未来的估计。这种方法是基于递归的思想,其中估计值会根据自己的估计来进行更新,逐步逼近正确的值。