61、强化学习:从 L - 学习到 Q - 学习的升级

强化学习:从 L - 学习到 Q - 学习的升级

1. L - 学习算法的困境

在某些学习场景中,L - 学习算法存在明显的不足。例如在玩 Flippers 游戏时,当一辆卡车隆隆驶过时,可能会随机翻转一个方块,导致游戏情况变得不可预测。原本认为得分最高的单元格,其奖励值可能会被新的情况覆盖。如原本奖励值为 0.6 的单元格,可能会被新的 0.44 覆盖,且该单元格不再是该行得分最高的单元格。

在训练过程中,偶尔会随机选择一行中的一个单元格进行探索。但这可能导致系统忘记如何很好地玩这个游戏板。L - 表通常达不到应有的水平,因此,平均而言,由 L - 学习驱动的游戏时间更长,获得的奖励更低。这就是为什么说这个算法“糟糕”。不过,这个算法大部分是可行的,只是需要解决其在面对不可预测性时的失败问题。

2. Q - 学习算法的引入

Q - 学习是一种可以轻松从 L - 学习升级而来的更有效的算法。它在随机或不可预测的环境中表现出色。从 L - 学习到 Q - 学习,主要进行了三个方面的升级:
- 计算 Q 表单元格的新值 :Q - 学习算法从两个重要原则出发。一是预期结果存在不确定性,所以从一开始就将其纳入考虑;二是随着过程的进行计算新的 Q 表值,而不是等待最终奖励。这使得它可以处理长时间甚至可能永远不会结束的游戏或过程,如电梯调度。
- 更新现有值 :为了实现这一点,还需要升级环境的奖励过程。环境不再仅在最后一步给予奖励,而是在每次采取行动后立即返回估计该行动质量的奖励。
- 选择行动的策略 :Q - 学习在选择行动时,不总是选择 Q 值最高的行动,而是大部分时间选择 Q 值最高的行动,其余时间选择其他行动。

3. Q 值的计算与更新

3.1 Q 值的计算

Q 值是一种在不知道事情最终结果的情况下近似总未来奖励的方法。计算 Q 值时,将立即奖励与未来所有其他奖励相加。具体来说,通过使用下一步状态的奖励来计算未来奖励。

例如,每次移动时会保存四个信息:起始状态、选择的行动、获得的奖励以及该行动导致的新状态。利用新状态来计算其余的未来奖励。关键在于,下一步行动从新状态开始,根据策略总是选择 Q 值最大的行动。将该单元格的 Q 值与立即奖励相加,就得到当前单元格的总未来奖励。

不过,Q - 学习还需要考虑随机性。不是直接使用下一步行动单元格的值,而是使用该单元格的折扣值,即乘以折扣因子 γ(一个介于 0 到 1 之间的数)。γ 值越小,对未来不可预测事件不会改变该值的确定性越低。

3.2 Q 值的更新

在更新当前单元格的 Q 值时,简单地用新值替换旧值在面对不确定性时不是一个好选择。Q - 学习的解决方案是将新值作为旧值和新值的混合进行更新。混合程度由一个介于 0 到 1 之间的参数 α(学习率)控制。
- 当 α = 0 时,单元格的值完全不变。
- 当 α = 1 时,新值完全替换旧值,就像 L - 学习那样。
- 当 0 < α < 1 时,混合新旧值。

在实践中,通常将 α 设置为接近 1 的值,如 0.9 或 0.99。通过训练系统并观察其表现,然后根据观察结果调整 α 的值,直到找到最适合的值。这个过程通常会自动化进行。

4. Q - 学习的策略

4.1 ε - 贪心策略

也称为 ε - 软策略,选择一个介于 0 到 1 之间的小数字 ε,通常接近 0,如 0.01 或更小。每次在一行中准备选择行动时,系统会从均匀分布中随机选择一个 0 到 1 之间的数字。
- 如果随机数字大于 ε,则选择该行中 Q 值最大的行动。
- 如果随机数字小于 ε,则从该行的其他行动中随机选择一个。

4.2 软最大(Softmax)策略

类似于第 13 章讨论的软最大层。将一行中的 Q 值应用软最大函数后,它们会以复杂的方式转换,使得它们的总和为 1。这样可以将结果值视为离散概率分布,然后根据这些概率随机选择一个条目。

不过,软最大的特定计算有时可能导致系统无法稳定在一组好的 Q 值上,此时可以考虑使用 mellowmax 策略。

4.3 策略对比

策略名称 特点 优势 劣势
ε - 贪心策略 大部分时间选择 Q 值最大的行动,小概率随机选择其他行动 简单易实现,能在一定程度上平衡探索和利用 随机选择可能过于盲目
软最大策略 根据 Q 值转换后的概率分布选择行动 概率反映当前 Q 值,随着 Q 值变化而变化 计算可能导致系统不稳定

5. Q - 学习的整体流程

5.1 流程概述

当需要进行移动时,使用当前状态找到 Q 表中相应的行,根据策略(ε - 贪心或软最大)选择一个行动。采取该行动后,会得到一个奖励和一个新状态。为了反映从奖励中学到的信息,需要更新 Q 值。查看新状态中的 Q 值,选择最大的一个,根据对环境不可预测性的判断对其进行折扣,将其与立即奖励相加,然后将新值与当前 Q 值混合,得到该行动的新 Q 值并保存。

5.2 mermaid 流程图

graph LR
    classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;

    A([开始移动]):::startend --> B(使用当前状态查找 Q 表行):::process
    B --> C{选择策略}:::decision
    C -->|ε - 贪心| D(生成随机数,与 ε 比较):::process
    C -->|软最大| E(应用软最大函数选择行动):::process
    D -->|随机数 > ε| F(选择 Q 值最大的行动):::process
    D -->|随机数 < ε| G(随机选择行动):::process
    E --> H(根据概率选择行动):::process
    F --> I(采取行动):::process
    G --> I
    H --> I
    I --> J(获得奖励和新状态):::process
    J --> K(查找新状态对应的 Q 表行):::process
    K --> L(选择最大 Q 值):::process
    L --> M(对最大 Q 值进行折扣):::process
    M --> N(与立即奖励相加):::process
    N --> O(与当前 Q 值混合):::process
    O --> P([保存新 Q 值]):::startend

5.3 参数选择

策略参数 ε、学习率 α 和折扣因子 γ 的最佳值需要通过反复试验来确定。这些因素与具体任务的性质、环境的特点以及所处理的数据密切相关。经验和直觉可以提供较好的起始点,但最终还是需要通过传统的试错方法来找到最适合任何特定学习系统的值。

6. “先有鸡还是先有蛋”的问题及解决

6.1 问题提出

之前提到在评估更新规则时需要准确的 Q 值,但这些 Q 值本身又是通过更新规则使用后续步骤的值计算得到的,每一步似乎都依赖于下一步的数据,那么如何使用还未创建的数据呢?

6.2 解决方案

一个简单而有效的办法是忽略这个问题。可以将 Q 表初始化为全零,然后开始学习。在开始阶段,系统的移动是随机的,因为 Q 表中没有信息帮助它选择一个单元格而不是另一个。它随机选择一个单元格并执行该移动。由于所有行动对应的初始 Q 值都是零,所以无论使用什么值作为 α 和 γ,更新规则都会使单元格的分数保持为零。

系统在最初玩游戏时看起来混乱且愚蠢,会做出糟糕的选择并错过明显的好棋。但最终,系统会偶然获得一次胜利,这次胜利会得到一个正的奖励,这个奖励会更新导致胜利的行动的 Q 值。之后,导致该行动的前一个行动会因为 Q 学习中向前看一步的步骤而融入部分这个高奖励。这种涟漪效应会在系统中逐渐反向传播,新的游戏会进入那些先前导致胜利的状态。

需要注意的是,信息实际上并不是向后移动的。每个游戏都是从头到尾进行的,每次移动后都会立即进行更新。信息看起来向后移动是因为 Q 学习在评估更新规则时涉及向前看一步的步骤,下一步的分数能够影响当前步骤的分数。

6.3 收敛过程

由于策略有时会尝试新的行动,最终每个行动都会通向一条胜利的路径,这些值也会影响越来越早的行动。最终,Q 表会填满能够准确预测每个行动奖励的值。进一步的游戏只会提高这些值的准确性。这种逐渐形成一致解决方案的过程称为收敛,即 Q 学习算法收敛。

6.4 收敛证明与时间问题

可以从数学上证明 Q 学习算法会收敛,这保证了 Q 表会逐渐变得更好。但无法确定收敛需要多长时间。Q 表越大,环境越不可预测,训练过程所需的时间就越长。收敛速度还取决于系统试图学习的任务的性质、提供的反馈以及所选择的参数。

7. 总结与应用展望

7.1 总结

Q 学习算法通过对 L 学习算法的升级,解决了在不可预测环境中的学习问题。它通过改进 Q 值的计算、更新方式以及选择行动的策略,在不确定的情况下能够更好地学习和优化。通过将 Q 表初始化为零并开始学习,利用奖励反馈和向前看一步的机制,最终实现收敛,使得 Q 表中的值能够准确预测每个行动的奖励。

7.2 应用展望

Q 学习算法在许多领域都有广泛的应用前景,如机器人控制、游戏开发、资源管理等。在机器人控制中,机器人可以通过 Q 学习算法在复杂和不确定的环境中学习如何做出最优决策,如避障、路径规划等。在游戏开发中,Q 学习可以用于训练游戏中的智能对手,使其能够根据不同的游戏状态做出合理的行动。在资源管理中,如能源分配、库存管理等,Q 学习可以帮助系统根据实时情况进行优化决策。

7.3 未来挑战与改进方向

虽然 Q 学习算法有很多优点,但也面临一些挑战。例如,在大规模问题中,Q 表可能会变得非常大,导致计算和存储成本增加。此外,对于一些复杂的环境,收敛速度可能较慢。未来的研究可以集中在如何优化 Q 学习算法,如使用函数逼近方法来减少 Q 表的大小,或者改进策略选择方法以提高收敛速度。

8. 相关概念对比

8.1 L 学习与 Q 学习对比

算法名称 环境适应性 值计算方式 更新方式 行动选择策略 收敛情况
L 学习 对不可预测环境适应性差 简单计算 直接替换旧值 通常选 L 值最大行动 易受不确定性影响
Q 学习 适合随机、不可预测环境 考虑不确定性和未来奖励 混合新旧值 大部分选 Q 值最大行动,部分随机选 可收敛

8.2 不同策略对比(补充)

除了前面提到的 ε - 贪心和软最大策略,这里进一步对比它们与 mellowmax 策略。
| 策略名称 | 特点 | 优势 | 劣势 |
| ---- | ---- | ---- | ---- |
| ε - 贪心策略 | 以小概率随机探索 | 简单直观 | 随机探索可能缺乏针对性 |
| 软最大策略 | 根据概率分布选择行动 | 概率反映 Q 值动态变化 | 计算复杂,可能不稳定 |
| mellowmax 策略 | 使用不同数学计算 | 避免软最大的部分问题 | 可能需要更多调参 |

9. mermaid 流程图:Q 学习整体收敛过程

graph LR
    classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;

    A([初始化 Q 表为全零]):::startend --> B(随机选择行动并执行):::process
    B --> C(获得奖励和新状态):::process
    C --> D(更新 Q 值):::process
    D --> E{是否收敛}:::decision
    E -->|否| B
    E -->|是| F([Q 表收敛,学习完成]):::startend

这个流程图展示了 Q 学习从初始化到收敛的整个过程,从随机行动开始,不断根据奖励更新 Q 值,直到达到收敛状态。

通过对 Q 学习算法的全面介绍,我们可以看到它在强化学习领域的重要性和潜力。在实际应用中,需要根据具体问题选择合适的参数和策略,以实现最佳的学习效果。随着技术的不断发展,Q 学习算法有望在更多领域发挥重要作用。

分布式微服务企业级系统是一个基于Spring、SpringMVC、MyBatis和Dubbo等技术的分布式敏捷开发系统架构。该系统采用微服务架构和模块化设计,提供整套公共微服务模块,包括集中权限管理(支持单点登录)、内容管理、支付中心、用户管理(支持第三方登录)、微信平台、存储系统、配置中心、日志分析、任务和通知等功能。系统支持服务治理、监控和追踪,确保高可用性和可扩展性,适用于中小型企业的J2EE企业级开发解决方案。 该系统使用Java作为主要编程语言,结合Spring框架实现依赖注入和事务管理,SpringMVC处理Web请求,MyBatis进行数据持久化操作,Dubbo实现分布式服务调用。架构模式包括微服务架构、分布式系统架构和模块化架构,设计模式应用了单例模式、工厂模式和观察者模式,以提高代码复用性和系统稳定性。 应用场景广泛,可用于企业信息化管理、电子商务平台、社交应用开发等领域,帮助开发者快速构建高效、安全的分布式系统。本资源包含完整的源码和详细论文,适合计算机科学或软件工程专业的毕业设计参考,提供实践案例和技术文档,助力学生和开发者深入理解微服务架构和分布式系统实现。 【版权说明】源码来源于网络,遵循原项目开源协议。付费内容为本人原创论文,包含技术分析和实现思路。仅供学习交流使用。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值