NPJ Digit Med|数字医学和维度诅咒
2021年10月28日,npj digital medicine杂志发表一篇名为《数字医学和维度诅咒》的文章,文章概述了数字健康背景下的"维度诅咒",展示了它如何对模型的样本外性能产生负面影响,并总结了研究人员和算法设计者需要考虑哪些重要内容。
以下是全文。
摘要
前言
健康数据的维度很大且不断增加。病人的电子健康记录包含成像数据、语音样本、临床变量、来自可穿戴设备的活动水平和生命体征信息、基因组数据以及其他数据流。这导致了病人健康状态的高维度和潜在的丰富表现。例如,大脑MRI图像中的像素具有亚毫米的分辨率,导致成像数据具有一百万或更多的三维像素(voxels)。来自可穿戴设备的连续数据以每秒几十或几百个样本进行采样。语音的采样率通常在每秒16k到44k之间。图像具有百万像素的分辨率,视频流每秒堆积数十张高分辨率的图像。个人基因组信息被编码为潜在的数百万个单核苷酸多态性(SNPs)的基因型。随着数据分辨率的提高和新模式的加入,这些数字在未来只会增加,这意味着每个人都有一个包含大量高度复杂信息的临床数据足迹。数字健康数据的高维性质给算法设计者留下了非常大的原始输入数据流,可以从中提取特征用于算法开发。在本文中,我们使用术语“高维/小样本数据”或“高维问题”来表示特征的数量非常大(往往大于样本量的情况),这在数字健康应用中经常发生。
图 1:临床 AI 模型开发的模块图
虽然人工智能在医疗保健领域有相当大的前景,但迄今为止,它的交付量不足。在许多情况下,研究人员依靠相对较小规模的训练数据集来训练和评估具有大量特征的人工智能算法,以实现这些目标。由于缺乏可推广性,过早传播到临床的算法导致了灾难性的失败——在训练阶段实现高性能的算法,在部署使用时反而具有更高的错误率。
如何解释人工智能的前景与转化到临床的缓慢速度之间的鸿沟?我们认为,正是数据的高维性质以及其中隐藏的信息使得构建泛化模型具有挑战性。由于人类信号、背景因素和环境变量的可变性,健康状态数据很复杂。随着我们测量的临床变量数量的增加,变量可以共同采用的可能值出现组合爆炸。构建用于解决复杂问题的稳健模型需要样本量的相应增加来抵消变异性的增加。尝试使用高维数据解决高度复杂的现实世界问题,而不增加样本量,会给数据集留下一个“盲点”(即没有任何观察的特征空间的连续区域),并对模型开发提出一些挑战。这种现象在统计学习理论中被称为维度灾难。
维数的诅咒导致对泛化性的负面影响。当算法设计者使用不足的样本量来训练和评估算法以在复杂构造(例如人类健康)中寻找模式时,大量的盲点区域可能导致对真实模型性能的高度可变的估计。这种可变性使得我们很难准确估计模型在未见过的数据上的表现,使算法设计者对模型在开发过程中的表现有不准确的感觉。如果错误的估计是对真实性能的高估,那么在模型部署后就会造成灾难性的失败。
几个未能概括的高维模型的显著例子证明了这种现象的医学相关性。Watson for Oncology 接受了高维历史患者数据的培训,以针对八种不同的癌症类型提出治疗建议。然而,Watson 只使用了一个小样本进行训练,范围从 106 例卵巢癌到 635 例肺癌。小而高维的训练样本容易出现数据集盲点;如果在部署后遇到来自这些盲点的数据,该模型可能会产生在模型开发过程中未检测到的错误的治疗建议。这个问题不仅限于肿瘤学。个性化营养行业正在不断发展,一些公司通过训练 AI 模型来学习从一个人的遗传或微生物组肠道特征(一种高维信号)到个性化营养计划的映射。可靠地训练这些模型需要大规模标记数据(例如,配对的营养/遗传/健康结果数据);然而,这些数据是有限且稀少的,科学界越来越怀疑现有的个性化营养解决方案是否有效。
维度诅咒和数据集盲点
为了说明维度的诅咒,我们考虑一个概念性的例子:一位科学家旨在开发一种机器学习算法,分析参与者的语音,并将他们分类为具有轻度认知障碍(MCI)或认知健康。以图1为指导,科学家首先根据预先指定的数据采集协议,从患有MCI的参与者和健康对照组中收集语音;然后,科学家开发了一种算法,从收集到的语音中提取类型与符号比率(TTR;一种捕获词汇的指标)的标准化测量值,以及词汇密度(LD;一种捕获传达信息能力的指标)的标准化测量值。我们假设这两个特征在0到1之间变化。
我们在图2中考虑了与这个风格化问题有关的两种假设情况。在第一种情况下,TTR是区分这两组的唯一相关特征;在第二种情况下,TTR和LD都是区分这两组的相关特征。我们把与分类任务相关的特征集称为 "相关特征空间"。这个术语概括了人工智能模型被训练来揭示的基础模式的真正复杂性。图2显示了在两种情况下绘制的相同样本。在第一种情况下,相关的特征空间是一维的(1-d),可用的数据是特征空间的一个看似密集的采样。在第二种情况下,相关的特征空间是二维的(2-d),潜在特征配置的数量呈二次增长。也就是说,在只有一个相关特征的第一种问题设置中,存在着具有高或低TTR的参与者。然而,在第二个问题设置中,科学家可能不得不考虑具有高TTR/低LD、高TTR/高LD、低TTR/低LD、低TTR/高LD的参与者。
比较两种场景之间的样本分布,我们看到样本之间的平均点间距离在二维特征空间中比在 1-d 特征空间中大得多。相关特征空间中稀疏性的增加会成倍增加数据中盲点的数量。我们将数据中的盲点定义为我们没有样本的特征空间的连续区域。发生这种情况的原因有很多:
1.该区域的样本根本不会出现(盲点不支持真实的数据生成分布);
2.“不幸”的随机抽样漏掉了该地区的样本;
3.训练数据集在一个重要方面存在偏差,因此未能包含来自该区域的样本。
随着维度的增加,盲点的扩大会使我们很难评估在这些数据上训练出来的模型在部署后的表现。考虑在第二种情况下的数据上学习两个模型,如图3所示。两者在现有的数据上取得了大致相同的性能;然而,它们会以不同的方式处理来自盲点的大部分样本。一个模型会把它们归类为健康的,而另一个会把它们归类为MCI。这有什么关系吗?
在最好的情况下,训练数据是从真实数据分布中抽取的随机样本。在这种情况下,扩大盲点的表现要么是那些特征组合不共存,要么是特征空间的 "不幸运 "抽样漏掉了那个区域。在最佳情况下,盲点的后果有轻有重(例如,盲点的数据在部署后永远不会被观察到,而且基本的分类问题很容易),也有严重的(例如,基本问题很复杂,需要额外的样本来对特征空间进行更密集的采样)。在经典的统计学习理论中,对最佳情况进行了广泛的研究。在这种情况下,正确训练一个模型并准确估计其在新数据上的性能所需要的样本量是随着训练期间考虑的模型类别的复杂性(自由度)和分类问题的内在难度而增加的。虽然模型的复杂性可以通过其他方式增加(例如,用单一特征拟合的高阶多项式分类器),但增加更多的特征可以增加适当的模型拟合所需的样本量。例如,如果算法设计者只考虑用于区分这两组的线性分类器的类别(假设地面真实分类器也是线性的),在某种概率上保证模型训练正确的情况下,训练模型所需的样本数与特征维度成线性比例。
然而,在实践中最好的情况很少成立。最近的一项研究发现,数字健康应用的所有训练数据中有71%是在三个州(加州、马萨诸塞州和纽约州)收集的,其中34个州根本就没有代表。由于数字健康应用的核心是涉及高维相关特征空间的复杂问题,这种有偏见的抽样很可能会留下一个巨大的盲点,在部署后可以观察到数据;这个盲点的体积随着特征的数量呈指数级增长。正如图3中两个分类器的例子一样,算法设计者没有办法比较两个在可用数据上表现同样好的候选模型的实际表现。事实上,只有在部署之后,当分类器开始观察盲点区域的样本并产生决策时,算法设计者才可以发现问题。在模型开发过程中,如果没有额外的信息,这个问题是无法解决的,因为我们不能期望模型会正确地推断出来自盲点的样本。算法设计者提出了一些解决方案,要求在部署后持续监测数据分布;这些解决方案要求数据与模型中的特征维度成指数级增长。
维度的诅咒告诉我们,当我们处理复杂度越来越高的问题时,这个盲点的体积会以指数级的速度增长,而样本量却保持不变。如果真的有第三个相关的语音特征可以用来对MCI和健康对照组进行分类,科学家在不增加样本量的情况下将其包括在内,那么由于可能的特征组合的组合爆炸,样本的稀疏性和盲点的体积将继续增加。此外,这个假想的例子假设科学家预先知道哪些特征与分类任务有关,并且在训练模型时只使用这些特征的数据。如果科学家通过随意加入更多的特征来探索特征空间,通常情况下,问题会变得更加复杂,因为探索性特征会进一步增加盲点的数量。
数据集盲点对模型性能估计的影响
交叉验证或保留的测试集在开发过程中通常被用来估计人工智能模型的性能,以达到模型选择和设计前瞻性验证研究的目的。在上述最坏的情况下,很明显,这些性能估计可能是不可靠的,因为模型是用一个不代表部署后数据的样本训练的。在最好的情况下,大盲点的结果是真实模型性能估计器的高方差。也就是说,不同的数据实现会有不同的盲点,而数据分割和/或重采样方法无法填补这些盲点,其结果是样本外的性能必然对手头的具体数据敏感。这一现象在最近的一项研究中得到了经验性的观察,该研究使用结构性核磁共振数据来诊断重度抑郁症(MDD);作者随机抽样训练集和测试集(模仿样本内和样本外数据),规模越来越大,并使用48种不同的自动管道配置和默认超参数来评估模型。他们发现,模型性能估计的变异性随着测试集规模的减小而增加;例如,N=100的测试集的准确率从51%到79%不等,而N=20的测试集的准确率从35%到95%不等(见参考文献14的图4);使用留一法交叉验证也得到类似的结果。简单地说,在高维模型中,模型精度本身就很难估计,而基于不充分的大样本的估计可能是对模型部署后性能不可靠的指导。
这些发现,为使用高维模态训练样本量相对较小的机器学习模型时,观察到的模型性能与样本量之间的负相关提供了可能的解释。例如,对 200 多项研究中基于神经影像的 AI 模型的分析表明,在涉及多种神经系统疾病(包括精神分裂症、MCI、阿尔茨海默病、重度抑郁症和注意力缺陷多动障碍)的研究中,报告的表现与样本量之间存在负相关。一项后续荟萃分析研究了 55 项研究报告的准确性与样本量之间的关系,这些研究使用高维 AI 模型(在不同的数据模式上训练)来预测参与者是否被诊断出患有自闭症谱系障碍,并发现具有很强的显着性样本量与报告准确性之间的负相关。类似地,在图 4 中,我们描述了基于语音的认知障碍分类模型的准确性和样本大小之间的关系,这些模型来自两个荟萃分析。它是在语音分析文献以提取从不同的条件下引起的学习模型对照组和受损的组之间进行分类的语音样本的特征数百或数千常见的做法。我们绘制了文献中 51 个分类器报告的准确度与总样本量的关系图,考虑了两种类型的模型:(1) 基于语音的模型,用于在对照组 (Con) 和诊断为阿尔茨海默病 (AD) 的患者之间进行分类;(2) 基于语音的模型,用于在对照组和其他形式的认知障碍 (CI) 患者之间进行分类。与神经影像学和其他高维模式的结果一致,两组模型中的每组模型和所有研究的准确性和样本量之间都存在负相关关系。
已发表的研究和我们对基于语音的认知障碍模型的分析显示,无论基础模式如何,样本量和报告的准确性之间存在负相关。我们猜想,由于高维问题的样本量小而导致的数据集盲点的变异,再加上报告偏见,为负向趋势提供了可能的解释。低估准确度的模型不太可能被发表,因此,荟萃分析的趋势可能反映了参考文献图4中性能估计图的上包络线(upper envelope)。这确实与在一些领域观察到的抽屉问题(file-drawer effect)密切相关。对观察到的趋势的另一个解释可能是在模型开发过程中使用了完整的数据集。使用合并的训练和测试数据进行特征选择和参数调整,然后用k-fold交叉验证来估计模型的准确性,会导致对模型性能的正向偏差估计,特别是对于小样本量的研究。除了单一研究中的交叉验证外,长期重复使用同一数据集来改进算法和训练新模型也会导致类似的偏差。在已发表的文献中,这种对真实性能的高估为读者提供了一种过于乐观的期望,即这些模型一旦部署后会有多好的效果。
减轻模型开发过程中维数灾难影响的注意事项
高维、复杂的应用环境,加上小规模的样本,为盲点创造了一个完美的风暴。评估模型性能的黄金标准是与模型部署后的使用环境相匹配的前瞻性验证研究。我们认为,大多数在高维、小数据情况下训练的已发表模型在验证过程中不太可能表现良好。
虽然这个问题很有挑战性,但某些策略可以提高建立一个强大模型的可能性。对于图1中的各个模块,我们为研究人员提供了在模型开发和部署过程中的注意事项,以成功处理复杂的高维模型。
数据采集协议
不同模式的数据收集因情况而异。电子健康记录中的大多数信息丰富的数据模式(例如,临床测试、成像数据、遗传学数据)都是在临床上使用预先指定的协议收集的。然而,现实世界的传感器的数据可以在各种情况下收集。例如,考虑从现实世界的环境中被动地收集数据作为健康指标(例如,从持续感应的行动图或被动收集的语音样本中获得的原始数据流)。被动收集的数据对健康应用的好处是显而易见的,但对强大的模型开发的挑战是巨大的。回到我们的语音例子,背景因素,如背景噪音、其他人说话或人们说话方式的差异,会以难以描述的方式影响用于驱动人工智能模型的特征。这意味着,在这些条件下收集的原始数据取决于各种潜在的不相关(和未知)因素。这增加了数据生成过程的内在维度和潜在的盲点,特别是当样本量有限时。
算法设计者应该考虑将主动的、最大性能的任务作为被动收集数据的替代方案。最大性能任务,如语言中的二维运动速率估计或运动控制的快速手指敲击限制了表征基本数据生成过程所需的特征维度;这具有减少盲点影响的作用。此外,最大性能的任务减少了未测量的变化(即噪音)的相对影响,从而使感兴趣的临床对比的估计更加有效。例如,在早期肌萎缩性脊髓侧索硬化症中,患者在日常对话中可能没有可察觉的差异;然而,在最大性能任务下测量时,发音的速率和精确度都会降低。在被动收集数据的范式下,很可能永远不会观察到语音特征空间的这一区域,因为大多数最大性能任务都不在日常典型的语音模式之内。
训练数据收集
科学家在设计训练样本的规模和多样性时应该非常谨慎,以确保它与模型部署后的预期条件相匹配。即使采用多样化的采样策略(如从许多地理区域获取数字健康数据),仍需要较大的样本量来可靠地训练更复杂的高维模型。在设计最终模型之前,算法设计者可以使用现有的方法来预测可靠地训练分类算法所需的样本量。
更复杂的情况是,由于训练数据和部署后的数据不匹配而出现协变量转移(例如,临床AI模型的地理偏差)。这种有偏见的抽样将诱发训练和部署后数据分布之间的巨大差异,导致数据中出现巨大的、有问题的盲点。为训练设计有代表性的数据集往往是说起来容易做起来难,因为它需要事先了解哪些分层变量与预测因子共线性。在我们的语音例子中,有大量关于地理方言、年龄、性别和其他生物/解剖学变量对语音的影响的公开数据;对这些参数及其范围的仔细映射使算法设计者能够构建有代表性的训练数据,以建立稳健的人工智能模型。需要注意的是,这并不能确保这些阶层之间的性能均等;但是,拥有代表性的数据可以让科学家估计相关阶层的模型性能变化。
特征工程
算法开发者做出的最重要的设计决定之一是在模型中包括哪些特征。研究人员并不预先知道完全描述所关注问题的最佳特征空间。因此,他们将基础数据生成过程的知识与额外的探索性数据驱动的特征选择结合起来,试图改善一个模型。下面我们将讨论一些建议,使用领域专家和数据驱动特征的组合来降低模型的维度,并且是可重复的。我们在此描述的方法通过从模型中去除潜在的不相关的特征来帮助提高模型的鲁棒性;然而,如果所选的特征仍然导致高维/小数据,它们并不能消除盲点的问题。
降低模型维度的一种方法是用理论来指导模型的开发。在临床上,这意味着选择一小部分已知会随疾病变化而变化的特征,同时每天保持相当稳定。回到我们的语音例子,虽然使用数百个特征在健康人和MCI病人之间进行分类是很诱人的,但当样本量有限时,更好的策略是先验地关注一组有限的特征,根据现有的理论,预计这些群体之间会有差异(例如,说话时停顿次数增加,或随着认知能力下降词汇量减少)。同样,在涉及心电图(ECG)数据的应用中,使用原始心电图记录作为人工智能模型输入的一个替代方法是使用具有临床意义的衍生特征(例如,心率变异性)。
在许多应用中,可以大规模地收集传感器数据,但临床标签很昂贵。这些数据可以用来通过转移学习来学习相关的低维特征空间。例如,自监督学习通常用于语音和语言处理,其中一个模型在一个大的无标签数据集上进行预训练,用于表示学习,并在较小的特定任务数据上进行微调。此外,语音界一个长期存在的问题是将说话人特定的影响与任务特定的影响分开。一些语音分析管道使用说话人适应性训练,即模型以预先训练好的说话人嵌入为条件,以便他们从感兴趣的任务中学习相关特征。这些例子的共同点是,只需要大规模的所谓无标签数据(即不需要临床结果)来学习有用的特征。在这种情况下,无标签意味着特征学习不需要临床标签(如诊断);但是,可能需要其他成本较低的标签。例如,学习特定于说话人的嵌入来调节下游的临床模型,需要算法设计者知道哪些语音样本属于哪个说话人。在语音和语言领域之外,转移学习也可以在临床成像应用中学习可重复使用的特征,特别是在神经网络的低层。
领域专家特征和通过迁移学习学到的特征有助于降低原始传感器数据的维度,只关注与当前任务相关的特征子集,这些特征是通过外部信息源(领域专家或大型未标记数据集)获得的。这与其他降维方法不同,如主成分分析(PCA)或相关变体,其中复合特征仅来自小型标记数据集,遵循的假设是环境特征空间中的"有趣方向"(以变化程度衡量)更可能预测感兴趣的响应变量。虽然基于PCA的特征减少可以通过减少方差来帮助提高模型的通用性,但它不可能产生与领域相关的特征,因为一个给定的临床反应很可能被较低的变异方向和最大变异方向所强烈预测。
人工智能中表征学习的一个重要属性很少受到关注,那就是特征的可重复性。数字传感器可以捕捉到高密度的日常活动足迹;然而,人类行为因各种原因而变化,其中大部分与临床状况无关。重复性研究利用统计学(如类内相关、测量的标准误差等)来描述一个人的测量结果从一个样本到另一个样本的变化程度,这有助于塑造下游的人工智能模型。我们建议,在建立人工智能模型之前,应通过在健康对照组和临床人群中进行简单的测试,进行恢复研究来评估特征变异性。回到我们的语音例子,即使在同一设备和同一环境下,通过主动收集的语音,在一致的记录条件下,常用的语音特征仍然存在相当大的变异性。最近的一项研究记录了已发表的临床研究中所使用的大多数常用语音特征的重复性水平很差。换句话说,从记录的语音中客观测量的特征(使用相同的设备和在相同的环境中收集),在这段时间内临床状况没有变化的人,从一天到另一天的变化很大。这种变异性使我们更难看到临床上的重要差异,并可能提高被统计学上的幸运结果所愚弄的几率,因为它掩盖了一个盲点的存在。诸如此类的可重复性研究可以通过修剪掉高度可变的特征来帮助降低人工智能模型的维度。
模型训练和调优
一旦收集了具有代表性的训练集并完成了特征工程,模型训练和调优应遵循处理高维数据的最佳实践。一些流行的监督学习模型,如逻辑回归、决策树和k最近邻分类器,对维数灾难尤其敏感。有丰富的工作机构,提出了各种策略来规范这种模式向着使他们更合适的和强大的高维设置。此外,可以采用数据驱动的正则化和集成平均技术(ensemble averaging techniques)来鼓励模型产生更平滑的决策边界,并在高维度上更加稳健; 事实上,这些技术已被证明在使机器学习模型对甚至对抗性损坏的鲁棒性方面非常有效。在开发过程中使用这些模型有助于提高模型的稳健性。
模型验证
人工智能算法开发者通常将他们的数据集分成两部分:训练集和测试集。训练集被用来学习模型,而测试集被用作模型性能的最终仲裁者。由于数据稀缺,在候选模型之间进行比较时,开发者通常会重复使用测试集,而不考虑正在进行的多次比较。对于非常小的样本量,公认的是,在测试集上的重复评估会导致过度拟合,并为算法设计者提供对模型性能的过度乐观的感觉,这个问题对于高维模型来说更为复杂。最近的经验结果表明,对于用较大样本量训练的模型来说,测试数据的重复使用问题不大,甚至对于更复杂的模型来说也是如此。然而,当不可能大规模地收集训练和测试数据时,科学家应该遵循强大的模型评估方法,以减轻这些影响。例如,在评估适应性优化模型的性能时,存在安全地重复使用测试数据集的方法。这种方法的关键思想是保护测试集中单个样本的隐私,在比较模型性能时只使用总的准确性指标。实际上,这意味着算法设计者不应该通过识别测试集中模型失败的边缘案例并改进模型来提高模型性能。需要注意的是,这些最佳实践只有在我们没有不可逾越的盲点时才有帮助。在这种情况下,唯一的解决办法是收集额外的,可能是更多样化的数据。
模型监控
结论
不可否认的是,人工智能正在改变医学的格局,尽管到目前为止,它的承诺和对病人护理的真正影响之间仍然存在相当大的差距,这至少部分是由于缺乏模型的可推广性。也就是说,在训练阶段取得高性能的算法,在前瞻性验证阶段会有更高的错误率。数据的高维、多模态性质既是一种诅咒,也是一种利好。临床人工智能模型通常在高维、小样本量的数据集上进行训练,有很大的盲点。随着这些数据集被用来处理越来越复杂的应用,而样本量却没有相应增加,模型在这些相同的小数据集上被反复完善,盲点的负面影响会呈指数级增长,使训练好的模型在部署期间更容易失败。为了减轻其中的一些负面影响,研究人员应该首先仔细考虑可用的样本量是否能够支持应用的复杂性。如果答案是肯定的,他们应该在开发过程中限制不必要的模型复杂性,确保用于训练模型的特征是稳健的,注意收集无偏见的训练样本,以支持模型的复杂性,并在部署后监测模型,以确保训练数据分布和部署时的数据分布之间没有错位。