转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~
深度强化学习(Deep Reinforcement Learning, DRL)是强化学习(RL)与深度学习(DL)的交叉领域,其核心在于利用深度学习的表征能力处理 RL 中的高维状态空间、复杂决策问题。传统 RL 在面对图像、语音等非结构化数据时难以有效提取特征,而 DRL 通过神经网络(如 CNN、RNN、Transformer)自动学习状态表示,实现了从感知到决策的端到端优化。
DRL 算法可按核心思想分为三大类,每类均有代表性算法及改进版本:
(1) 状态(State, s)是什么?
(2) 观察(Observation, o)是什么?
(3) 动作(Action, a)是什么?
(4) 动作空间(Action Spaces)是什么?
不同的环境允许不同类型的操作。给定环境中所有有效动作的集合通常称为动作空间 。一些环境,如 Atari 和 Go,具有离散的动作空间 ,其中只有有限数量的动作可供智能体使用。其他环境,比如智能体在物理世界中控制机器人的地方,有连续的动作空间 。在连续空间中,动作是实值向量。
(5) 轨迹(Trajectory, \tau)是什么?
(6) 策略(policy, \pi(a|s))是什么?
简单来说,策略就是agent在不同环境状态下决定采取何种动作的规则或方法。比如在一个游戏中,智能体面对敌人来袭的状态,策略会告诉它是选择攻击、躲避还是防御。
策略可以是确定性的,即给定一个状态,明确指定要采取的动作;也可以是随机性的,给出在该状态下采取每个可能动作的概率分布。例如,在自动驾驶中,看到红灯时,确定性策略是停车;而在股票交易中,随机性策略可能是根据当前市场状态,以 60% 的概率买入某只股票,40% 的概率保持观望。
确定性策略 (Deterministic Policies)
下面的代码表示用于使用 torch.nn 包为 PyTorch 中的连续动作空间构建简单的确定性策略:
obs_tensor = torch.as_tensor(obs, dtype=torch.float32)
actions = pi_net(obs_tensor)
这构建了一个多层感知器网络,其中有两个大小为 64 的隐藏层和 \tanh 激活函数。如果 obs 是一个包含一批观测值的 Numpy 数组,pi_net 可以用来获取一批动作,如下所示:
obs_tensor = torch.as_tensor(obs, dtype=torch.float32)
actions = pi_net(obs_tensor)
随机策略 (Stochastic Policies)
深度强化学习中最常见的两种随机策略是分类策略和对角高斯策略 。分类策略可用于离散动作空间,而对角高斯策略可用于连续动作空间。两个关键计算对于使用和训练随机策略至关重要:从策略中采样动作 和 计算特定动作的log likelihoods。
- 分类策略就像是对离散行为的分类器。为分类策略构建神经网络的方式与分类器相同:输入是观察,然后是一些层(可能是卷积或密集连接,取决于输入的类型),然后有一个最终的线性层,为每个动作提供 logits,然后是 softmax 将 logits 转换为概率。
- 多元高斯分布(或多元正态分布)由均值向量和协方差矩阵描述。对角高斯分布是协方差矩阵仅在对角线上具有条目的特殊情况。因此,我们可以用向量来表示它。对角高斯策略总是有一个神经网络,从观察映射到平均动作。
(7) 奖励(Reward, r)是什么?
(8) 价值函数(Value Function, V^\pi(s))是什么?
为何值函数是间接获取策略? 值函数本身并不直接指定智能体在每个状态下应该采取什么动作,而是通过评估不同状态和动作的价值来引导智能体选择最优动作,从而间接确定策略。例如,在基于值函数的强化学习算法中,如 Q-learning,智能体首先学习状态-动作值函数 Q(s, a),然后在每个状态下选择具有最高Q值的动作作为当前的最优动作,这样逐渐形成一个策略。也就是说,先通过学习值函数来了解每个状态-动作对的好坏,再根据这些信息来确定采取什么动作,而不是像直接对策略建模那样直接学习一个从状态到动作的映射。
(9) 行动-价值函数(Action-Value Function, Q^\pi(s,a))是什么?
与价值函数的区别:
(10) 策略参数是什么?
用来描述和调整策略的一些变量。如果把策略想象成一个函数,那么策略参数就是这个函数的参数。以神经网络为例,神经网络的权重和偏置就是策略参数。通过调整这些参数,可以改变策略函数的输出,也就是改变智能体在不同状态下选择动作的方式。比如在一个下棋的智能体中,策略参数决定了它在不同棋局状态下选择下一步棋的概率。优化策略参数的目的是让智能体的行为能够最大化累积奖励,也就是让智能体做出最优的决策。
(11) 如何直接对策略进行建模和学习?
有时在强化学习中,我们不需要描述一个动作在绝对意义上有多好,而只需要描述它比其他动作平均好多少。也就是说,我们想知道这种行为的相对优势 。我们用优势函数使这个概念精确化 。对应于策略 \pi 的优势函数 A^{\pi}(s,a) 描述了在状态 s 中采取特定动作 a 比根据 \pi(\cdot|s) 随机选择动作好多少,假设你永远根据 \pi 行动。在数学上,优势函数定义为:
参考资料:
1、Part 1: Key Concepts in RL — Spinning Up documentation
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。