vault backup: 2025-12-24 11:29:20
This commit is contained in:
@@ -14,17 +14,65 @@
|
|||||||
"expandedKeys": []
|
"expandedKeys": []
|
||||||
},
|
},
|
||||||
"Untitled.md": {
|
"Untitled.md": {
|
||||||
"scroll": 113.28961240310078,
|
"scroll": 0,
|
||||||
"cursor": {
|
"cursor": {
|
||||||
"from": {
|
"from": {
|
||||||
"line": 123,
|
"line": 0,
|
||||||
"ch": 17
|
"ch": 0
|
||||||
},
|
},
|
||||||
"to": {
|
"to": {
|
||||||
"line": 123,
|
"line": 0,
|
||||||
"ch": 17
|
"ch": 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"expandedKeys": []
|
"expandedKeys": []
|
||||||
|
},
|
||||||
|
"heidariLearningCleanReinforcement2025.md": {
|
||||||
|
"scroll": 108.05774863997769,
|
||||||
|
"cursor": {
|
||||||
|
"from": {
|
||||||
|
"line": 2,
|
||||||
|
"ch": 11
|
||||||
|
},
|
||||||
|
"to": {
|
||||||
|
"line": 2,
|
||||||
|
"ch": 11
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"expandedKeys": [
|
||||||
|
"item-2-2",
|
||||||
|
"item-1-0"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"Paper/FSL Image Classification/Context Attribute words for Prompt Tuning.md": {
|
||||||
|
"scroll": 0,
|
||||||
|
"cursor": {
|
||||||
|
"from": {
|
||||||
|
"line": 5,
|
||||||
|
"ch": 0
|
||||||
|
},
|
||||||
|
"to": {
|
||||||
|
"line": 5,
|
||||||
|
"ch": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"expandedKeys": []
|
||||||
|
},
|
||||||
|
"Paper/FSL Image Classification/heidariLearningCleanReinforcement2025.md": {
|
||||||
|
"scroll": 106.84309240622142,
|
||||||
|
"cursor": {
|
||||||
|
"from": {
|
||||||
|
"line": 112,
|
||||||
|
"ch": 3
|
||||||
|
},
|
||||||
|
"to": {
|
||||||
|
"line": 112,
|
||||||
|
"ch": 3
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"expandedKeys": [
|
||||||
|
"item-2-2",
|
||||||
|
"item-1-0"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
10
.obsidian/workspace.json
vendored
10
.obsidian/workspace.json
vendored
@@ -13,12 +13,12 @@
|
|||||||
"state": {
|
"state": {
|
||||||
"type": "markdown",
|
"type": "markdown",
|
||||||
"state": {
|
"state": {
|
||||||
"file": "Untitled.md",
|
"file": "Paper/FSL Image Classification/heidariLearningCleanReinforcement2025.md",
|
||||||
"mode": "source",
|
"mode": "source",
|
||||||
"source": false
|
"source": false
|
||||||
},
|
},
|
||||||
"icon": "lucide-file",
|
"icon": "lucide-file",
|
||||||
"title": "Untitled"
|
"title": "heidariLearningCleanReinforcement2025"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -199,10 +199,11 @@
|
|||||||
},
|
},
|
||||||
"active": "4f4081000e4e799b",
|
"active": "4f4081000e4e799b",
|
||||||
"lastOpenFiles": [
|
"lastOpenFiles": [
|
||||||
|
"Paper/FSL Image Classification/Context Attribute words for Prompt Tuning.md",
|
||||||
|
"Paper/FSL Image Classification/heidariLearningCleanReinforcement2025.md",
|
||||||
"Untitled.md",
|
"Untitled.md",
|
||||||
"Books/代码随想录/代码模版.md",
|
"Books/代码随想录/代码模版.md",
|
||||||
"Research/FSL/提示工程.md",
|
"Research/FSL/提示工程.md",
|
||||||
"Paper/FSL Image Classification/Context Attribute words for Prompt Tuning.md",
|
|
||||||
"Research/FSL",
|
"Research/FSL",
|
||||||
"Research",
|
"Research",
|
||||||
"conflict-files-obsidian-git.md",
|
"conflict-files-obsidian-git.md",
|
||||||
@@ -235,7 +236,6 @@
|
|||||||
"Books/动手学深度学习/引言.md",
|
"Books/动手学深度学习/引言.md",
|
||||||
"Paper/未命名.md",
|
"Paper/未命名.md",
|
||||||
"Books/动手学深度学习/基础概念.md",
|
"Books/动手学深度学习/基础概念.md",
|
||||||
"liangOpenVocabularySemanticSegmentation2023.md",
|
"liangOpenVocabularySemanticSegmentation2023.md"
|
||||||
"Books/HDLBits/Verilog.md"
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
CreateAt: 2025-02-21
|
|
||||||
ModleName: CoAPT
|
|
||||||
Repo: https://github.com/LeeGun4488/CoAPT
|
|
||||||
---
|
|
||||||
@@ -0,0 +1,131 @@
|
|||||||
|
# 方法概述
|
||||||
|
|
||||||
|
## 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-Leibler(KL)散度,如下所示:
|
||||||
|
|
||||||
|
$$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 中。
|
||||||
|
|
||||||
|
## 流程图概述
|
||||||
|
|
||||||
|
```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 框架迭代学习标签校正策略,然后应用该策略清洗标签,最后在清洗后的数据上训练最终预测模型。
|
||||||
|
|
||||||
|
Comment: NeurIPS 2025
|
||||||
128
Untitled.md
128
Untitled.md
@@ -1,128 +0,0 @@
|
|||||||
根据您提供的论文内容,我将详细解释该方法的核心思想、流程和关键公式。
|
|
||||||
|
|
||||||
## 一、方法概述
|
|
||||||
|
|
||||||
论文提出了一种基于**强化学习**的噪声标签清洗方法(RLNLC)。该方法将噪声标签的清洗过程建模为一个**马尔可夫决策过程**,通过训练一个智能体(策略函数)来学习如何修正数据集中错误的标签。
|
|
||||||
|
|
||||||
整个方法的**核心目标**是:学习一个有效的策略函数 \(\pi_{\theta}\),该函数能够智能地决定是否需要对每个数据实例的标签进行修正,从而生成一个“干净”的数据集,用于训练最终的分类模型 \(h_{\psi} \circ f_{\theta}\)。
|
|
||||||
|
|
||||||
## 二、强化学习框架设计
|
|
||||||
|
|
||||||
该方法将标签清洗问题形式化为一个MDP,其关键组件定义如下:
|
|
||||||
|
|
||||||
### 1. 状态
|
|
||||||
|
|
||||||
状态 \(s_t\) 在任意时间步 \(t\) 被定义为当前的数据集及其(修正后的)标签:
|
|
||||||
\[
|
|
||||||
s_t = \mathcal{D}_t = (X, \hat{Y}^t) = \{ (x_i, \hat{y}_i^t) \}_{i=1}^N
|
|
||||||
\]
|
|
||||||
- \(X\) 是输入实例的集合。
|
|
||||||
- \(\hat{Y}^t\) 是时间步 \(t\) 对应的观测标签集合。
|
|
||||||
- 初始状态 \(s_0^0\) 为原始噪声数据集 \(\mathcal{D}\)。为了增加探索性,方法会随机扰动一小部分标签来生成真正的初始状态 \(s_0\)。
|
|
||||||
|
|
||||||
状态的演变直观地反映了标签清洗的进程,其流程如下:
|
|
||||||
|
|
||||||
```mermaid
|
|
||||||
flowchart TD
|
|
||||||
A[初始噪声数据集<br>s₀] --> B[策略函数 πθ<br>根据当前状态 st 选择动作 at]
|
|
||||||
B --> C[状态转移<br>根据动作 at 更新标签,<br>生成新状态 st+1]
|
|
||||||
C --> D{是否达到<br>终止条件?}
|
|
||||||
D -- 否 --> B
|
|
||||||
D -- 是 --> E[输出最终状态 s_T'<br>即“清洗”后的干净数据集]
|
|
||||||
```
|
|
||||||
|
|
||||||
### 2. 动作与策略函数
|
|
||||||
|
|
||||||
**动作空间** \(\mathcal{A}\) 被定义为在所有数据实例上进行标签修正决策的二进制向量空间。对于一个动作向量 \(a = [a_1, \cdots, a_i, \cdots, a_N] \in \mathcal{A}\),其中每个元素 \(a_i \in \{0, 1\}\) 表示是否需要对实例 \(x_i\) 的当前标签进行修正(\(a_i = 1\) 表示需要修正)。
|
|
||||||
|
|
||||||
**策略函数** \(\pi_{\theta}\) 是该方法的核心,它是一个概率函数,接收当前状态 \(s_t\),并输出对每个数据实例执行修正动作(即 \(a_i^t = 1\))的概率。该概率基于“标签一致性”原则计算:如果一个实例的标签与其k近邻的标签不一致,则该标签更可能是噪声。
|
|
||||||
|
|
||||||
策略函数 \(\pi_{\theta}(s_t)_i = p(a_i^t = 1)\) 的计算过程如下:
|
|
||||||
|
|
||||||
1. **特征提取**:使用特征提取网络 \(f_{\theta}\) 为每个实例 \(x_i\) 生成嵌入特征。
|
|
||||||
2. **寻找近邻**:在嵌入空间中为 \(x_i\) 找到 \(k\) 个最近邻实例,其索引集合记为 \(\mathcal{N}(x_i)\)。
|
|
||||||
3. **近邻标签聚合**:使用注意力机制聚合近邻的标签,生成一个新的标签预测 \(\bar{y}_i\):
|
|
||||||
\[
|
|
||||||
\bar{y}_i = \sum_{j \in \mathcal{N}(x_i)} \alpha_{ij} \hat{y}_j^t
|
|
||||||
\]
|
|
||||||
其中,注意力权重 \(\alpha_{ij}\) 由实例间嵌入特征的余弦相似度计算:
|
|
||||||
\[
|
|
||||||
\alpha_{ij} = \frac{\exp(\text{sim}(f_{\theta}(x_i), f_{\theta}(x_j)) / \tau)}{\sum_{j' \in \mathcal{N}(x_i)} \exp(\text{sim}(f_{\theta}(x_i), f_{\theta}(x_{j'})) / \tau)}
|
|
||||||
\]
|
|
||||||
\(\tau\) 是温度超参数。
|
|
||||||
4. **计算修正概率**:通过比较近邻预测标签 \(\bar{y}_i\) 和当前标签 \(\hat{y}_i^t\) 来计算修正概率:
|
|
||||||
\[
|
|
||||||
p(a_i^t = 1) = \frac{\sum_{j=1}^C \mathbb{1}(\bar{y}_{ij} > \bar{y}_{i\hat{y}_i}) \cdot \bar{y}_{ij}}{\sum_{j=1}^C \mathbb{1}(\bar{y}_{ij} \geq \bar{y}_{i\hat{y}_i}) \cdot \bar{y}_{ij}}
|
|
||||||
\]
|
|
||||||
其中,\(C\) 是类别数量,\(\hat{y}_i = \arg\max_j \hat{y}_{ij}^t\) 是当前标签预测的类别索引。该公式计算了在 \(\bar{y}_i\) 中,概率高于原始预测类别 \(\hat{y}_i\) 的所有类别的概率之和,并将其归一化。这有效地量化了标签不一致的程度。
|
|
||||||
|
|
||||||
**状态转移**是确定性的:给定状态 \(s_t\) 和采样的动作 \(a_t\),下一个状态 \(s_{t+1}\) 的标签由下式决定:
|
|
||||||
\[
|
|
||||||
\hat{y}_i^{t+1} = \begin{cases}
|
|
||||||
\hat{y}_i^t, & \text{if } a_i^t = 0 \\
|
|
||||||
\bar{y}_i, & \text{if } a_i^t = 1
|
|
||||||
\end{cases}
|
|
||||||
\]
|
|
||||||
|
|
||||||
### 3. 奖励函数
|
|
||||||
|
|
||||||
奖励函数 \(R(s_t, a_t)\) 用于评估动作 \(a_t\) 在状态 \(s_t\) 下的好坏,它由两个子奖励函数组合而成:
|
|
||||||
|
|
||||||
1. **标签一致性奖励**:评估新状态 \(s_{t+1}\) 中所有标签的平滑性,即每个标签与其全局k近邻(基于一个固定的预训练特征提取器 \(f_{\omega}\))的预测标签的一致性。使用负KL散度来衡量:
|
|
||||||
\[
|
|
||||||
R_{\text{LCR}}(s_t, a_t) = -\mathbb{E}_{i \in [1:N]} \left[ \text{KL} \left( \hat{y}_i^{t+1}, \sum_{j \in \mathcal{N}_{\omega}(x_i)} \alpha_{ij} \hat{y}_j^{t+1} \right) \right]
|
|
||||||
\]
|
|
||||||
|
|
||||||
2. **噪声标签对齐奖励**:评估被修正的标签(“噪声”子集)与未被修正的标签(“干净”子集)之间的一致性。具体是计算每个被修正标签与其在“干净”子集中的k近邻的预测标签的负KL散度:
|
|
||||||
\[
|
|
||||||
R_{\text{NLA}}(s_t, a_t) = -\mathbb{E}_{i \in \mathcal{D}_{\text{noi}}^{t+1}} \left[ \text{KL} \left( \hat{y}_i^{t+1}, \sum_{j \in \mathcal{N}_{\text{cle}}(x_i)} \alpha_{ij} \hat{y}_j^{t+1} \right) \right]
|
|
||||||
\]
|
|
||||||
|
|
||||||
最终的**复合奖励函数**是这两个子奖励的加权和,并通过指数函数进行缩放,将奖励值范围约束在 (0, 1] 内,以确保学习过程的稳定性:
|
|
||||||
\[
|
|
||||||
R(s_t, a_t) = \exp \left( R_{\text{LCR}}(s_t, a_t) + \lambda R_{\text{NLA}}(s_t, a_t) \right)
|
|
||||||
\]
|
|
||||||
其中,\(\lambda\) 是平衡两个奖励权重的超参数。
|
|
||||||
|
|
||||||
## 三、Actor-Critic 学习方法
|
|
||||||
|
|
||||||
该方法采用 Actor-Critic 算法来学习最优策略 \(\pi_{\theta}^*\)。
|
|
||||||
|
|
||||||
- **Actor(执行者)**:即策略函数 \(\pi_{\theta}\),负责根据当前状态选择动作。
|
|
||||||
- **Critic(批评者)**:即动作-价值函数 \(Q_{\phi}(s, a)\),参数化为 \(\phi\),用于估计在状态 \(s\) 下采取动作 \(a\) 所能获得的期望累积奖励 \(Q(s, a) = \mathbb{E}_{\pi_{\theta}}[\sum_{t=0}^{\infty} \gamma^t R(s_t, a_t) | s_0=s, a_0=a]\)。
|
|
||||||
|
|
||||||
**学习目标**是最大化期望累积奖励 \(J(\pi_{\theta})\)。其梯度可通过策略梯度定理计算:
|
|
||||||
\[
|
|
||||||
\nabla_{\theta} J(\pi_{\theta}) = \mathbb{E}_{s \sim \rho_{\pi_{\theta}}, a \sim \pi_{\theta}(s)} [\nabla_{\theta} \log \pi_{\theta}(a|s) Q(s, a)]
|
|
||||||
\]
|
|
||||||
在实践中,\(Q(s, a)\) 由 Critic 网络 \(Q_{\phi}\) 估计。
|
|
||||||
|
|
||||||
**Critic 网络的更新**采用 SARSA 方法进行在策略学习。时间步 \(t-1\) 的时序差分误差为:
|
|
||||||
\[
|
|
||||||
\delta_{t-1} = R(s_{t-1}, a_{t-1}) + \gamma Q(s_t, a_t) - Q_{\phi}(s_{t-1}, a_{t-1})
|
|
||||||
\]
|
|
||||||
参数 \(\phi\) 通过以下梯度步进行更新:
|
|
||||||
\[
|
|
||||||
\phi \leftarrow \phi + \beta \delta_{t-1} \nabla_{\phi} Q_{\phi}(s_{t-1}, a_{t-1})
|
|
||||||
\]
|
|
||||||
其中,\(\beta\) 是 Critic 的学习率。
|
|
||||||
|
|
||||||
### 批评者输入编码
|
|
||||||
|
|
||||||
由于状态和动作的维度很高(与数据集大小 \(N\) 相关),直接输入 Critic 网络计算代价大。因此,论文设计了一种高效的编码方案:
|
|
||||||
1. 利用确定性状态转移,用下一状态 \(s_{t+1}\) 等价表示状态-动作对 \((s_t, a_t)\)。
|
|
||||||
2. 计算 \(s_{t+1}\) 中每个实例-标签对 \((x_i, \hat{y}_i^{t+1})\) 的个体奖励 \(r(x_i, \hat{y}_i^{t+1})\)(计算方法类似于 \(R_{\text{LCR}}\))。
|
|
||||||
3. 使用分箱策略:根据个体奖励值将 \(N\) 个实例分配到 \(N_b\)(\(N_b \ll N\))个箱子中。
|
|
||||||
4. 构建一个维度为 \(N_b\) 的向量 \(v_{t+1}\) 来编码状态 \(s_{t+1}\),该向量的每个元素是落入对应箱子的实例比例。
|
|
||||||
|
|
||||||
这样,高维的 \((s_t, a_t)\) 被压缩为低维向量 \(v_{t+1}\) 作为 Critic 网络的输入,大大提升了计算效率。
|
|
||||||
|
|
||||||
## 四、用于预测模型训练的标签清洗
|
|
||||||
|
|
||||||
学习到策略函数 \(\pi_{\theta}\) 后,按以下步骤进行标签清洗和模型训练:
|
|
||||||
1. **标签清洗**:使用训练好的策略函数 \(\pi_{\theta}\) 在原始噪声数据集 \(s_0^0\) 上运行 \(T'\) 个时间步,生成一个状态轨迹。最终状态 \(s_{T'}\) 中的标签被视为“干净”标签。
|
|
||||||
2. **模型训练**:预测模型 \(h_{\psi} \circ f_{\theta}\) 首先在原始噪声数据集上进行预训练。其中,特征提取器 \(f_{\theta}\) 在策略学习过程中也被进一步训练。最后,使用清洗后的数据集 \(s_{T'}\) 对模型进行微调,以得到最终的高性能预测模型。
|
|
||||||
|
|
||||||
## 总结
|
|
||||||
|
|
||||||
该方法的核心创新点在于将噪声标签清洗巧妙地构建为一个序列决策过程,并利用强化学习(特别是 Actor-Critic 框架)来学习一个基于标签一致性的、可解释的清洗策略。通过奖励函数引导策略朝着产生更一致、更可靠标签的方向优化,最终获得高质量的数据集用于模型训练。
|
|
||||||
Reference in New Issue
Block a user