如何在稀烂的数据中做深度学习
小火炉信息技术前沿讲座 | 如何在稀烂的数据中做深度学习 学习笔记
1 好的训练数据:
- 可获取
- 大规模
- 平衡
- 干净(标签准确)
2 数据不完美时如何做深度学习?
四种方法对应四种不同的情况:
- 联邦学习(Federated Learning): 数据存储在本地(数据不集中);
- 长尾学习(long-tail learning):类别分布不平衡;
- 嘈杂的标签学习(noisy label learning):标签不准确;
- 持续学习(continual learning):部分数据可获取,在间隔时间可持续获取数据
2.1 联邦学习
2016年由谷歌提出,核心思想是不传数据,传模型参数。
(1)联邦学习难点在于数据异构
数据异构:每个用户的数据来自于不同的分布;
数据异构困难在于:
- 每个用户的训练数据量不同;
- 每个用户的训练类别不同;
- 每个用户的不平衡比例不同。
一般的解决方法是要求在更新本地模型时不能跟全局差距太大。
(2)涉及的其他问题
- 个性化FL
- 模型传输和压缩
- 隐私问题
- 公平
- 数据投毒攻击
- 奖励机制
2.2 长尾学习
常用方法一般是重采样和重加权;
近年来新的挑战:
- 类别数巨大,不平衡变得更加复杂;
- 由于是端到端学习,数据不平衡不仅影响分类器,也影响特征提取。
主要方法:
- 重加权(re-weighting)
一般在损失部分进行加权计算
- 数据增强(augmentation)
重采样,生成数据,前景背景融合(前景混合不同的背景)
- (decoupling)
有研究者把训练分为两步:(1)训练整个模型;(2)把特征固定住,再学习分离器。
然后在每一个阶段使用不同的策略(CE:cross-entropy; RW: re-weighting;RS: re-sampling)。最后发现长尾数据对特征影响不大,主要是影响分类器。
- 集成学习(ensemble learning)
训练多个模型,每个模型在不同的分布上训练。
使用较多模型训练尾部类,较少的训练头部类。使得总体结果不对头部类偏移太多。
2.3 噪声标签的学习
因为噪声的存在会导致模型学习到错误的特征造成过拟合。
方法有:
- 模型对数据进行一个权重判别,给差的标签一个较低的权重;
- 限制模型的可用数据,让模型自己选择质量高的样本。
- sall loss trick,不学习错误率太高的样本。
2.4 持续学习
假设:
- 无法储存所有数据;
- 数据分布可能偏移;
- 模型的测试包含所有的历史数据类别。
实际上需要平衡稳定性和可塑性。
方法:
2.4.1 基于回放的方法
回放(replay-based):留存一部分历史样本。
- 学习新数据时,限制不能使模型在旧数据上表现变差。
- 数据集压缩:把很多数据凝结在一张图像上
基于回放的方法存在很多数据方面的限制,但目前最好的方法还是基于回放的方法。
2.4.2 基于正则的方法
要求在训练过程中新学习的模型不能跟老模型相差太大。