RL学习算法
- 基于策略的算法:这是最通用的优化类型。策略将状态映射到操作。学习策略的 RL 代理可以创建从当前状态到目标状态的动作轨迹
REINFORCE 是一种基于策略的算法。基于策略的算法,优势在于它们可以应用于各种强化学习问题;但是其样本效率很低,需要大量训练才能收敛得到最佳解决方案
- 基于值的算法:基于值的函数学习评估状态和动作的值。基于值的函数可帮助 RL 代理评估当前状态与动作的预期回报
SARSA 和 DQN 是两种基于价值的算法。基于值的算法比基于策略的 RL 具有更高的样本效率。它们也存在局限性,就是它们仅适用于离散的动作空间(除非你对它们进行一些更改)
- 基于模型的算法:基于模型的算法采用不同的方法进行强化学习。他们不是评估状态和动作的价值;而是尝试,在给定当前状态和动作的情况下,预测环境的状态。基于模型的强化学习允许代理在采取任何行动之前,预先模拟不同的轨迹。
蒙特卡罗树搜索 (MTCS) 是一种比较流行的基于模型的方法,可应用于确定性环境
Actor-Critic 算法结合了基于策略和基于值的函数的优点。这些算法使用来自价值函数(好比,评论家)的反馈来引导策略学习者(好比,演员)朝着正确的方向前进,从而产生更高效的系统
对于连续控制任务,推荐SAC、TD3和PPO,三种算法都值得试一试并从中择优;对于离散控制任务,推荐SAC-Discrete(即离散版SAC)和PPO。
Q-learning
Q值是一个表格,用于存储每个状态动作对的估计价值。
对于给定的状态s和动作a,Q值表示在状态s执行动作a所获得的长期回报估计。
为什么深度
Q-learning 是一种经典的强化学习算法,它在代理与环境交互时创建了一个状态-动作-奖励值表。当你处理状态和操作数量非常少的简单环境时,此类方法非常有效
当你处理一个复杂的环境时,其中动作和状态的组合数量可能非常巨大,或者环境是不确定的,并且可能存在的状态几乎是无限的;这时,评估每个可能的状态-动作对就变得不可能了
你需要一个近似函数,它可以根据有限的数据学习归纳出最佳策略。给定正确的架构和优化函数,深度神经网络可以直接学习最优策略
比如,深度强化学习模型可以使用卷积神经网络,从视觉数据中提取状态信息。循环神经网络可以从帧序列中提取有用的信息,例如球的朝向,或者汽车是否停放或移动。这种复杂的学习能力,可以帮助 RL 代理理解更复杂的环境,并将其状态映射到动
DRL简单介绍
每个强化学习问题的核心都是代理和环境。
环境提供有关系统状态的信息。代理观察这些状态并通过采取行动与环境交互。
动作可以是离散的(例如,拨动开关)或连续的(例如,转动旋钮)。
这些操作会使环境转换到新状态。
根据新状态与系统目标相关性的大小,代理会收到不同程度的奖励(如果它使代理远离其目标,则奖励也可以为零或负)
**「状态-动作-奖励」**的每个循环都称为一个步骤。
强化学习系统持续循环迭代,直到达到所需状态或达到最大步数。
这一系列的步骤称为一个**「情节」或者「集」**。在每一个情节开始时,环境设置为初始状态,代理的奖励重置为零。
目标是训练智能体采取行动,以最大化其回报。代理的行动功能称为策略
DRL重要概念
1、智能体
2、环境
3、状态
4、动作
5、奖励
6、策略:策略定义了智能体在给定状态下选择动作的方式
ε-贪婪策略:该策略在选择动作时,以1-ε的概率选择当前最优的动作,以ε的概率选择随机动作
7、值函数:
值函数用来评估状态或状态-动作对的价值,表示从该状态或状态-动作对开始,智能体能够获得的长期累积奖励的期望值
可以使用深度学习网络模型来逼近值函数,比如:让神经网络输入状态,输出各个动作下的奖励值
DRL特点
- 在每个时刻 agent与环境交互得到一个高维度的观察,并利用 DL 方法来感知观察,以得到抽象、具体的状态特征表示
- 基于预期回报来评价各动作的价值函数,并通过某种策略将当前状态映射为相应的动作
- 环境对此动作做出反应,并得到下一个观察.通过不断循环以上过程,最终可以得到实现目标的最优策略
过拟合特点
Value函数过拟合环境特性和reward函数,Policy又过拟合Value函数。一朝天子一朝臣,一种环境一种policy,环境换了,policy废了。
基本要求
- 场景固定:训练环境尽可能做到与工作(测试)环境相同
- 目标明:最好可以量化
- 数据廉价,
- 过程复杂,
- 自由度高:空间大、限制少
马尔科夫决策过程(MDP)
- 状态(State):系统或环境可能处于的不同状态。
- 动作(Action):在每个状态下可选的决策或行动。
- 转移概率(Transition Probability):在执行某个动作后,系统从一个状态转移到另一个状态的概率分布。
- 奖励(Reward):在每个状态执行某个动作后获得的即时奖励。
- 策略(Policy):根据当前状态选择动作的策略
策略迭代
在策略改进阶段,根据已经计算得到的值函数,更新策略,以便在每个状态下选择更好的行动。
通过比较每个行动的价值(即采取该行动后的预期累积奖励),选择在每个状态下最好的行动,从而改进策略
策略迭代的过程是循环进行策略评估和策略改进,直到策略收敛到最优策略为止
ε-greedy策略
平衡探索与利用的关键是在算法中使用ε-greedy策略。ε-greedy策略以ε的概率进行随机探索,选择一个随机动作,以便发现新的状态-动作对。
而以1-ε的概率进行利用,选择具有最高Q值的动作,以最大化累积奖励
较高的ε值会增加探索的概率,但可能导致较低的利用效率;
较低的ε值会降低探索的概率,但可能导致局部最优的陷阱
策略迭代
SARSA(「State-Action-Reward-State-Action」)算法,基于动态规划和迭代更新
是基于当前状态和动作的Q值来更新值函数,而不仅仅是基于最大Q值
它在每个时间步中,根据当前状态选择动作,执行该动作并观察奖励和下一个状态,然后使用下一个状态的动作来更新当前状态的值函数。这种**「即时更新」**的策略使得SARSA算法对于探索和利用之间的平衡具有一定的灵活性。