对强化学习和奖励函数的理解

· · 算法·理论

\text{Part I}. 深度学习中奖励函数的运用原理

在传统的深度学习中,虽然不像强化学习那样直接以奖励函数为核心,但在一些场景下也会涉及类似奖励的概念,主要体现在损失函数和优化目标上。

一般来讲有如下三种训练方式:

  1. 监督学习

    监督学习的目标是让模型学习输入和输出之间的映射关系。例如在图像分类任务中,模型的输入是图像数据,输出是对应的类别标签。损失函数(如交叉熵损失)就类似于一种“反向奖励”机制。它衡量的是模型预测结果与真实标签之间的差异,模型的训练过程就是通过优化算法(如随机梯度下降)来最小化这个损失函数。从奖励的角度看,我们希望模型的预测结果尽可能准确,即预测正确时损失小,可视为获得了“奖励”(损失减少);预测错误时损失大,相当于受到了“惩罚”(损失增加)。例如,在训练一个手写数字识别模型时,若模型准确预测出数字,交叉熵损失就会降低,这可以类比为得到了某种形式的奖励,促使模型朝着正确预测的方向优化。

  2. 无监督学习

    以聚类算法为例,虽然没有明确的真实标签,但会定义一个目标函数(如 K-means 算法中的簇内平方和最小化)。这个目标函数的优化过程也可以看作是一种奖励机制。当数据点被合理地分配到各个簇中,使得簇内数据点的相似度尽可能高(即簇内平方和减小)时,就相当于获得了 “奖励”,模型会朝着使这个目标函数值最小化的方向进行调整。

  3. 生成式对抗网络(GAN)

    GAN 由生成器和判别器组成。对于生成器而言,它的目标是生成逼真的数据样本,使得判别器难以区分是真实数据还是生成数据。判别器的输出可以看作是对生成器的一种 “奖励反馈”。当判别器将生成器生成的数据误判为真实数据时,生成器就获得了“奖励”(如判别器输出为高概率的真实数据),从而促使生成器不断改进生成能力;对于判别器来说,准确区分真实数据和生成数据就是它的“奖励”,正确分类的概率越高,“奖励”越大。

\text{Part II.} 强化学习中奖励函数的运用原理

  1. 基本原理

    智能体在每一个时间或步骤 t 根据当前的策略 \pi 选择某个动作 a_t,产生新的状态 s_{t+1} 并反馈一个奖励值 r_{t+1}。目标即得到一个策略 \pi 使得即使奖励最大化。

  2. 引导学习过程

    奖励函数引导着智能体的学习过程。如果智能体执行某个动作后获得了正奖励,那么它会倾向于在类似状态下再次选择这个动作;如果获得负奖励,就会尽量避免在相同或类似状态下选择该动作。通过不断地与环境交互并根据奖励调整策略,智能体逐渐学习到最优策略。例如在玩 Atari 游戏时,智能体通过尝试不同的游戏操作(动作),根据游戏得分(奖励)来调整自己的操作策略,以达到更高的得分。

  3. 长期规划与探索和利用的平衡

    强化学习强调长期累积奖励,这使得智能体需要进行长期规划。它不能仅仅追求即时奖励,而要考虑当前动作对未来奖励的影响。同时,智能体还需要在探索新的动作和利用已有的经验之间进行平衡。如果只利用已有的经验(即选择那些曾经带来高奖励的动作),可能会陷入局部最优(导致循环);而过度探索则可能导致学习效率低下。奖励函数在这个过程中起到了关键的调节作用,合适的奖励设计可以促使智能体在探索和利用之间找到一个良好的平衡。

\text{Part III.} 三种基本奖励函数

  1. 基于历史信息的函数 \operatorname{HFC}_i(t)=\displaystyle\sum^m_{j=1}r_j

  2. 基于历史失效密度的函数 \operatorname{HFD}_i(t)=\dfrac{1}{|T_f|}\displaystyle\sum_{t_i\in T_f}\exp\bigg(-\dfrac{|t-t_i|}{\alpha}\bigg)

  3. 基于平均历史失效分布的函数 \operatorname{APHF}_i^{sw}(T_t)=1-\dfrac{\sum^n_{j=1}\operatorname{Rank}_j}{n\text{win}(m,sw)}+\dfrac{1}{2\operatorname{win}(m,sw)}

    其中 win 函数表示一个用于评估和比较不同策略或动作在特定时间窗口内性能的指标。

以下为这三种奖励函数的基本解释以及应用。

\text{Part IV. HFC} 函数的理解

\text{Part V. HFD} 函数的理解

\text{Part VI. APHF} 函数的理解

\text{Part VII.} 其他奖励函数的示例:

\text{Part VIII.} 总结

这三种函数(还有我后面列举的不同函数)在不同情况下会各自展现出优势,在具体情况下会按需求选择。

在实际案例中,一般情况会比示例复杂得多。这些函数需要根据具体的问题和需求进行适当的调整和优化,同时合理处理相关的参数和数据结构,以达到预期的效果。

(注:部分示例来源于网络)

(注:希望了解具体损失函数的可以参见 https://www.luogu.com.cn/article/5y196fm2 中的“期末课题 损失函数”部分)