Files
Obsidian/Paper/FSL Image Classification/heidariLearningCleanReinforcement2025.md

158 lines
17 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 方法概述
## 3.1 问题设定
我们假设一个带噪声的分类训练数据集 $\mathcal{D} = (\mathbf{X}, \tilde{\mathbf{Y}}) = \{(\mathbf{x}_i, \tilde{\mathbf{y}}_i)\}_{i=1}^N$,其中每个输入实例 $\mathbf{x}_i \in \mathcal{X}$ 与一个观测到的标签向量 $\tilde{\mathbf{y}}_i \in \mathcal{Y}$ 配对,该标签向量可能是真实标签向量 $\mathbf{y}_i$ 的噪声污染版本。目标是学习一个有效的预测模型,定义为复合函数 $h_\psi \circ f_\theta: \mathcal{X} \to \mathcal{Y}$,其中 $f_\theta$ 表示参数为 $\theta$ 的特征提取器,$h_\psi$ 表示参数为 $\psi$ 的分类器。我们的目标是开发一种有效的标签清洗技术,以纠正噪声标签,并使预测模型能够高效训练,而不受标签噪声带来的挑战所阻碍。
## 3.2 基于强化学习的噪声标签校正
强化学习RL问题通常建模为马尔可夫决策过程MDP由元组 $\mathcal{M} = (\mathcal{S}, \mathcal{A}, P, R, \gamma)$ 描述,其中 $\mathcal{S}$ 表示状态空间,$\mathcal{A}$ 表示动作空间,$P(s'|s, a)$ 定义了状态 $s, s' \in \mathcal{S}$ 和动作 $a \in \mathcal{A}$ 的转移动态,$R: \mathcal{S} \times \mathcal{A} \to \mathbb{R}$ 是奖励函数,$\gamma \in (0, 1)$ 是折扣因子。主要目标是确定一个最优策略 $\pi^\star: \mathcal{S} \to \mathcal{A}$,以最大化期望折扣累积奖励 $J_r(\pi) = \mathbb{E}_\pi \left[ \sum_{t=0}^\infty \gamma^t R(s_t, a_t) \right]$。
在本工作中,我们通过合理设计和定义 MDP 的关键组件,将噪声标签清洗的挑战建模为一个 RL 问题。然后,我们部署一种带有状态编码的 Actor-Critic 方法,以学习噪声标签校正的最优策略函数。所提出的 RLNLC 的整体框架如图 1 所示,具体方法在后续章节中详细说明。
### 3.2.1 状态
我们将状态定义为观测数据和相应的(校正后的)标签,在任何时间步 $t$ 表示为 $s_t = \mathcal{D}_t = (\mathbf{X}, \tilde{\mathbf{Y}}_t) = \{(\mathbf{x}_i, \tilde{\mathbf{y}}_i^t)\}_{i=1}^N$。提供的训练数据集 $\mathcal{D} = (\mathbf{X}, \tilde{\mathbf{Y}})$ 可以被视为静态初始状态 $s_0^0$。为了增强 RL 方法的探索性,我们通过随机改变 $s_0^0$ 中的一小部分标签来初始化每个 RL 过程,以建立初始状态 $s_0$。状态封装了关于环境的当前知识,并作为策略函数 $\pi$ 的输入。随着模型运行,策略 $\pi$ 根据当前状态 $s_t$ 选择动作。这些动作主要涉及修改标签,从而导致转移到新状态 $s_{t+1} = (\mathbf{X}, \tilde{\mathbf{Y}}_{t+1})$。理想情况下,我们期望达到一个标签“干净”的最优目标状态。
### 3.2.2 动作与策略函数
我们将动作空间 $\mathcal{A}$ 定义为在任何状态下对所有数据实例进行标签校正决策的可能二进制值向量,使得对于每个动作向量 $\mathbf{a} = [a_1, \cdots, a_i, \cdots, a_N] \in \mathcal{A}$$a_i \in \{0, 1\}$ 指示实例 $\mathbf{x}_i$ 的当前标签是否需要校正($a_i = 1$)。
RLNLC 的核心是一个概率策略函数 $\pi_\theta$,它以随机方式将给定状态 $s_t$ 映射到动作。根据上述状态和动作定义,策略函数被设计为在给定当前状态 $s_t = \{(\mathbf{x}_i, \tilde{\mathbf{y}}_i^t)\}_{i=1}^N$ 的情况下,概率性地决定是否对数据集中的每个实例 $\mathbf{x}_i$ 应用标签校正(即设置 $a_i = 1$)。为了有效识别和纠正噪声标签,我们基于 $k$-近邻的标签一致性定义了一个参数化策略函数 $\pi_\theta$,该一致性在由深度特征提取网络 $f_\theta$ 生成的嵌入空间中计算,该网络最初使用标准交叉熵损失在给定训练数据集 $\mathcal{D}$ 上进行预训练。基本假设是,与其 $k$-近邻标签不一致的标签更可能是噪声标签,需要校正。
令 $\mathcal{N}(\mathbf{x}_i)$ 表示基于当前 $f_\theta$ 提取的嵌入空间 $\mathcal{Z} = f_\theta(\mathbf{X})$ 中实例 $\mathbf{x}_i$ 在数据集 $\mathcal{D}$ 内的 $k$-近邻索引。对于每个实例 $\mathbf{x}_i$,我们使用注意力机制聚合其 $k$-近邻在当前状态 $s_t$ 中的标签,生成一个新的标签预测 $\bar{\mathbf{y}}_i$,该预测与 $f_\theta$ 编码的局部数据结构对齐。具体来说,$\bar{\mathbf{y}}_i$ 计算如下:
$$
\bar{\mathbf{y}}_i = \sum_{j \in \mathcal{N}(\mathbf{x}_i)} \alpha_{ij} \tilde{\mathbf{y}}_j^t
$$
注意力权重 $\{\alpha_{ij}\}$ 使用嵌入空间中的实例对相似度计算:
$$
\alpha_{ij} = \frac{\exp(\text{sim}(f_\theta(\mathbf{x}_i), f_\theta(\mathbf{x}_j)) / \tau)}{\sum_{j' \in \mathcal{N}(\mathbf{x}_i)} \exp(\text{sim}(f_\theta(\mathbf{x}_i), f_\theta(\mathbf{x}_{j'})) / \tau)}
$$
其中 $\tau$ 是温度超参数,$\text{sim}(\cdot, \cdot)$ 表示余弦相似度。最后,在状态 $s_t$ 中为实例 $\mathbf{x}_i$ 采取每个元素动作 $a_i^t = 1$ 的概率(即策略函数)通过比较 $k$-近邻预测的标签向量 $\bar{\mathbf{y}}_i$ 与当前标签向量 $\tilde{\mathbf{y}}_i^t$ 来计算:
$$
\pi_\theta(s_t)_i = p(a_i^t = 1) = \frac{\sum_{j=1}^C \mathbb{1}(\bar{y}_{ij} > \bar{y}_{i\tilde{y}_i}) \cdot \bar{y}_{ij}}{\sum_{j=1}^C \mathbb{1}(\bar{y}_{ij} \ge \bar{y}_{i\tilde{y}_i}) \cdot \bar{y}_{ij}}
$$
其中 $C$ 表示标签向量的长度(分类的类别数),$\tilde{y}_i = \arg \max_j \tilde{y}_{ij}$ 表示状态 $s_t$ 中实例 $\mathbf{x}_i$ 的原始预测类别索引。
上述定义的概率 $p(a_i^t = 1)$ 量化了标签不一致的程度——具体来说,是 $k$-近邻的类别预测与原始类别预测 $\tilde{y}_i$ 不一致的程度,从而指示了噪声的可能性以及对 $\mathbf{x}_i$ 应用标签校正的概率。解释来说,概率 $p(a_i^t = 1)$ 与在 $k$-近邻预测 $\bar{\mathbf{y}}_i$ 中比原始预测类别 $\tilde{y}_i$ 更可能的类别概率之和成正比。然后,该和通过 $\bar{\mathbf{y}}_i$ 中概率不低于原始标签 $\tilde{y}_i$ 的类别概率之和进行归一化。这种归一化确保 $p(a_i^t = 1)$ 相对于类别预测中的分歧水平适当缩放,而不受 $\bar{\mathbf{y}}_i$ 中概率低于 $\tilde{y}_i$ 的与分歧无关类别的影响。注意,当除了 $\tilde{y}_i$ 之外的所有其他类别都变得与分歧无关时——即类别 $\tilde{y}_i$ 在 $\bar{\mathbf{y}}_i$ 中具有最大概率且没有预测分歧时,概率 $p(a_i^t = 1)$ 变为零。
**具有随机策略的确定性转移** 给定状态 $s_t$,我们使用上述随机策略函数 $\pi_\theta$ 确定动作向量 $\mathbf{a}^t$,增强学习过程的探索行为。具体来说,我们从伯努利分布 $\text{Bernoulli}(p_i)$ 中随机采样每个二进制值动作元素 $a_i^t$ 的值,其中 $p_i = p(a_i^t = 1)$。给定 $(s_t, \mathbf{a}^t)$,我们然后部署一个确定性转移模型来诱导下一个状态 $s_{t+1} = \{(\mathbf{x}_i, \tilde{\mathbf{y}}_i^{t+1})\}_{i=1}^N$,使得:
$$
\tilde{\mathbf{y}}_i^{t+1} =
\begin{cases}
\tilde{\mathbf{y}}_i^t & \text{if } a_i^t = 0 \\
\bar{\mathbf{y}}_i & \text{if } a_i^t = 1
\end{cases}
$$
该机制在向量空间中维护软标签分布,确保标签校正基于标签为噪声的可能性概率性地发生。通过引入随机性,学习过程探索更广泛的状态-动作对,增加发现更好策略的机会,同时避免次优解。此外,它减轻了由突然标签变化引起的干扰,允许模型自适应地从以不同状态为特征的演化环境中学习,最终增强学习系统的整体鲁棒性。
### 3.2.3 奖励函数
在 RL 中,奖励函数 $R(s_t, a_t)$ 提供了在给定状态 $s_t$ 下采取动作 $a_t$ 的质量反馈,引导学习过程朝向其目标。为了实现所提出的 RLNLC 的清洗标签噪声的目标,我们设计奖励函数以通过采取动作产生的标签来评估动作的质量。我们的奖励函数 $R$ 由两个子奖励评估函数组成:标签一致性奖励函数 $R_{\text{LCR}}$ 和噪声标签对齐奖励函数 $R_{\text{NLA}}$。
**标签一致性奖励** 通过确定性转移机制,下一个状态 $s_{t+1}$ 是通过在给定状态 $s_t$ 下采取动作 $a_t$ 以固定方式获得的。因此,$s_{t+1}$ 中标签 $\{\tilde{\mathbf{y}}_i^{t+1}\}_{i=1}^N$ 的质量直接反映了状态-动作对 $(s_t, a_t)$ 的质量。我们设计标签一致性奖励LCR函数 $R_{\text{LCR}}$ 来评估 $s_{t+1}$ 中的标签质量——即每个标签与数据集的拟合程度——基于 $k$-近邻标签预测机制。为了将策略函数的影响与标签质量评估分开,我们使用一个在原始数据集上预训练的固定骨干模型 $f_\omega$ 来提取 $s_{t+1}$ 中数据实例的嵌入特征,支持 $k$-近邻标签预测。具体来说,标签一致性奖励函数量化了所有 $N$ 个实例中给定标签与 $k$-近邻预测标签之间的负 Kullback-LeiblerKL散度如下所示
$$
R_{\text{LCR}}(s_t, a_t) = -\mathbb{E}_{i \in [1:N]} \left[ \text{KL} \left( \tilde{\mathbf{y}}_i^{t+1}, \sum_{j \in \mathcal{N}_\omega(\mathbf{x}_i)} \alpha_{ij} \tilde{\mathbf{y}}_j^{t+1} \right) \right]
$$
这里,$\mathcal{N}_\omega(\mathbf{x}_i)$ 表示在 $s_{t+1}$ 内实例 $\mathbf{x}_i$ 的全局 $k$-近邻索引,使用 $f_\omega$ 提取的嵌入计算。注意力权重 $\alpha_{ij}$ 以与公式 (2) 类似的方式计算,但基于特征提取器 $f_\omega$。该奖励函数从预测角度评估基于局部数据结构的标签的统计平滑性,与支持预测模型训练的最终目标一致。
**噪声标签对齐奖励** 此外,为了评估标签校正动作 $a_t$ 的稳定性和鲁棒性,我们将状态 $s_{t+1}$ 中的数据分为两个子集:一个干净子集 $\mathcal{D}_{\text{cle}}^{t+1}$,包含标签未更改的实例索引——即 $a_i^t = 0$,和一个噪声子集 $\mathcal{D}_{\text{noi}}^{t+1}$,包含标签被校正的实例索引——即 $a_i^t = 1$。我们设计噪声标签对齐NLA奖励函数 $R_{\text{NLA}}$ 来评估噪声子集 $\mathcal{D}_{\text{noi}}^{t+1}$ 中的噪声标签与干净子集 $\mathcal{D}_{\text{cle}}^{t+1}$ 中的干净标签基于子集间 $k$-近邻标签预测机制的对齐程度,如下所示:
$$
R_{\text{NLA}}(s_t, a_t) = -\mathbb{E}_{i \in \mathcal{D}_{\text{noi}}^{t+1}} \left[ \text{KL} \left( \tilde{\mathbf{y}}_i^{t+1}, \sum_{j \in \mathcal{N}_{\text{cle}}(\mathbf{x}_i)} \alpha_{ij} \tilde{\mathbf{y}}_j^{t+1} \right) \right]
$$
这里,$\mathcal{N}_{\text{cle}}(\mathbf{x}_i)$ 表示对于来自噪声子集的实例 $\mathbf{x}_i$,在干净子集中识别的 $k$-近邻。$\mathcal{N}_{\text{cle}}(\mathbf{x}_i)$ 和注意力权重 $\{\alpha_{ij}\}$ 再次使用 $f_\omega$ 提取的嵌入计算。每个噪声标签 $\tilde{\mathbf{y}}_i^{t+1}$ 与其 $k$-近邻干净邻居的基于注意力的聚合之间的对齐——负 KL 散度——反映了动作 $a_t$ 应用于 $\mathbf{x}_i$ 的标签校正的统计一致性。
复合奖励函数 $R(s_t, a_t)$ 将上述两个子奖励函数集成如下:
$$
R(s_t, a_t) = \exp\left( R_{\text{LCR}}(s_t, a_t) + \lambda R_{\text{NLA}}(s_t, a_t) \right)
$$
其中 $\lambda$ 是一个权衡超参数,用于平衡两个子奖励函数的贡献。由于负 KL 散度的值是非正且无界的,我们部署指数函数 $\exp(\cdot)$ 将奖励值重新缩放到 $(0, 1]$ 的范围。这种缩放机制对于确保奖励有界和归一化至关重要,促进了稳定的学习过程。
### 3.2.4 Actor-Critic 方法
基于通过上述关键 MDP 组件定义的噪声标签校正问题的 RL 公式化,我们采用 Actor-Critic 框架来学习策略函数,通过最大化期望累积奖励。
在该框架中,策略函数 $\pi_\theta$ 被视为“Actor”而参数化为 $\varphi$ 的动作值函数 $Q_\varphi(s, a)$ 被引入作为“Critic”以直接估计 Q 值,定义为 $Q(s, a) = \mathbb{E}_{\pi_\theta} \left[ \sum_{t=0}^\infty \gamma^t R(s_t, a_t) | s_0 = s, a_0 = a \right]$,它表示从状态 $s$ 采取动作 $a$ 开始的期望折扣累积奖励。Actor-Critic 方法中策略函数的学习目标可以写为:
$$
J(\pi_\theta) = \mathbb{E}_{s \sim \rho_{\pi_\theta}} \left[ \sum_a \pi_\theta(a|s) Q(s, a) \right]
$$
其中 $\rho_{\pi_\theta}$ 表示平稳状态分布。目标关于 $\theta$ 的梯度可以表示为:
$$
\nabla_\theta J(\pi_\theta) = \mathbb{E}_{s \sim \rho_{\pi_\theta}, a \sim \pi_\theta(s)} \left[ \nabla_\theta \log \pi_\theta(a|s) Q(s, a) \right]
$$
上述目标中涉及的 Q 值使用 Critic 网络 $Q_\varphi$ 估计。为了学习 Critic 网络,我们使用 SARSA 方法计算时间差分TD误差以对 Critic 函数进行同策略更新。时间步 $t-1$ 的 TD 误差由下式给出:
$$
\delta_{t-1} = R(s_{t-1}, a_{t-1}) + \gamma Q(s_t, a_t) - Q_\varphi(s_{t-1}, a_{t-1})
$$
Critic 网络的参数 $\varphi$ 通过以下使用 TD 误差 $\delta_{t-1}$ 的随机梯度步骤更新:
$$
\varphi \leftarrow \varphi + \beta \delta_{t-1} \nabla_\varphi Q_\varphi(s_{t-1}, a_{t-1})
$$
其中 $\beta$ 是 Critic 的学习率。
**Critic 的输入编码** Critic 网络 $Q_\varphi$ 需要状态和动作作为输入。考虑到与训练数据集大小相对应的状态和动作的潜在大维度,高效的输入编码方案对于降低计算成本至关重要。为此,我们设计了一个简单而有效的两步编码方案。首先,鉴于我们提出的 RLNLC 框架利用确定性转移机制,下一个状态 $s_{t+1}$ 由当前状态-动作对 $(s_t, a_t)$ 唯一确定。因此,我们可以使用 $s_{t+1}$ 替换相应的输入对 $(s_t, a_t)$。我们计算单个实例对 $(\mathbf{x}_i, \tilde{\mathbf{y}}_i^{t+1})$ 的奖励 $r(\mathbf{x}_i, \tilde{\mathbf{y}}_i^{t+1})$,其原理与标签一致性奖励相同:
$$
r(\mathbf{x}_i, \tilde{\mathbf{y}}_i^{t+1}) = \exp\left( -\text{KL} \left( \tilde{\mathbf{y}}_i^{t+1}, \sum_{j \in \mathcal{N}_\omega(\mathbf{x}_i)} \alpha_{ij} \tilde{\mathbf{y}}_j^{t+1} \right) \right)
$$
其中 $\mathcal{N}_\omega(\mathbf{x}_i)$ 是 $\mathcal{D}$ 中 $f_\omega(\mathbf{x}_i)$ 的邻居集索引,$\{\alpha_{ij}\}$ 使用公式 (2) 计算。$\exp(\cdot)$ 函数用于归一化奖励并将其限制在 $(0, 1]$ 内。接下来,我们采用分箱策略基于奖励评估对状态 $s_{t+1} = \{(\mathbf{x}_i, \tilde{\mathbf{y}}_i^{t+1})\}_{i=1}^N$ 进行编码,显著降低其维度。具体来说,我们考虑 $N_b$ ($N_b \ll N$) 个箱,并根据以下规则将 $s_{t+1}$ 中的每个实例-标签对 $(\mathbf{x}_i, \tilde{\mathbf{y}}_i^{t+1})$ 分配到一个箱中:
$$
(\mathbf{x}_i, \tilde{\mathbf{y}}_i^{t+1}) \in B_j \quad \text{if} \quad r(\mathbf{x}_i, \tilde{\mathbf{y}}_i^{t+1}) \in \left( \frac{j-1}{N_b}, \frac{j}{N_b} \right]
$$
其中 $B_j$ 表示第 $j$ 个箱,$j \in [1 : N_b]$$r(\mathbf{x}_i, \tilde{\mathbf{y}}_i^{t+1})$ 是使用公式 (12) 在单个给定实例上计算的标签一致性奖励的指数。分箱后,我们构建一个长度为 $N_b$ 的向量 $\mathbf{v}_{t+1}$ 来编码状态 $s_{t+1}$,每个条目表示分配到对应箱的实例比例,使得:
$$
v_{t+1}^j = |B_j| / N
$$
其中 $|B_j|$ 表示第 $j$ 个箱中的实例数。该编码过程作为 Critic 网络 $Q_\varphi$ 的一部分部署,将输入 $(s_t, a_t)$ 转换为一个简单的向量 $\mathbf{v}_{t+1}$,促进后续学习并提高计算效率。
## 3.3 预测模型训练的标签清洗
在使用 Actor-Critic 方法学习策略函数 $\pi_\theta$ 后,我们部署训练好的策略函数进行 $T'$ 个时间步,以在噪声训练数据集 $\mathcal{D}$ 上执行标签清洗。这创建了一个长度为 $T'$ 的轨迹,以逐步纠正噪声标签,从初始状态 $s_0^0$ 开始。最后状态 $s_{T'} = \{(\mathbf{x}_i, \tilde{\mathbf{y}}_i^{T'})\}_{i=1}^N$ 中获得的标签被视为“清洗后”标签。为了提高效率,预测模型 $h_\psi \circ f_\theta$ 首先使用标准交叉熵损失在带有噪声标签的给定数据集 $\mathcal{D}$ 上进行预训练。特征提取网络 $f_\theta$ 然后作为策略函数学习的一部分进一步训练。最终的预测模型 $h_\psi \circ f_\theta$ 是通过在 $s_{T'}$ 中的“清洗后”数据上使用标准交叉熵损失进一步微调获得的。所提出的 RLNLC 方法的学习过程总结在算法 1 中。
## 流程图概述
```mermaid
graph TD
A[初始噪声数据集 D] --> B[预训练特征提取器 fθ]
B --> C[初始化状态 s0]
C --> D{Actor-Critic 学习循环}
D --> E[Actor πθ: 基于KNN计算校正概率]
E --> F[采样动作 at]
F --> G[确定性转移至 st+1]
G --> H[Critic Qφ: 计算奖励 Rst,at]
H --> I[更新 Actor 和 Critic 参数]
I --> J{达到终止条件?}
J --否--> D
J --是--> K[使用训练好的 πθ 进行 T' 步标签清洗]
K --> L[获得清洗后标签 sT']
L --> M[在清洗后数据上微调预测模型 hψ∘fθ]
M --> N[最终模型]
```
该流程图概括了 RLNLC 方法的关键步骤:从初始化开始,通过 Actor-Critic 框架迭代学习标签校正策略,然后应用该策略清洗标签,最后在清洗后的数据上训练最终预测模型。