| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> [半监督学习] MixMatch: A Holistic Approach to Semi-Supervised Learning -> 正文阅读 |
|
[人工智能][半监督学习] MixMatch: A Holistic Approach to Semi-Supervised Learning |
半监督学习方法中的一类为添加一个损失项, 该损失项是在未标记的数据上计算的. 在许多工作中, 这个损失项包含以下三类:
本文介绍了 MixMatch, 这是一种 SSL 算法, 它引入了一个单一的损失, 将这些主要方法优雅地统一到半监督学习中. 与以前的方法不同, MixMatch 一次针对所有属性, 其贡献如下:
简而言之, MixMatch 为未标记数据引入了一个统一的损失项, 可以无缝地降低熵, 同时保持一致性并与传统的正则化技术保持兼容. 1. 损失项1.1 一致性正则化(Consistency Regularization)监督学习中一种常见的正则化技术是数据增强. 例如, 在图像分类中, 通常对输入图像进行弹性变形或添加噪声, 这可以在不改变其标签的情况下显着改变图像的像素内容. 这可以通过生成近乎无限的新修改数据流来人为地扩大训练集的大小. 一致性正则化将数据增强应用于半监督学习, 其强制一个未标记的示例 x x x 的分类应该与 D a t a A u g m e n t ( x ) {\rm DataAugment}(x) DataAugment(x) 的分类相同. 在我前面的几篇文章中介绍了利用一致性正则化的方法: Π \Pi Π-model, Temporal Ensembling, Mean-Teacher, Dual-Student, VAT, ICT, UDA. 1.2 熵最小化(Entropy Minimization)许多半监督学习方法中一个常见的基本假设是分类器的决策边界不应穿过边缘数据分布的高密度区域. 强制执行此操作的一种方法是要求分类器输出对未标记数据的低熵预测. 损失项使未标记数据 x x x 的 p m o d e l ( y ∣ x ; θ ) p_{model}(y | x; \theta) pmodel?(y∣x;θ) 的熵最小化. 这种形式的熵最小化与 VAT 相结合以获得更强的结果. "伪标签"通过对未标记数据的高置信度预测构建 one-hot 标签并将其用作标准交叉熵损失中的训练目标, 从而隐式地进行熵最小化. MixMatch 还通过在未标记数据的目标分布上使用"锐化"函数来隐式实现熵最小化. 1.3 通正则化(Traditional Regularization)正则化是对模型施加约束, 希望其能更好地泛化数据. 使用权重衰减来惩罚模型参数的 L2 范数, 还在 MixMatch 中使用 MixUp. 将 MixUp 用作正则化器(应用于标记数据点)和半监督学习方法(应用于未标记数据点). MixUp 方法在之前就已经应用于半监督学习, 例如 ICT. 2. MixMatchMixMatch 是一种"整体"方法, 它结合了 SSL 主流范式中的思想. 给定一个 batch 的 X \mathcal{X} X, 其标签为 one-hot 编码, 代表 L L L 个可能标签中的一个, 和一个相同大小 batch 的未标记示例 U \mathcal{U} U, MixMatch 生成一批经过处理的增强标记示例 X ′ \mathcal{X}' X′ 和一批具有"猜测"标签 U ′ \mathcal{U}' U′ 的增强未标记示例. U ′ \mathcal{U}' U′ 和 X ′ \mathcal{X}' X′ 用于计算单独的标记和未标记损失项. MixMatch 中使用的标签猜测过程如下图: MixMatch 整体算法如下: 2.1 数据增强(Data Augmentation)正如许多 SSL 方法中的典型情况一样, 对标记和未标记的数据都使用数据增强. 对 X \mathcal{X} X 中的每个 x b x_b xb?, 生成一个转换后的版本 x ^ b = A u g m e n t ( x b ) \hat{x}_b = \mathrm{Augment}(x_b) x^b?=Augment(xb?), 在上面 algorithm 1的第3行. 对未标记数据 U \mathcal{U} U 中的每个 u b u_b ub?, 生成 K K K 个增强 u ^ b , k = A u g m e n t ( u b ) , k ∈ ( 1 , … , K ) \hat{u}_{b,k} = \mathrm{Augment}(u_b), k \in (1, \dots ,K) u^b,k?=Augment(ub?),k∈(1,…,K), 在上面 algorithm 1的第5行. 使用这些单独的增强来为每个 u b u_b ub? 生成一个"猜测标签" q b q_b qb?. 其中 batch_size= B B B. 2.2 标签猜测(Label Guessing)对于
U
\mathcal{U}
U 中的每个未标记示例, 增强后使用 MixMatch 模型的预测为示例的标签生成一个"猜测"值. 这个猜测在后来被用在无监督损失项中. 为此, 计算其平均值, 在上面 algorithm 1的第7行: 2.3 MixUp使用 MixUp 进行半监督学习, 与过去的 SSL 工作不同, 将标记示例和未标记示例与猜测标签混合在一起. 为了与损失兼容, 这里定义了一个修改过的 MixUp 版本. 对于具有相应标签概率的两个示例
(
x
1
,
p
1
)
(x_1, p_1)
(x1?,p1?),
(
x
2
,
p
2
)
(x_2, p_2)
(x2?,p2?), 通过以下式计算
(
x
′
,
p
′
)
(x', p')
(x′,p′): 总而言之, MixMatch 将 X \mathcal{X} X 转换为 X ′ \mathcal{X}' X′, 这是一组应用了数据增强和 MixUp 的标记示例. 类似地, U \mathcal{U} U 被转换为 U ′ \mathcal{U}' U′, 即每个未标记示例的多个增强的集合, 并带有相应的猜测标签. X ′ \mathcal{X}' X′, U ′ \mathcal{U}' U′ 是对有标签和无标签数据进行增强之后得到的新训练数据. 2.4 损失函数(Loss Function)组合损失
L
\mathcal{L}
L 定义如下: 2.5 一些超参数设置在实践中发现, MixMatch 的大多数超参数都可以固定, 不需要在每个实验或每个数据集的基础上进行调整. 具体来说, 对于所有实验, 设置 T = 0.5 T = 0.5 T=0.5, K = 2 K = 2 K=2. 此外, 仅在每个数据集的基础上更改 α \alpha α 和 λ U \lambda_{\mathcal{U}} λU?. 文中发现 α = 0.75 \alpha = 0.75 α=0.75 和 λ U = 100 \lambda_{\mathcal{U}}=100 λU?=100 是调整的良好起点. TensorFlow 版本代码: https://github.com/google-research/mixmatch |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 20:27:56- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |