现有的机器学习任务默认训练数据遵循独立同分布 (idependently and identically distributed, IID),神经网络、深度学习等常见算法一般都将数据遵循 IID 的假设作为其推导的一部分。
然而,在真实世界中样本数据相关性(inter-dependent)几乎无处不在,非同源数据/标签的分布也可能具有不同的概率分布,这些数据都遵循非独立、同分布(Non-IID)。
在一些场景中,直接应用已有机器学习算法基于 Non-IID 数据完成模型训练,由于算法本身的先进性训练结果仍然较好。但对于某些应用场景,基于现有的机器学习算法和框架,使用 Non-IID 数据训练会出现意想不到的负面效果,比如模型准确度低、模型无法收敛等。
比较常见的需要处理 Non-IID 数据问题的应用场景包括:
异常检测(Outlier Detection)。训练样本数据中存在的异常值(例如人脸识别中的眼镜、头发遮挡等),会在估计过程中引入较大方差。传统机器学习算法一般通过扩大样本数据集来解决这一问题。但当异常值以及样本数据存在系统性相关性时,会在估计过程中引入系统性偏移。这种情况下即使增加样本数据,也无法解决该问题。
生物医学应用(Medical Data)。在医学图像处理中,一些病变结构(例如肺中的附壁结节)在图像中空间位置相近,因此候选迭代算法(Candidate generation, CG)的计算结果将这些病变结构都指向同一潜在生理区域(例如同一肺结节)。其他类型的病变结构(例如非附壁结节)由于 CG 算法存在估计偏差,可能由于具有相似的基础特征也被指向该区域。也就是说,如果我们简单地将所有数据视为来自 IID 数据源的数据,则疾病潜在结构原因的发生频率和其他统计特性将可能存在系统性地改变。因此,在利用医学图像辅助疾病诊断的机器学习算法中由于 Non-IID 数据存在系统性偏差,即使提供大量的训练数据,也无法解决偏差带来的问题。
联邦学习 (Federated Learning)。在联邦学习的应用场景中,各个设备上的数据是由设备/用户独立产生的,不同设备/用户的非同源数据具有不同的分布特征,而每一个设备在进行本地学习的时候,所学习的训练数据是 Non-IID 的。因此研究提升 Non-IID 数据的学习效率,对于联邦学习具有重要意义。联邦学习允许用户在不需要集中存储数据的情况下,从本地存储的数据中共同获得共享模型的好处。客户端的本地数据通常基于特定用户对移动设备的使用,因此任何特定用户的本地数据集都不能代表总体分布。
近年来,针对 Non-IID 数据的机器学习算法以及联邦学习、医学数据分析等的应用文章越来越多,本文选择其中有代表性的五篇进行方法和应用情况的分析。包括:
《Learning Classifiers When The Training Data Is Not IID》主要解决经典统计分析进行分类器预测过程中针对 Non-IID 数据的处理方法
《Communication-Efficient Learning of Deep Networks from Decentralized Data (http://arxiv.org/abs/1602.05629)》为解决联邦学习中 Non-IID 数据问题,提出一种基于迭代模型平均的深层网络联合学习方法(Federated Averaging,FedAvg)
《Federated Learning with Non-IID Data》是针对(2)的分析和改进,使用客户端数据分布和中央服务器数据总体分布之间的土方运距 (earth mover』s distance, EMD) 计算权重散度,同时提出了一种数据共享(Data-Sharing)策略改进 FedAvg 的性能
《On the Convergence of FedAvg on Non-IID Data》重点讨论联邦学习问题中 FedAvg 在处理 Non-IID 数据时的收敛性问题,从理论角度证明了 FedAvg 的有效性
《LoAdaBoost:Loss-Based AdaBoost Federated Machine Learning on medical data》基于 FedAvg 和数据共享策略提出了一种针对医学数据的提高联邦学习效率的自适应增强方法