62、深度强化学习与高级深度学习主题解析

深度强化学习与高级深度学习主题解析

1. 深度强化学习对深度学习模型的改进

强化学习能够改善深度学习模型,这主要通过注意力机制实现。在学习过程中,大量数据往往与学习目标无关,利用强化学习聚焦数据的特定部分,能显著提升学习效果。注意力机制在很多应用中与强化学习紧密结合,不过并非所有注意力模型都依赖强化学习。

1.1 软件资源和测试平台

尽管近年来强化学习算法设计取得了显著进展,但使用这些方法的商业软件仍然相对有限。不过,有许多软件测试平台可用于测试各种算法:
| 平台名称 | 特点 | 应用场景 |
| ---- | ---- | ---- |
| OpenAI | 提供高质量的强化学习基线 | 通用强化学习研究 |
| TensorFlow | 有强化学习算法的实现 | 通用深度学习和强化学习 |
| Keras | 有强化学习算法的实现 | 通用深度学习和强化学习 |
| ELF 框架 | 由 Facebook 创建,开源且轻量级 | 实时策略游戏 |
| OpenAI Gym | 为 Atari 游戏和模拟机器人开发强化学习算法提供环境 | Atari 游戏、模拟机器人 |
| OpenAI Universe | 可将强化学习程序转换为 Gym 环境 | 如自动驾驶汽车模拟 |
| Arcade 学习环境 | 用于开发 Atari 游戏中的智能体 | Atari 游戏 |
| MuJoCo 模拟器 | 物理引擎,用于机器人模拟 | 机器人模拟 |
| ParlAI | Facebook 用于对话研究的开源框架,用 Python 实现 | 对话研究 |
| Apollo | 百度自动驾驶汽车项目的开源平台 | 自动驾驶 |

2. 深度强化学习练习

2.1 似然比技巧的推广

将离散动作情况下似然比技巧的证明推广到连续值动作。

2.2 策略网络架构选择的重要性

在不同场景下,策略网络架构的选择对实现策略梯度至关重要。不同的网络架构在处理不同类型的数据和任务时,性能表现会有很大差异。

2.3 两台老虎机问题

有两台老虎机,每台有 100 个灯,奖励的概率分布是当前亮灯模式的未知函数,玩老虎机还会以未知方式改变灯的模式。这个问题比多臂老虎机问题更难,因为奖励分布和灯模式变化都未知。可以设计一个深度强化学习解决方案,通过不断尝试和学习,在每次试验中最优地选择机器,以在稳态下最大化每次试验的平均奖励。具体步骤如下:
1. 初始化策略网络,随机初始化网络参数。
2. 进行多次试验,每次试验中根据当前策略选择一台老虎机。
3. 记录每次选择的老虎机、得到的奖励和灯的模式变化。
4. 根据奖励和策略梯度算法更新策略网络的参数,使得选择能获得更高奖励的老虎机的概率增加。
5. 重复步骤 2 - 4,直到策略收敛,达到稳态。

2.4 石头剪刀布游戏

2.4.1 学习方法选择

人类玩家常根据历史移动来猜测对手的下一步。对于学习玩这个游戏,可以考虑 Q - 学习或基于策略的方法。Q - 学习通过学习状态 - 动作值函数来优化策略;基于策略的方法则直接学习策略。如果游戏环境相对简单,Q - 学习可能更合适;如果环境复杂,基于策略的方法可能更具优势。

2.4.2 应对复杂对手的方法

当人类玩家以未知函数的概率从三种移动中选择,且该概率依赖于双方前 10 步的历史时,可以使用深度循环神经网络(DRNN)来学习对手的策略。具体步骤如下:
1. 收集双方的历史移动数据。
2. 构建 DRNN 模型,输入为双方前 10 步的历史移动,输出为三种移动的概率分布。
3. 使用收集到的数据训练 DRNN 模型。
4. 在游戏中,根据 DRNN 模型的输出选择移动。

一个设计良好的深度学习方法可能会比人类玩家有优势,因为它可以更准确地学习对手的策略。人类玩家可以采用随机策略,以确保与深度学习对手在概率上达到平衡。

2.5 井字棋游戏

在井字棋游戏中,游戏结束时会得到 - 1、0 或 + 1 的奖励。假设双方都进行最优游戏,非终端位置的状态具有非零值,这意味着中间步骤的移动对最终奖励有影响。通过学习所有状态的值,可以更好地理解每个移动的价值,从而优化策略。

2.6 Q - 学习实现

编写一个 Q - 学习实现,通过反复与人类对手玩井字棋来学习每个状态 - 动作对的值。不使用函数逼近器,而是使用公式直接学习整个状态 - 动作对表。具体步骤如下:
1. 初始化 Q 值表,将每个状态 - 动作对的 Q 值初始化为 0。
2. 开始游戏,在每个状态下,根据当前的 Q 值表选择动作。
3. 执行动作,观察奖励和新的状态。
4. 根据 Q - 学习公式更新 Q 值表:
- (Q(s,a) = Q(s,a) + \alpha [r + \gamma \max_{a’} Q(s’,a’) - Q(s,a)])
- 其中,(s) 是当前状态,(a) 是执行的动作,(r) 是奖励,(s’) 是新的状态,(\alpha) 是学习率,(\gamma) 是折扣因子。
5. 重复步骤 2 - 4,直到达到收敛。

2.7 两步 TD 误差相关算法

2.7.1 两步 TD 学习算法

两步 TD 误差定义为:(\delta_{t}^{(2)} = r_t + \gamma r_{t + 1} + \gamma^2 V(s_{t + 2}) - V(s_t))。可以设计一个基于此误差的 TD 学习算法,具体步骤如下:
1. 初始化值函数 (V(s))。
2. 在每个时间步 (t),观察状态 (s_t),执行动作 (a_t),得到奖励 (r_t) 和新状态 (s_{t + 1})。
3. 继续执行动作 (a_{t + 1}),得到奖励 (r_{t + 1}) 和新状态 (s_{t + 2})。
4. 根据两步 TD 误差更新值函数:
- (V(s_t) = V(s_t) + \alpha \delta_{t}^{(2)})
- 其中,(\alpha) 是学习率。
5. 重复步骤 2 - 4。

2.7.2 基于 SARSA 的 n 步学习算法

设计一个类似 SARSA 的 n 步学习算法。当 (\lambda = 1) 时,更新是公式的截断变体。当 (n = \infty) 时,该算法将考虑所有未来步骤的奖励,类似于蒙特卡罗方法。

2.7.3 基于 Q - 学习的离策略 n 步学习算法

设计一个类似 Q - 学习的离策略 n 步学习算法。与基于 SARSA 的算法相比,离策略算法可以使用不同的策略来生成动作和评估价值,具有更高的灵活性,但可能需要更多的样本才能收敛。

3. 高级深度学习主题

3.1 注意力机制

人类在完成特定任务时,很少使用环境中的所有可用信息,而是聚焦于与任务相关的特定数据部分,这就是注意力机制。这种机制在计算机视觉和自然语言处理等领域有广泛应用。

3.1.1 计算机视觉中的注意力机制

以 Google Streetview 图像为例,要从房屋正面的大图像中识别街道地址的数字,需要系统地聚焦图像的小部分。由于无法提前确定相关部分,需要迭代搜索,这与强化学习的迭代过程相似。

3.1.2 自然语言处理中的注意力机制

在机器翻译和问答系统等应用中,循环神经网络难以聚焦源句子的适当部分进行翻译。注意力机制有助于在生成目标句子的特定部分时,隔离源句子的相关部分。不过,自然语言模型中的大多数注意力机制不使用强化学习,而是以软方式对输入的特定部分进行加权。

3.1.3 视觉注意力的循环模型

使用强化学习聚焦图像的重要部分。通过一个相对简单的神经网络,只对以特定位置为中心的图像部分进行高分辨率处理。选择特定位置的操作称为“瞥见”,使用循环神经网络作为控制器,根据上一个时间步的瞥见反馈确定当前时间步的位置。整体架构包括以下模块:

graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    A[Glimpse Sensor]:::process --> B[Glimpse Network]:::process
    B --> C[Recurrent Neural Network]:::process
    C --> D[Output Action]:::process
    C --> E[Next Glimpse Location]:::process
    D --> F[Reward]:::process
    E --> A
  • Glimpse 传感器 :给定图像 (X_t),创建类似视网膜的图像表示,只能访问以 (l_{t - 1}) 为中心的高分辨率小部分图像,图像分辨率随与 (l_{t - 1}) 的距离增加而降低,输出表示为 (\rho(X_t, l_{t - 1}))。
  • Glimpse 网络 :包含 Glimpse 传感器,使用线性层将瞥见位置 (l_{t - 1}) 和瞥见表示 (\rho(X_t, l_{t - 1})) 编码到隐藏空间,然后将两者组合成单个隐藏表示 (g_t),作为循环神经网络隐藏层的输入。
  • 循环神经网络 :主网络,在每个时间步生成动作驱动的输出以获取奖励。输出动作 (a_t) 和下一个时间步的瞥见位置 (l_t),动作概率 (\pi(a_t)) 使用 softmax 函数实现。使用 REINFORCE 框架的目标函数进行训练,以最大化随时间的预期奖励。循环网络的动作历史编码在隐藏状态 (h_t) 中。

3.2 具有选择性访问内部内存的模型

这类模型与注意力模型密切相关,主要区别在于注意力主要集中在存储数据的特定部分。可以将其类比为人脑执行特定任务时对记忆的访问方式。人类大脑中有大量数据,但在任何时刻,只访问与当前任务相关的一小部分。现代计算机也有大量内存,程序通过变量等间接寻址机制选择性、可控地访问内存。

神经网络以隐藏状态的形式拥有内存,但内存与计算紧密结合,难以将数据访问与计算分离。通过更选择性地控制对神经网络内部内存的读写,并明确引入寻址机制,得到的网络在进行计算时更接近人类的编程方式。这种网络在对样本外数据进行预测时,通常比传统神经网络具有更好的泛化能力。可以将选择性内存访问视为对神经网络内存内部应用一种注意力形式,由此产生的架构被称为内存网络或神经图灵机。

3.2.1 内存网络和神经图灵机的特点
  • 更接近人类编程方式 :通过引入寻址机制,使得网络在进行计算时能够像人类编程一样,有针对性地访问和处理数据。
  • 更好的泛化能力 :在处理样本外数据时,能够更好地适应新的数据,做出更准确的预测。
3.2.2 应用前景

虽然目前在构建问答系统等方面的成果还比较初级,但神经图灵机显示出了很大的潜力。随着数据量的增加和计算能力的提升,有望实现更多人工智能的能力。

3.3 生成对抗网络

生成对抗网络旨在从样本中创建数据的生成模型。它由两个对抗网络组成,一个是生成合成样本的生成器,另一个是将原始实例和生成样本混合分类为真实或合成的判别器。通过对抗游戏,生成器会随着时间不断改进,直到判别器无法区分真实和虚假样本。

此外,通过对特定类型的上下文(如图像标题)进行条件设置,还可以引导创建特定类型的所需样本。生成对抗网络的工作流程如下表所示:
| 步骤 | 生成器 | 判别器 |
| ---- | ---- | ---- |
| 1 | 生成合成样本 | 接收原始实例和生成样本的混合数据 |
| 2 | - | 对混合数据进行分类,判断是真实还是合成 |
| 3 | 根据判别器的反馈调整参数,改进生成样本的质量 | - |
| 4 | 重复步骤 1 - 3,直到判别器无法区分真实和虚假样本 | - |

3.4 竞争学习方法

与基于误差改变权重的前馈网络不同,竞争学习是一种让神经元竞争响应输入数据子集的学习方式。在这种学习中,权重根据竞争的获胜者进行修改。它是第 6 章中讨论的赫布学习的一种变体,适用于聚类、降维和压缩等无监督学习应用。

3.4.1 竞争学习的原理

在竞争学习中,神经元会竞争对输入数据的响应权。当一个神经元获胜时,它的权重会根据输入数据进行调整,以更好地响应类似的数据。这种竞争机制使得神经元能够自动地对输入数据进行分类和聚类。

3.4.2 应用场景
  • 聚类 :将相似的数据点聚集在一起,形成不同的类别。
  • 降维 :减少数据的维度,同时保留数据的主要信息。
  • 压缩 :对数据进行压缩,减少数据的存储空间。

3.5 神经网络的局限性

尽管神经网络在许多领域取得了显著的成果,但它也存在一些局限性。例如,神经网络通常需要大量的数据进行训练,对数据的质量和数量要求较高。此外,神经网络的解释性较差,难以理解其决策过程。而且,神经网络在处理复杂的逻辑推理和抽象概念时可能存在困难。

3.6 总结

本文介绍了深度强化学习和高级深度学习的多个主题。深度强化学习通过注意力机制等方法改进深度学习模型,同时提供了丰富的软件资源和测试平台。通过一系列的练习,可以加深对深度强化学习的理解和应用能力。

高级深度学习主题包括注意力机制、具有选择性访问内部内存的模型、生成对抗网络、竞争学习方法等。这些主题展示了深度学习的最新发展和应用前景,同时也指出了神经网络存在的局限性。在实际应用中,需要根据具体的问题和需求,选择合适的方法和模型,以实现最佳的效果。未来,随着技术的不断发展,深度学习有望在更多领域取得突破和应用。

以下是一个总结上述高级深度学习主题的 mermaid 流程图:

graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    A[Attention Mechanisms]:::process --> B[Computer Vision]:::process
    A --> C[Natural Language Processing]:::process
    A --> D[Recurrent Models of Visual Attention]:::process
    E[Models with Selective Access to Internal Memory]:::process --> F[Memory Networks]:::process
    E --> G[Neural Turing Machines]:::process
    H[Generative Adversarial Networks]:::process --> I[Generator]:::process
    H --> J[Discriminator]:::process
    K[Competitive Learning Methods]:::process --> L[Clustering]:::process
    K --> M[Dimensionality Reduction]:::process
    K --> N[Compression]:::process
    O[Limitations of Neural Networks]:::process --> P[Data Requirements]:::process
    O --> Q[Interpretability]:::process
    O --> R[Complex Logic Reasoning]:::process

通过这个流程图,可以更直观地看到各个高级深度学习主题之间的关系和包含的子主题。

【博士论文复现】【阻抗建模、验证扫频法】光伏并网逆变器扫频稳定性分析(包含锁相环电流环)(Simulink仿真实现)内容概要:本文档是一份关于“光伏并网逆变器扫频稳定性分析”的Simulink仿真实现资源,重点复现博士论文中的阻抗建模扫频法验证过程,涵盖锁相环和电流环等关键控制环节。通过构建详细的逆变器模型,采用小信号扰动方法进行频域扫描,获取系统输出阻抗特性,并结合奈奎斯特稳定判据分析并网系统的稳定性,帮助深入理解光伏发电系统在弱电网条件下的动态行为失稳机理。; 适合人群:具备电力电子、自动控制理论基础,熟悉Simulink仿真环境,从事新能源发电、微电网或电力系统稳定性研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①掌握光伏并网逆变器的阻抗建模方法;②学习基于扫频法的系统稳定性分析流程;③复现高水平学术论文中的关键技术环节,支撑科研项目或学位论文工作;④为实际工程中并网逆变器的稳定性问题提供仿真分析手段。; 阅读建议:建议读者结合相关理论教材原始论文,逐步运行并调试提供的Simulink模型,重点关注锁相环电流控制器参数对系统阻抗特性的影响,通过改变电网强度等条件观察系统稳定性变化,深化对阻抗分析法的理解应用能力。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值