57、价值函数学习中的自举法:深度强化学习的关键技术

价值函数学习中的自举法:深度强化学习的关键技术

1. 自举法的引入

在强化学习中,传统的 ε - 贪心算法在非情节性设置中表现不佳。以井字棋为例,它是情节性设置,最多九步的固定序列就能确定最终奖励。但在机器人等非情节性场景中,马尔可夫决策过程可能是无限的或非常长,通过蒙特卡罗采样获取真实奖励样本变得困难,此时自举法就派上了用场。

自举法的核心思想是,在马尔可夫决策过程中预测每个时间戳的值(如长期奖励)时,我们不需要每个时间戳的真实值,只要能利用未来的部分模拟来改进当前时间戳的预测即可。这个改进后的预测可以作为当前时间戳的真实值,用于一个对未来一无所知的模型。例如,Samuel 的跳棋程序通过比较当前位置的评估值和向前看几步的极小极大评估值的差异,将其作为“预测误差”来更新评估函数。

2. 马尔可夫决策过程中的相关概念

考虑一个马尔可夫决策过程,其状态、动作和奖励序列为:$s_0a_0r_0s_1a_1r_1 \cdots s_ta_tr_t \cdots$。在视频游戏中,每个状态 $s_t$ 可能代表一个像素的历史窗口,用特征表示 $X_t$ 来描述。为了考虑动作可能的延迟奖励,时间 $t$ 的累积奖励 $R_t$ 由所有未来时间戳的即时奖励 $r_t, r_{t+1}, r_{t+2}, \cdots r_{\infty}$ 的折扣和给出:
$R_t = r_t + \gamma \cdot r_{t+1} + \gamma^2 \cdot r_{t+2} + \gamma^3 \cdot r_{t+3} \cdots = \sum_{i=0}^{\infty} \gamma^i r_{t+i}$
其中,折扣因子 $\gamma \in (0, 1)$ 调节了我们在分配奖励时的短视程度。未来奖励的价值低于即时奖励,所以 $\gamma$ 的值小于 1。如果 $\gamma = 0$,则会短视地将全部奖励 $R_t$ 设为 $r_t$,这在井字棋中无法学习到长期陷阱;而 $\gamma$ 太接近 1 会导致非常长的马尔可夫决策过程的建模不稳定。

状态 - 动作对 $(s_t, a_t)$ 的 Q 函数或 Q 值用 $Q(s_t, a_t)$ 表示,它衡量了在状态 $s_t$ 中执行动作 $a_t$ 的内在(即长期)价值。$Q(s_t, a_t)$ 表示在状态 $s_t$ 中执行动作 $a_t$ 直到游戏结束所能获得的最佳可能奖励。如果 $A$ 是所有可能动作的集合,那么在时间 $t$ 选择的动作 $a_t^ $ 是使 $Q(s_t, a_t)$ 最大化的动作,即:
$a_t^
= \arg\max_{a_t \in A} Q(s_t, a_t)$
这个预测动作是下一步的不错选择,但通常会结合探索性组件(如 ε - 贪心策略)来改善长期训练结果。

3. 深度学习模型作为函数逼近器

为了便于讨论,我们以 Atari 游戏设置为例。在这个设置中,最后几个像素快照的固定窗口提供了状态 $s_t$,其特征表示为 $X_t$。神经网络以 $X_t$ 为输入,为动作集合 $A$ 中的每个可能合法动作 $a$ 输出 $Q(s_t, a)$。

假设神经网络由权重向量 $W$ 参数化,它有 $|A|$ 个输出,包含与 $A$ 中各种动作对应的 Q 值。对于每个动作 $a \in A$,神经网络能够计算函数 $F(X_t, W, a)$,它被定义为 $Q(s_t, a)$ 的学习估计值:
$F(X_t, W, a) = \hat{Q}(s_t, a)$
这里的 $\hat{Q}$ 表示使用学习到的参数 $W$ 进行的预测值。学习 $W$ 是使用模型在特定时间戳决定使用哪个动作的关键。

4. Q 学习算法

神经网络的权重 $W$ 需要通过训练来学习。然而,我们面临一个问题:只有在有 Q 函数的观测值时才能学习权重向量。但 Q 函数表示所有未来动作组合的最大折扣奖励,在当前时间无法观测到。

为了解决这个问题,我们可以利用自举法的思想。根据自举法的直觉,只要我们能通过利用未来的部分知识得到 Q 值的改进估计,就可以使用这个改进估计来创建一个替代的“观测”值。这个“观测”值由贝尔曼方程定义:
$Q(s_t, a_t) = r_t + \gamma \max_a \hat{Q}(s_{t+1}, a)$
用神经网络预测表示为:
$F(X_t, W, a_t) = r_t + \gamma \max_a F(X_{t+1}, W, a)$
这提供了一种自然的方式来表达神经网络在时间戳 $t$ 的损失 $L_t$:
$L_t = \left{[r_t + \gamma \max_a F(X_{t+1}, W, a)] - F(X_t, W, a_t)\right}^2$
我们可以使用反向传播来更新权重向量 $W$:
$W \Leftarrow W + \alpha \left{[r_t + \gamma \max_a F(X_{t+1}, W, a)] - F(X_t, W, a_t)\right} \frac{\partial F(X_t, W, a_t)}{\partial W}$

在任何给定的时间戳 $t$,当观察到动作 $a_t$ 和奖励 $r_t$ 时,更新权重 $W$ 的训练过程如下:
1. 以输入 $X_{t+1}$ 进行网络的前向传播,计算 $\hat{Q} {t+1} = \max_a F(X {t+1}, W, a)$。如果执行 $a_t$ 后过程终止,该值为 0。
2. 以输入 $X_t$ 进行网络的前向传播,计算 $F(X_t, W, a_t)$。
3. 设置损失函数 $L_t = (r_t + \gamma \hat{Q}_{t+1} - F(X_t, W, a_t))^2$,并在输入为 $X_t$ 的网络中进行反向传播。
4. 使用反向传播更新权重向量 $W$。

训练和预测是同时进行的。选择具有最大 Q 值的动作作为相关预测很有吸引力,但这种方法可能对搜索空间的探索不足。因此,我们通常将最优性预测与 ε - 贪心算法等策略结合起来选择下一步动作。

为了使学习更加稳定,有以下几种改进方法:
- 经验回放 :将训练示例按其出现的顺序呈现可能会由于训练示例之间的强相似性而导致局部极小值。因此,使用固定长度的动作/奖励历史作为一个池,从中采样多个经验进行小批量梯度下降。
- 双网络结构 :用于估计目标 Q 值的网络与用于预测 Q 值的网络不同,估计目标 Q 值的网络更新更慢,以鼓励稳定性。
- 优先经验回放 :在学习初期,奖励可能很稀疏。优先经验回放可以优先处理那些能学到更多信息的动作,更有效地利用强化学习中收集的训练数据。

5. Atari 设置中的神经网络示例

对于 Atari 游戏的卷积神经网络,屏幕尺寸设置为 84×84 像素,输入为灰度图,输入层需要深度为 4 来表示前四个像素窗口。网络使用了三个卷积层,滤波器大小分别为 8×8、4×4 和 3×3,卷积步长分别为 4、2 和 1。第一个卷积层使用 32 个滤波器,后两个卷积层各使用 64 个滤波器。卷积层之后是两个全连接层,倒数第二层有 512 个神经元,最后一层的神经元数量等于输出(可能的动作)的数量,输出层数量在 4 到 18 之间,具体取决于游戏。

所有隐藏层使用 ReLU 激活函数,输出使用线性激活函数来预测实值 Q 值。不使用池化,卷积步长提供了空间压缩。该网络在不同游戏中表现出一定的通用性,在许多情况下超过了人类表现,但在需要长期策略的游戏中面临更大挑战。

以下是 Atari 卷积神经网络的结构示意图:

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

    A([输入 84x84x4]):::startend --> B(卷积层 8x8 32 个滤波器 步长 4):::process
    B --> C(22x22x32):::process
    C --> D(卷积层 4x4 64 个滤波器 步长 2):::process
    D --> E(12x12x64):::process
    E --> F(卷积层 3x3 64 个滤波器 步长 1):::process
    F --> G(12x12x64):::process
    G --> H(全连接层 512 个神经元):::process
    H --> I([输出 4 - 18 个神经元]):::startend
6. 在线策略与离线策略方法:SARSA

Q 学习方法属于时间差分学习的范畴。在 Q 学习中,动作根据 ε - 贪心策略选择,但神经网络的参数根据贝尔曼方程中每一步的最佳可能动作进行更新。因此,Q 学习是一种离线策略的强化学习方法,这种方法可以避免局部最优解。

而在线策略方法中,动作与更新是一致的,更新可以看作是策略评估而非优化。以 SARSA(状态 - 动作 - 奖励 - 状态 - 动作)算法为例,它在计算更新时不使用下一步的最优奖励,而是使用 ε - 贪心策略获得的动作 $a_{t+1}$ 来计算目标值。损失函数定义为:
$L_t = [r_t + \gamma F(X_{t+1}, W, a_{t+1}) - F(X_t, W, a_t)]^2$
权重向量更新公式为:
$W \Leftarrow W + \alpha [r_t + \gamma F(X_{t+1}, W, a_{t+1}) - F(X_t, W, a_t)] \frac{\partial F(X_t, W, a_t)}{\partial W}$

如果将 ε - 贪心策略中的 ε 值设为 0(即纯贪心),Q 学习和 SARSA 将变成相同的算法,但这种方法由于缺乏探索而效果不佳。SARSA 在学习和预测不能分开进行时很有用,而 Q 学习适用于可以离线学习,然后使用纯贪心方法利用所学策略的情况。

7. 不使用函数逼近器的学习

在状态空间非常小的情况下,可以不使用函数逼近器来学习 Q 值。例如,在井字棋这样的小游戏中,可以通过与强大对手的试错游戏来明确学习 $Q(s_t, a_t)$。使用贝尔曼方程更新包含 $Q(s_t, a_t)$ 显式值的数组,学习率 $\alpha < 1$ 时进行温和更新:
$Q(s_t, a_t) \Leftarrow Q(s_t, a_t)(1 - \alpha) + \alpha (r_t + \gamma \max_a Q(s_{t+1}, a))$

同样,也可以不使用函数逼近器来使用 SARSA 算法,根据 ε - 贪心策略使用动作 $a_{t+1}$:
$Q^p(s_t, a_t) \Leftarrow Q^p(s_t, a_t)(1 - \alpha) + \alpha (r_t + \gamma Q(s_{t+1}, a_{t+1}))$
如果在状态 $s_t$ 执行动作 $a_t$ 导致过程终止(对于情节性过程),则 $Q^p(s_t, a_t)$ 直接设为 $r_t$。

综上所述,自举法在价值函数学习中起着关键作用,不同的学习方法和策略在不同的场景中各有优劣。通过合理选择和改进这些方法,我们可以在强化学习中取得更好的效果。

价值函数学习中的自举法:深度强化学习的关键技术

8. 方法对比总结

为了更清晰地对比 Q 学习和 SARSA 这两种方法,我们可以通过以下表格进行总结:
| 方法 | 策略选择 | 参数更新依据 | 策略类型 | 适用场景 |
| — | — | — | — | — |
| Q 学习 | ε - 贪心策略选择动作 | 贝尔曼方程中每一步的最佳可能动作 | 离线策略 | 可离线学习,后续利用纯贪心策略的场景 |
| SARSA | ε - 贪心策略选择动作 | ε - 贪心策略获得的实际动作 | 在线策略 | 学习和预测不能分开进行的场景 |

从表格中可以看出,Q 学习和 SARSA 在策略选择上都使用了 ε - 贪心策略,但在参数更新依据上有所不同,这导致了它们属于不同的策略类型,适用于不同的场景。

9. 实际应用中的考虑因素

在实际应用深度强化学习时,有许多因素需要考虑。
- 状态空间大小 :如果状态空间非常大,使用函数逼近器(如神经网络)是必要的,因为直接存储和更新 Q 值数组会变得不可行。例如,在复杂的游戏或机器人导航场景中,状态数量可能是天文数字,此时使用神经网络作为函数逼近器可以有效地处理这种大规模状态空间。而对于像井字棋这样状态空间较小的场景,可以不使用函数逼近器,直接更新 Q 值数组。
- 探索与利用的平衡 :无论是 Q 学习还是 SARSA,都需要在探索和利用之间找到平衡。ε - 贪心策略通过引入随机探索的概率 ε 来实现这一平衡。在训练初期,较大的 ε 值可以让智能体更多地探索不同的动作,发现新的策略;而在训练后期,较小的 ε 值可以让智能体更多地利用已经学习到的最优策略。
- 奖励稀疏性 :在许多实际应用中,奖励可能是稀疏的,即智能体在大部分时间内获得的奖励为 0。这会导致学习过程变得困难,因为智能体很难知道哪些动作是好的,哪些是坏的。优先经验回放等技术可以帮助解决这个问题,它可以优先处理那些能提供更多信息的经验,提高学习效率。

10. 未来发展方向

深度强化学习在近年来取得了显著的进展,但仍然面临许多挑战,未来有以下几个发展方向值得关注。
- 更复杂的环境适应 :目前的深度强化学习算法在一些相对简单的环境中表现良好,但在更复杂的环境中,如具有连续状态和动作空间、部分可观测性、多智能体交互等情况下,仍然存在很大的改进空间。未来的研究需要开发更强大的算法来适应这些复杂环境。
- 可解释性 :深度强化学习模型通常是黑盒模型,很难理解它们是如何做出决策的。在一些关键应用领域,如医疗、交通等,模型的可解释性至关重要。未来的研究需要探索如何提高深度强化学习模型的可解释性,让人们能够理解和信任模型的决策。
- 与其他技术的融合 :深度强化学习可以与其他技术,如计算机视觉、自然语言处理等进行融合,创造出更强大的智能系统。例如,将深度强化学习与计算机视觉结合,可以让智能体在视觉环境中进行更有效的决策;将深度强化学习与自然语言处理结合,可以让智能体与人类进行更自然的交互。

11. 总结与展望

深度强化学习中的自举法为解决非情节性场景下的价值函数学习问题提供了有效的方法。通过使用深度学习模型作为函数逼近器,结合 Q 学习和 SARSA 等算法,我们可以在不同的场景中学习到最优策略。

在实际应用中,需要根据状态空间大小、探索与利用的平衡、奖励稀疏性等因素选择合适的方法和技术。同时,未来深度强化学习还有很大的发展空间,需要不断探索和创新,以适应更复杂的环境,提高模型的可解释性,并与其他技术进行融合。

相信随着研究的不断深入和技术的不断进步,深度强化学习将在更多领域发挥重要作用,为我们带来更多的惊喜和价值。

以下是一个简单的流程图,展示了深度强化学习中 Q 学习的基本流程:

graph TD
    classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;

    A([初始化神经网络权重 W]):::startend --> B(选择动作 a_t 基于 ε - 贪心策略):::process
    B --> C(执行动作 a_t,观察状态 s_{t+1} 和奖励 r_t):::process
    C --> D(计算目标值 r_t + γ max_a F(X_{t+1}, W, a)):::process
    D --> E(计算损失 L_t = [目标值 - F(X_t, W, a_t)]^2):::process
    E --> F(使用反向传播更新权重 W):::process
    F --> G{是否达到终止条件}:::process
    G -- 否 --> B
    G -- 是 --> H([结束训练]):::startend

这个流程图展示了 Q 学习的基本循环,包括动作选择、执行、目标值计算、损失计算和权重更新等步骤,直到达到终止条件为止。通过不断重复这个循环,智能体可以逐渐学习到最优策略。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值