- 机器学习基础
- ML - 首页
- ML - 简介
- ML - 快速入门
- ML - 基本概念
- ML - 生态系统
- ML - Python库
- ML - 应用
- ML - 生命周期
- ML - 所需技能
- ML - 实现
- ML - 挑战与常见问题
- ML - 限制
- ML - 真实案例
- ML - 数据结构
- ML - 数学基础
- ML - 人工智能
- ML - 神经网络
- ML - 深度学习
- ML - 获取数据集
- ML - 分类数据
- ML - 数据加载
- ML - 数据理解
- ML - 数据预处理
- ML - 模型
- ML - 监督学习
- ML - 无监督学习
- ML - 半监督学习
- ML - 强化学习
- ML - 监督学习与无监督学习对比
- 机器学习数据可视化
- ML - 数据可视化
- ML - 直方图
- ML - 密度图
- ML - 箱线图
- ML - 相关矩阵图
- ML - 散点矩阵图
- 机器学习统计学
- ML - 统计学
- ML - 均值、中位数、众数
- ML - 标准差
- ML - 百分位数
- ML - 数据分布
- ML - 偏度和峰度
- ML - 偏差与方差
- ML - 假设
- 机器学习中的回归分析
- ML - 回归分析
- ML - 线性回归
- ML - 简单线性回归
- ML - 多元线性回归
- ML - 多项式回归
- 机器学习中的分类算法
- ML - 分类算法
- ML - 逻辑回归
- ML - K近邻算法 (KNN)
- ML - 朴素贝叶斯算法
- ML - 决策树算法
- ML - 支持向量机
- ML - 随机森林
- ML - 混淆矩阵
- ML - 随机梯度下降
- 机器学习中的聚类算法
- ML - 聚类算法
- ML - 基于中心点的聚类
- ML - K均值聚类
- ML - K中心点聚类
- ML - 均值漂移聚类
- ML - 层次聚类
- ML - 基于密度的聚类
- ML - DBSCAN聚类
- ML - OPTICS聚类
- ML - HDBSCAN聚类
- ML - BIRCH聚类
- ML - 亲和传播聚类
- ML - 基于分布的聚类
- ML - 凝聚层次聚类
- 机器学习中的降维
- ML - 降维
- ML - 特征选择
- ML - 特征提取
- ML - 向后逐步回归
- ML - 向前特征构造
- ML - 高相关性过滤器
- ML - 低方差过滤器
- ML - 缺失值比例
- ML - 主成分分析
- 强化学习
- ML - 强化学习算法
- ML - 利用与探索
- ML - Q学习
- ML - REINFORCE算法
- ML - SARSA强化学习
- ML - 演员-评论家方法
- 深度强化学习
- ML - 深度强化学习
- 量子机器学习
- ML - 量子机器学习
- ML - 使用Python的量子机器学习
- 机器学习杂项
- ML - 性能指标
- ML - 自动化工作流程
- ML - 提升模型性能
- ML - 梯度提升
- ML - 自举汇聚 (Bagging)
- ML - 交叉验证
- ML - AUC-ROC曲线
- ML - 网格搜索
- ML - 数据缩放
- ML - 训练与测试
- ML - 关联规则
- ML - Apriori算法
- ML - 高斯判别分析
- ML - 成本函数
- ML - 贝叶斯定理
- ML - 精度和召回率
- ML - 对抗性
- ML - 堆叠泛化
- ML - 迭代次数
- ML - 感知器
- ML - 正则化
- ML - 过拟合
- ML - P值
- ML - 熵
- ML - MLOps
- ML - 数据泄露
- ML - 机器学习的商业化
- ML - 数据类型
- 机器学习资源
- ML - 快速指南
- ML - 速查表
- ML - 面试问题
- ML - 有用资源
- ML - 讨论
强化学习算法
强化学习算法是一种机器学习算法,用于训练智能体在环境中做出最佳决策。Q学习、策略梯度方法和蒙特卡洛方法等算法通常用于强化学习。目标是最大化智能体随时间的累积奖励。
什么是强化学习 (RL)?
强化学习是一种机器学习方法,其中智能体(软件实体)通过执行动作并监控结果来学习解释环境。对于每个好的动作,智能体都会获得积极反馈,对于每个坏的动作,智能体都会获得消极反馈。它受到动物如何从经验中学习的启发,根据其行为的后果做出决策。
强化学习算法的类型
强化学习算法可以分为两大类:基于模型的和无模型的。区别在于它们如何识别最佳策略 π −
- 基于模型的强化学习算法 − 智能体建立环境模型并预测各种状态下动作的结果。获取模型后,智能体可以使用它来制定策略并预测未来结果,而无需直接与环境互动。这种方法将提高决策效率,因为它不完全依赖于反复试验。
- 无模型的强化学习算法 − 该模型不维护环境模型。相反,它通过与环境的交互来获取策略或价值函数。
基于模型的强化学习算法
以下是一些重要的基于模型的优化和控制算法:
1. 动态规划
动态规划是一个数学框架,用于解决复杂问题,尤其是在决策和控制场景中。它有一组算法,可以用于确定智能体了解环境所有信息(即智能体具有完美的环境模型)时的最优策略。强化学习中动态规划的一些算法包括:
值迭代
值迭代是一种用于计算最优策略的动态规划算法。它根据智能体将遵循最优策略的假设来计算每个状态的值。更新策略基于贝尔曼方程:
$$ \mathrm{ V(s) = \max_{a} \sum_{s',r} P(s',r|s,a) (R(s,a,s') + \gamma V(s')) } $$
策略迭代
策略迭代是一个两步优化过程,用于同时找到最优值函数 VΠ 和对应的最优策略 Π。所涉及的步骤包括:
- 策略评估 − 对于给定的策略,使用贝尔曼方程计算每个状态的值函数。
- 策略改进 − 使用当前值函数,通过选择最大化预期回报的动作来改进策略。
此过程在评估和改进之间交替进行,直到策略达到最优策略。
2. 蒙特卡洛树搜索 (MCTS)
蒙特卡洛树搜索是一种启发式搜索算法。它使用树形结构来探索可能的动作和状态。这使得 MCTS 尤其适用于在复杂环境中进行决策。
无模型的强化学习算法
以下是一些重要的无模型算法:
1. 蒙特卡洛学习
蒙特卡洛学习是强化学习中的一种技术,它专注于基于实际经验来估计价值函数和制定策略,而不是依赖于环境的模型或动力学。蒙特卡洛技术通常使用对与环境交互的多个情景进行平均的概念来竞争预期回报的估计值。
2. 时序差分学习
时序差分 (TD) 学习是无模型强化学习技术之一,其目标是通过使用智能体在其与环境交互过程中收集的经验来评估策略的价值函数。与仅在整个情景完成后才更新价值估计的蒙特卡洛方法相比,TD 学习在每次采取行动和收到奖励后都会增量更新,使其成为最佳决策选择。
3. SARSA
SARSA 是一种用于学习动作值函数 Q(s,a) 的在线、无模型强化学习算法方法。它代表状态-动作-奖励-状态-动作,并根据智能体在其与环境交互过程中实际采取的动作更新其动作值估计。
4. Q学习
Q学习 是一种无模型的离线强化学习技术,用于学习最优动作值函数 Q*(s,a),它给出任何状态-动作对的最大预期奖励。Q学习的主要目标是通过评估最优动作值函数来发现最佳策略,该函数表示在执行动作 a 并随后遵循最优策略时,从状态 s 获得的最大预期奖励。
5. 策略梯度优化
策略梯度优化是一类强化学习算法,其重点是直接优化策略而不是学习价值函数。这些技术修改参数策略的参数以优化预期回报。REINFORCE 算法 是强化学习中一种基于蒙特卡洛方法的策略梯度算法。
基于模型的 RL 与无模型的 RL
基于模型和无模型强化学习算法之间的主要区别在于:
特征 | 基于模型的 RL | 无模型的 RL |
---|---|---|
学习过程 | 首先,学习环境动态的模型,并使用该模型预测未来的动作。 | 完全基于反复试验,直接从观察到的转换和奖励中学习策略或价值函数。 |
效率 | 由于它可以使用学习到的模型模拟许多交互,因此可能会获得更高的样本效率。 | 需要额外的真实世界交互来发现最优策略。 |
复杂度 | 更复杂,因为它需要学习和维护环境的精确模型。 | 相对容易,因为它不必执行模型训练。 |
利用环境 | 主动构建环境模型以预测结果并采取进一步行动。 | 不构建任何环境模型,直接依赖于以往经验。 |
适应性 | 能够适应环境中不断变化的状态。 | 由于依赖以往经验,适应可能需要更长时间。 |
计算需求 | 由于模型开发和学习的复杂性,通常需要更多的计算资源。 | 通常计算需求较低,专注于直接从经验中学习。 |