1.1QN基本概念 在强化学习中,四个最基本的元素是 s : 当前状态state a : 当前状态下能够采取的行动action r : 在当前状态s下采取行动a之后所获得的即时奖励reward,可以是正激励,也可以是负激励。 : 当前状态s下采取行动a之后达到的下一状态 在DQN中还有另外一个重要概念:经验q : 在状态s下执行a行动所获得的即时奖励 : 在状态s下执行a行动所获得的经验分数 奖励矩阵是固定的,经验矩阵则是根据的值一步步计算出来的: 初始时都是0,通过上式不断迭代最终计算出一个不变的经验矩阵 是学习率,是折损率,都是人工设置的 代表下一状态采取的所有行动中经验最高的 当学习率时, 在计算出经验矩阵之后,对于任意状态都可以根据选择最优的行动。 ### 深度强化学习知识点解析 #### 一、DQN基本概念 **1.1 强化学习基本元素** 在深入理解深度强化学习(Deep Q-Network, DQN)之前,我们首先需要掌握强化学习的基本元素: - **s**: 当前状态(State)。这是指环境的一个具体状态,在强化学习问题中,代理(agent)会处于不同的状态之中。 - **a**: 行动(Action)。代理在当前状态s下可以选择执行的动作。 - **r**: 即时奖励(Reward)。这是代理执行某个动作a之后,从环境中接收到的反馈。奖励可以是正的(正激励),也可以是负的(负激励)。 - **s'**: 下一状态(Next State)。执行动作a后,代理将会转移到一个新的状态s'。 **1.2 DQN中的关键概念:经验Q** 除了上述基本元素之外,在DQN中还引入了“经验Q”的概念: - **R(s,a)**: 在状态s下执行动作a所获得的即时奖励。 - **Q(s,a)**: 在状态s下执行动作a所获得的经验分数。 **1.3 经验矩阵的构建与迭代** 经验矩阵Q(s,a)是通过奖励矩阵Rs\*a逐步迭代而来的。具体迭代公式如下: \[Q(s,a) = Q(s,a) + \alpha(R(s,a) + \gamma \cdot \max_{a'} Q(s',a') - Q(s,a))\] 其中: - \(\alpha\) 是学习率,控制模型对新信息的敏感程度。 - \(\gamma\) 是折损率,用于衡量未来奖励的重要性。通常取值范围在[0,1]之间。 - \(\max_{a'} Q(s',a')\) 代表在下一个状态\(s'\)下所有可能动作a'中经验分数最高的那个。 **1.4 DQN算法流程** DQN算法的具体步骤如下: 1. **初始化参数**:随机设置一个初始状态s。 2. **循环遍历**: 1. 根据当前策略选择一个动作a。 2. 执行动作a,观察到奖励r及新的状态s'。 3. 将(s,a,r,s')四元组存储到经验回放池(Experience Replay Buffer)中。当经验回放池达到一定的容量后,用新的记忆替换旧的记忆。 4. 当经验回放池达到一定大小或代理执行了一定数量的动作后,从经验回放池中随机抽取一批样本进行学习。 5. 如果游戏结束,则重新初始化状态;如果游戏未结束,则更新状态为s'。 **1.5 模型学习流程** - **批次采样**:从经验回放池中随机抽取一定数量的样本(例如batch_size=32)。 - **模型输入处理**: - 将状态s输入评估网络(eval_net)计算出Qeval,其维度为(batch_size, action_num)。 - 将状态s'输入目标网络(target_net)计算出Qnext,其维度同样为(batch_size, action_num)。 - **计算目标Q值**: - 初始化Qtarget等于Qeval。 - 对Qtarget中的每一个元素qtarget进行更新,仅更新对应实际选择动作a的那个Q值:\(qtarget[a] = r + \gamma \cdot \max Qnext\)。 - **计算损失函数**:loss = f(Qtarget, Qeval)。 - **模型参数更新**: - 使用反向传播算法更新评估网络eval_net的参数。 - 定期将评估网络eval_net的参数复制到目标网络target_net中。 #### 二、Policy Gradients(策略梯度) **2.1 基本元素** - **s**: 当前状态。 - **a**: 动作。 - **r**: 奖励。 **2.2 算法原理** 策略梯度方法直接对策略函数(policy function)进行优化,其核心思想是根据当前状态下选取各动作的概率和选择该动作后的奖励来调整策略函数。 **2.3 算法流程** 1. **初始化参数**:随机设置一个初始状态s。 2. **循环遍历**: 1. 根据当前策略输出的动作概率选择一个动作a。 2. 执行动作a,观察到奖励r及新的状态s'。 3. 将(s,a,r)三元组存储到经验回放池中。当经验回放池达到一定的容量后,用新的记忆替换旧的记忆。 4. 如果游戏结束,则开始学习过程;如果游戏未结束,则更新状态为s'。 3. **模型学习流程**:与DQN类似,但在策略梯度方法中,模型学习的目标是为了最大化期望累计奖励,而不是最小化预测Q值与目标Q值之间的差距。 #### 总结 本文主要介绍了深度强化学习领域中的两个重要概念——DQN与策略梯度。DQN通过引入经验回放机制以及双网络结构解决了传统Q学习存在的问题,使得在复杂环境中也能高效地学习到好的策略。而策略梯度则直接优化策略函数,避免了价值函数的估计,更加适合解决连续动作空间的问题。这两种方法在理论和实践上都有着广泛的应用前景,是当前深度强化学习研究的重要组成部分。
- 粉丝: 1005
- 资源: 241
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助