生物学深度学习的十个技巧(Ten quick tips for deep learning in biology)
文献阅读 - Ten quick tips for deep learning in biology文章来源期刊 :PLOS Computational BiologyDoi :https://doi.org/10.1371/journal.pcbi.1009803概述特别提示:深度学习仍是机器学习的子领域,受制于机器学习的大多数局限性,也应当遵从机器学习的最佳实践流程(机器学习最佳实践流程多数也
本文是文献Ten quick tips for deep learning in biology的阅读报告,该文章讲述了在将深度学习方法应用于生物学研究时应该考虑的十个关键因素;本文不是纯粹、完全的文献翻译,记述的内容相比原来的英文文献略有增删,但总体不影响原意;感兴趣的朋友可以阅读原文,有不同的理解也欢迎在评论区讨论。
文章来源
期刊 :PLOS Computational Biology
Doi :https://doi.org/10.1371/journal.pcbi.1009803
概述
特别提示:深度学习仍是机器学习的子领域,受制于机器学习的大多数局限性,也应当遵从机器学习的最佳实践流程(机器学习最佳实践流程多数也对深度学习适用)。此外,要特别注意研究的可重复性。
文章主要内容
1、判断深度学习是否适合待解决的科学问题
通用近似定理(万能近似定理)指出神经网络可以用于近似任意复杂函数,并能够达到任意精度。但在实际应用中,受限于数据、计算能力、专业知识等因素,深度学习未必能在特定任务上发挥很好的效果。因此,在应用深度学习方法研究生物学问题前,需要首先考虑深度学习是否适用于该科学问题的研究。
(1)考虑数据量是否充足。小数据集上的高预测精度可能是测试数据不足导致的错误估计。弱监督(weak supervision)和 数据增强(data augmentation)对中小型数据集很有帮助,但不是万能的。在某些情况下,小数据集上使用深度学习也有奇效,但多数情况下大量数据是深度学习建功的基础。
(2)研究者需要考虑深度学习方法对硬件资源(GPU)的要求。
(3)深度学习比传统机器学习更难上手。传统机器学习可以借助Auto ML工具实现有竞争力的性能(在不具备太多领域知识的情况下做出接近领域专家的结果)。而深度学习模型的构建则需要更多的专业知识,虽然从算法理论上来讲可能是传统机器学习更为复杂。
(4)深度学习一般对 以数据中隐藏模式为特征、存在复杂关联/关系、存在相关变量 的问题有奇效。对一个生物学问题,从已有的成功深度学习案例(可以是解决类似问题的案例)中,可以看出深度学习在该问题上的潜力。
(5)深度学习并不总是优于传统方法。随着数据集噪声的增加,简单的方法(如朴素贝叶斯分类)往往优于深度学习方法。
2、使用传统方法建立baseline
深度学习建模涉及大规模超参数优化,超参数的广泛性容易使研究者陷入不必要的复杂分析陷阱。
(1)在使用深度学习方法前,应先尝试简单模型 (包括逻辑回归、随机森林、k-最近邻、朴素贝叶斯和支持向量机等)。这可以帮助研究者建立基准性能预期(baseline performance expectations)、也有助于评估特定预测问题的难度。
(2)现有文献中提供的性能基准也可以作为有用的指南
(3)机器学习和深度学习模型间的性能比较只有在模型均经过优化时才有意义。
3、了解训练深度神经网络的复杂性
(1)深度学习的超参数调优需要消耗大量时间,在此过程中应做好版本控制(代码、随机种子、参数、结果等必须仔细记录并保存)。
(2)深度学习建模过程中涉及非确定性算法,这可能导致可重复性陷阱。例如,CUDA/CuDNN 等 GPU 加速库通常使用默认算法,即使用相同的硬软件,也会在迭代间产生不同的结果。可以通过指定确定性算法以保证可重复性:https://docs.nvidia.com/deeplearning/sdk/cudnn-developer-guide/index.html#reproducibility
(3)建议从规模较小的网络开始尝试,根据需要逐步增加规模和复杂性
(4)研究者必须了解深度学习库的隐式选择(即默认设置),以免研究难重复。
4、深入了解数据和科学问题
(1)明确的科学问题和清晰的分析计划对成功开展深度学习项目至关重要
(2)**应事先评估解答生物学问题需要的数据,并在项目早期获取这些数据、确定数据可用。**注意:一定要事先探索数据是否能够与深度学习结合并用于解决特定的生物学问题。
(3)分析过程中使用的资源、下载日期和数据集版本等信息的保存至关重要。这有助于减少混乱操作、提高分析的可重复性。在研究发表时,应共享收集的数据集和元数据(如果没有道德或隐私问题且没有版权限制)
(4)获取数据后,要深入了解其意义,咨询对该数据类型有经验的专家。被动收集的数据可能有其固有特性,这对准确的数据分析至关重要,因此研究者必须在执行建模前了解(获取数据的)研究的实验设计和数据特异性。一些不应忽视的因素:了解研究是否涉及生物或技术重复;是否存在非独立性,这会降低有效样本量(例如从同一个体不同时间点收集的数据);系统偏差(混杂变量、批次效应)。
(5)总之,要明晰数据和科学问题,探讨数据中是否存在可能对研究造成负面影响的因素。
5、选择合适的数据表示和神经网络架构
神经网络架构是指网络中层的数量和类型及其连接方式,架构设计是针对特定问题的,需要大量实验和经验。但在进行实验时,有一些一般原则可以参考。
(1)对可用数据和科学问题的了解能够为数据表示和架构设计提供信息。例如,如果数据集是没有自然顺序的度量值(例如基因表达),多层感知器可能是有效的;如果数据集由图像组成,卷积神经网络 (CNN) 是不错的选择,其强调数据中的局部结构和邻接性;CNN 也是学习序列的不错选择;Transformer 是强大的序列模型 ,但需要大量数据和计算能力才能从头开始训练。
(2)深度学习模型通常受益于标记训练数据量的增加。增加数据有助于避免过拟合并提高模型性能。如果没有足够的数据来训练性能良好的模型,应考虑迁移学习(使用在另一个相似大数据集上训练生成的权重作为训练的起点 )。因此,搜索可用的类似数据集或许能带来帮助。预训练模型可以从公共存储库中获得,例如用于基因组学的 Kipoi。此外,即使预训练任务与目标任务不同,学习到的特征也可能会有所帮助。
(3)与预训练和迁移学习密切相关的自监督学习的概念越来越受欢迎。使用自监督学习,可以在对目标任务进行训练之前对模型进行相关任务的预训练。另一种相关方法是多任务学习,它同时为共享特征的多个单独任务训练网络。事实上,多任务学习可以单独使用,甚至可以与迁移学习结合使用。
研究者应将神经网络的架构建立在对问题的了解上,并充分利用类似的现有数据/方法或预训练的模型。
6、广泛而系统地调整超参数
在将深度神经网络应用于新数据时,应系统地评估众多超参数的影响。超参数通常包括优化算法、损失函数、学习率、激活函数、隐藏层和隐藏单元的数量、训练批次的大小和权重初始化方案。额外的超参数往往是由有助于训练更深层次架构的常用技术引入的,包括正则化惩罚,dropout、批量归一化等。
广泛的潜在参数使评估神经网络方法对新数据的适用性变得困难。调整超参数的策略包括网格搜索、随机搜索、贝叶斯优化等。Keras Tuner (https://keras-team.github.io/keras-tuner/)和 Ray Tune ( https://docs.ray.io/en/latest/tune/index.html ) 支持超参数优化的最佳实践。
为了从模型中获得最佳性能,研究人员应确保系统地优化超参数,并报告所选的超参数和超参数优化策略。
7、缓解过拟合
过拟合(模型在训练集表现很好但在测试集表现很差)是应用深度学习模型时可能面临的最大挑战。过拟合模型没有很好地学习到跨越相似数据集的一般规律,而是通过网络强大的记忆能力学习了训练数据集特有的嘈杂模式。
对抗过拟合的方法
-
检测存在。将数据集拆分为 3 个独立的部分:训练集、验证集、测试集。在训练集上学习、在验证集上评估和迭代超参数来优化模型,在模型没见过的测试集上进行最终评估。用于测试的数据应被“锁定”,并在所有训练和调整步骤完成后仅用于评估最终模型一次。 从训练集到测试集的性能显著下降是过度拟合的明显迹象。
-
使用多种技术减少过拟合 (1)数据增强(2)正则化(3)随机打乱数据以识别记忆的基准水平 (4)注意,在数据预处理时,要防止数据泄漏。归一化和标准化等操作要对训练、测试、验证集分别进行,不可同时进行。(先分、再分别处理,不可先处理)
许多传统的分类指标(例如AUC)在极端类别不平衡的情况下失效。在数据不平衡时,应当选择合适的评估指标,如PRC。
在处理生物医学数据时,必须在定义训练和测试集时考虑潜在的偏差和非独立性来源。例如,胸部 X 光检测肺炎的深度学习模型可能在提供训练数据的医院内表现良好,但不能推广到其他医院 (设备等相关的批次效应)。在处理序列数据时,保留进化相关或与训练数据具有结构同源性的测试数据可能会引入假阳性,导致无法检测过拟合 。
识别混杂变量的最佳方法是了解您的数据并在真正独立的数据上测试模型。
8、让深度学习模型更加透明 - 可解释性
多数情况下,模型解释的目标是了解潜在的数据生成过程和生物学机制。某些情况下,模型解释的目标是了解为什么模型会对特定样本做出某种预测。不同机器学习模型的可解释性差距很大。逻辑回归和决策树模型通常被认为是可解释的 。深度神经网络通常被认为是最难解释的,因为它们可以有许多参数和非线性关系。
了解哪些输入变量会强烈影响模型的预测,以及可能以何种方式影响机器学习模型的应用或外推,在生物医学中尤为重要。许多研究者将深度学习工具在医疗保健领域的低使用率归因于可解释性挑战。
解释机器学习和深度学习模型的策略正在迅速发展,有关该主题的文献正在迅速增长 ,建议查阅https://christophm.github.io/interpretable-ml-book/ 。
9、不可过度解读模型
在训练了一个准确的深度学习模型后,研究者很自然地会想用它来挖掘科学信息。但请注意,要正确解释模型的预测。按照经典的统计说法“相关并不意味着因果关系”,深度学习模型的预测很少提供因果关系。准确预测并不意味着已经学会了因果机制。即使神经网络具有很高的预测准确性,根据其预测来指导治疗决策也可能是灾难性的。
10、考虑工作的道德影响
模型可能因为训练数据的固有特性而导致偏差(例如和年龄、种族和性别相关的因素),这可能导致伦理问题。
建议:
(1)保留道德登记册,提出、记录和解决道德问题。(其实就类似软件的实时更新,不断解决问题)。
(2)不要共享在敏感数据上训练的模型。
(3)各种隐私保护技术的应用
更多推荐
所有评论(0)