18910140161

学术研究不能开始吗?学习27台机器避坑的指南 少走弯路 以便你的论文能够出版

顺晟科技

2023-02-23 10:57:26

145

内容摘要:刚接触机器学习不久,如果以后想在这个领域进行学术研究,为你准备的这个& amp# 039;躲避球指南& amp# 039;不要错过。

关键词:机器学习研究规范学术研究

机器学习学术小白,如何优雅地避开坑,顺利发表自己的论文?

来自苏格兰赫瑞瓦特大学数学和计算机科学学院的Michael A. Lones副教授于2021年& ampquothow to avoid Machine learning pitfalls:a guide for academic researchers

阅读完整论文(V2):

bVc6bDS

Michael A. Lones的主要研究方向包括优化、机器学习、数据科学、复杂系统和非标准计算、生物学、医学、机器人和安全问题的应用。

在这篇论文中,作者从学术研究的角度,结合自己的科研经验和教学经验,收录了经常出现在使用机器学习技术的整个链接中、需要特别注意的5个主要问题,并提出了解决方案。

应用大象用户:

不熟悉ML领域,只具备基本ML知识的同学或学者。

温馨提示:本文集中讨论学术界普遍关注的问题。例如,如何严格评价和比较模型,这样论文就能顺利发表。

接下来,我们将沿着ML模型培训的整个过程逐步说明。

第一步:在制作模型之前,很多学生一上来就赶紧训练和评价模型,更重要的是& ampquot作业& ampquot经常忽略。这些& ampquot作业& ampquot是:

项目的目标是实现这一目标,所需的数据数据不受限制,如果有办法解决这一领域研究开发的进展,如果这些前期工作没有完成,只是急于运行模型,那么最终模型无法证明预期结论,研究工作就无法发表。

1.1理解和分析数据

数据来源可靠,收集方法科学,数据质量高,对论文发表会有很大帮助。可能是因为广泛使用的数据集不一定质量好,而且容易获得。在选择数据之前,请执行可浏览的数据分析,以排除数据的限制。

1.2不要查看所有数据,开始之前请区分测试数据

测试集中的信息泄露到训练过程中是不能概括机器学习模式的一般原因。为此,在数据导航分析阶段,不要过分细致地审查测试数据,不要做出故意或无意无法测试的假设,限制模型的通用性。

温馨提示:做假设是可能的,但这些假设必须包含在模型的教育(training)中,而不是测试(testing)中。

1.3准备足够的数据

数据不足会降低模型的概括性和通用性,具体取决于数据集的信噪比(Signal-to-Noise Ratio,SNR)。机器学习研究领域常见的问题之一是数据量不足。通过交叉验证、数据增强等技术,提高现有数据的可用性。

1.4积极向该领域专家请教

领域专家具备丰富的科研经验,有助于指导我们解决的问题、最合适的特征集、机器学习模式和研究成果的发表,因此,我们可以事半功倍地取得更多成果。

1.5进行文献调查

学术进步是一个反复的过程,每项研究都提供了指导下一项研究的信息。无视以前的研究,可能会错过有价值的信息。写论文的时候,为什么研究同样的课题,为什么不开始对现有成果进行研究,不如在开始工作之前进行文献回顾。

1.6请事先考虑模型部署。

如果学术研究的最终目标是创建可以放置在实际环境中的机器学习模型,那么就要尽快考虑部署问题,包括环境限制对模型复杂性的影响、是否有时间限制、如何与软件系统相结合等。

第二步:可靠地生成模型,以有组织的方式生成模型,这一点很重要。这使您能够正确使用数据,并充分考虑模型选择。

2.1测试数据不能参与模型培训课程

测试数据参与模型的构建、培训或选择,将极大地影响数据的可靠性和通用性。这也是发布的机器学习模型不经常用于实际数据的一般原因。

错误示例(避免注意):

在数据准备过程中,最好在使用整个数据集变量的平均值和范围信息来划分可变缩放(正确的方法只能在培训数据中进行)数据之前选择功能在使用相同的测试数据来划分多个模型的通用性评估测试数据之前应用数据增强。

温馨提示:时间系列数据处理要特别注意,因为数据的随机分割容易发生泄漏和过度拟合。

2.2尝试几种不同的模式

世界上没有普遍的机器学习模式。我们的研究是寻找适用于特定问题的机器学习模式。python、R、Julia等现代机器学习库只要稍微修改一下代码,就可以尝试各种模型,找到最有效的模型。

温馨提示:

不要使用不合适的模型,使用验证集而不是测试集来评估模型比较模型时,优化模型的超级参数,进行多个评估,并在发布结果时修改多个比较。2.3不要使用不适当的型号

现代机器学习库降低了机器学习的实施阈值,将适合categorical feature的模型应用于包含numerical feature的数据集,或者在使用回归模型时使用分类模型,使选择不当模型变得更加容易选择模型时,请尽可能选择适合使用案例的模型。

2.4深度学习有时不是最佳解决方案。

深度神经网络(DNN)在特定任务中表现出色,但这并不意味着DNN适用于所有问题。特别是在数据有限、underlying pattern非常简单或需要能够解释模型的情况下,DNN可能不如某些old fashioned机器学习模型(如随机森林、随机森林等)工作得好。

2.5优化模型的超参数

超参数对模型的性能有很大影响,通常必须与特定数据集相匹配。漫无目的地测试可能不是找到适当超参数的最佳方法。建议使用超参数优化策略,如Random search和grid search。

温馨提示:这些策略不适用于超参数数量大或培训成本高的模型,可以使用AutoML、数据挖掘pipeline等技术优化模型选择和超参数。

2.6优化超参数和选择feature时需要额外的注意

超参数优化和特征选择是模型训练的一部分,在模型训练开始之前,不要对整个数据集进行特征选择。这样会将信息从测试集中泄露到培训过程中。建议使用与培训模型相同的数据来优化模型的超级参数或特征。典型的技术是嵌套相互验证(也称为双重相互验证)。

第三步:稳定地评价模型的不合理模型评价是非常普遍的,这可能会阻碍学术研究的进展。因此,在实验中使用数据、测量和报告模型实际性能的方法必须慎重考虑。

3.1使用适当的测试集

使用测试集来衡量机器学习模型的通用性,并确保测试集中的数据是适当的。测试集不能与培训集重复,必须包含更广泛的条件,如对象的照片数据集。如果训练集和测试集都是晴天在室外收集的话,测试集就不独立了。因为没有捕获到更广泛的天气条件。

3.2在分割资料之前,请勿执行资料增强功能

数据增强有助于平衡数据集,提高机器学习模型的通用性和健壮性,数据增强应仅适用于培训集,测试集应避免过度拟合。

3.3使用验证集

使用单独的验证集测量模型性能。它包含一组样本,用于指导培训,而不是直接用于培训。验证集的另一个好处是可以执行early stopping。

3.4对模型进行多次评估

模型的单一评价是不可靠的,可能低估或高估模型的实际性能。这需要对模型进行多次评估,大多数情况下,需要使用各种培训数据的子集对模型进行多次培训。交叉验证(Cross-Validation)是非常受欢迎和多样化的方法,如Ten-fold Cross-Validation。

温馨提示:在报告多个评估的平均值和标准差的同时,最好保留单个分数记录,以便可以使用后续统计测试(statistical tests)来比较模型。

3.5保留部分数据以评估最终模型实例

稳定评估模型实例通用性的最佳方法是使用不同的测试集。因此,如果数据量充足,最好先保留一部分,对最后选取的模型实例进行“无偏差”(unbisded)评估。

3.6不要对不平衡数据集使用精度

仔细选择评价机器学习模型的指标。例如,分类模型中最常用的指标是“准确性”(accuracy),对于每个类别在数据集中具有相似数量的样本表示形式的平衡数据集,效果很好。对于不平衡的数据集,准确度可能是一个非常误导人的指标。

在这种情况下,建议使用对F1 score、KON KAPA系数()或class相关系数(MCC)等class大小平衡不敏感的指标。

第四步:公平比较模型是学术研究的基础,但以不公平的方式比较和发表,可能会偏袒其他研究人员。因此,必须在相同的条件下评估不同的模型,并正确使用统计测试(statistical tests)。

对于4.1型号,数字越高并不能提高性能

论文包括& ampquot之前研究的准确度达到94%,本文的模型准确度达到95%,所以更好& ampquot经常出现表达。由于多种原因,较高的数字与较好的模型不相同,如果模型在同一个数据集的多个分区中训练或评估,则性能差异可能会较小。使用完全不同的数据集可能会导致性能差异很大。如果不进行相同数量的超参数优化,也会影响模型性能差异。

因此,要科学地比较两个模型的性能,必须将模型优化到同一水平,进行多次评估,然后通过统计测试,确认性能差异是否显着。

4.2使用统计测试比较模型

建议使用“统计测试”(statistical tests)比较两种模型的性能差异。广义上比较机器学习模式的test分为两类。第一类用于比较相似的模型实例。例如,在比较两个训练有素的决策树时,可以选择McNemar测试。第二类比较决策树和神经网络哪个更合适,适合比较更一般的模型,例如使用曼惠特尼U检查。

4.3修改多个比较

通过统计检查比较两个或两个以上的模型有点复杂,多项风险测试类似于多次使用测试集,这可能会被解释为对重要性过于乐观(overly-optimistic)。

建议使用多重检查校正(如Bonferroni correction)来解决此问题。

4.4不要过分相信社区基准的结果

在某些领域,很多人使用基准数据集来评估新机器学习模型的性能。因为如果所有人都使用相同的数据来训练和测试模型,比较将更加直观。这种方法有几个主要缺点。

第一,如果对测试集的访问不受限制,就不能保证别人没有将其视为培训过程的一部分,从而导致对结果的过分乐观。此外,即使所有使用数据的人只使用一次测试集,但通常在社区中多次使用测试集,因此模型可能会过度拟合。为此,必须慎重解释基准数据集的结果,合理判断性能的提高。

第五步:报告结果学术研究要对知识做出贡献,为此需要报告研究工作的总体情况(成功、失败等)。机器学习一般与trade-offs有关,很少有一种型号在所有方面都比另一种型号好。因此,在报告结果时应反映这一点。

5.1报告必须透明

透明地共享所有研究工作有助于别人重复这个实验,也有助于人们比较模型。清楚地记录实验,写整洁的代码对自己和其他人都有好处。机器学习社区越来越重视实验的再现性,工作流记录不足,可能会影响后续发布。

5.2以多种方式报告性能

评估模型性能时,更严格的方法是使用多个数据集。这有助于克服与单个数据集相关的所有缺陷,并提供模型性能的全面说明。建议为每个数据集报告多个指标。因为不同的指标会显示不同的结果,并提高工作的透明度。

5.3仅汇总数据

不要得出错误的结论,这会使其他研究者误入歧途。一个常见的错误是一般结论:不支持发布教育和评价模型的数据。模型在一个数据集上运行良好并不意味着在另一个数据集上也运行良好。使用多组数据可以获得可靠的insights,但在实验中研究和推断总是有限的。不要夸大发现,要意识到局限性。

5.4慎重报告重大差异。

上面讨论的统计检查有助于检查模型之间的差异。但是,统计检查并不完美,可能低估或高估模型的重要性,出现假量或假音的问题。此外,越来越多的统计学家主张放弃使用可靠性阈值(confidence threshold),直接报告P值来衡量模型的重要性。

除了统计重要性外,还要考虑的另一个问题是两个模型之间的差异是否真的重要。因为只要样品充足,即使实际性能差异很小,也总能找到明显的差异。因此,在判断重要性时,可以测量“效果值”(effect size)。Cohen & amp# 039;s d statistic(更普遍)、Kolmogorov Smirnov(效果更好,推荐)等。

5.5着重介绍了模型的工作原理。

训练过的模型包含很多有效信息,但很多作者只报告模型的性能指标,不说明模型的原理。研究的目的不是获得比其他人略高的准确度,而是通过总结知识并分享给研究团体,提高工作成果发表的可能性,例如决策树等简单模型的模型可视化。对于深度神经网络等复杂模型,请考虑使用可解释人工智能(XAI)技术提取相关信息。

以上就是& amp# 039;躲避球指南& amp# 039;是的全部内容。期待所有第一次接触机器学习的同学都能收到这个宝典,经常阅读,顺利找到研究方向,选择课题,早日发表论文。

期待大家的好消息~

原文链接

*参考链接:[how to avoid machine learning pitfalls:a guide for academic researchers]

https://arxiv.org/pdf/2108.02.*

——完成——

相关文章
随机推荐
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航