深兰科技高级java_史上最难的AutoDL2019挑战赛,深兰科技获得全球第二

近日,堪称史上最难的第五届“AutoDL挑战赛”历经3个多月、2个阶段的挑战,终于落定。作为NeurIPS 2019系列比赛的收官之战,此次“AutoDL挑战赛”结合了AutoCV、AutoCV2、AutoNLP、AutoSpeech等多项赛事,数据包括五种不同模态的数据:图像、视频、语音、文本、表格,每种模态包含多个数据集,参与者需要提交通用的算法。

最终,深兰科技DeepBlueAI 团队提交的方案在 印。而此前,DeepBlueAI 团队已在NeurIPS 2019中的

获奖方案技术分享

by DeepBlueAI

解决方案

在我们团队的工作中,提出了一种自适应的集成学习方法,该方法在不同模态的不同数据集上均具有出色的性能。我们的工作主要包括以下三方面:出分时间压缩、集成学习和自适应策略,其中自适应策略包括自动模型选择和自适应参数设置两部分。

在实验中,我们观察到出分速度和AUC得分对最终的ALC分数都具有较大影响。因此,我们设计了一些策略来优化这两个因素。具体而言,对于前者,我们通过更有效的数据处理和初始模型选择来加快出分时间;对于后者,我们通过集成学习和自适应策略来提高AUC分数。在多个数据集上的实验表明,最优的网络和参数在不同数据集之间差异很大。因此,利用一些自适应策略来实现自动学习过程,我们的方法能够在学习过程中通过调整其网络、参数等来适应不同的数据集。

主要工作

考虑到数据的差异和资源的限制,图像和视频数据采用深度学习方法,表格数据采用机器学习方法,语音和文本数据则采用机器学习和深度学习结合的方法。

在自适应集成学习方法中,主要贡献如下。

1)出分时间压缩。对于数据处理,时间越短整体得分越高。我们对数据处理过程进行优化,初始模型使用轻量模型或计算量尽可能少的参数设置,比如采样部分数据或机器学习模型。

2)集成学习。集成学习是比赛中常用的策略。组合不同模型的结果能够带来显著的改进,多个模型中个别较差的模型对整体结果影响较小。集成学习使曲线更稳定而且提高了AUC分数,因此最终的ALC分数得到了提高。

3)自适应策略。为了使我们的方法在不同数据集上均表现良好,我们采用了一些自适应策略,为当前数据集选择最优的模型或参数,从而提高结果。由于不同模态数据的不同特性,具体方法也有所不同。例如,对于语音和文本数据,使用自动模型选择方法,对于图像、视频和表格数据,使用自适应参数设置。

详细介绍如下:

1)图像数据

对于图像数据,整体的框架包括数据处理、模型训练与测试、结果融合几部分,在模型训练与测试部分根据验证集上结果进行早停然后测试。

为了平衡精度和效率,采用自适应参数设置。这些训练参数包括输入图像大小、每个epoch的步长,以及开始验证和融合结果的epoch数。当图像数量少或宽度和高度之差较大时,输入图像的最大尺寸将增加一倍。这是在不显著降低出分速度的情况下增加图像大小,以保留更多信息以提高准确性。

为了使预测更稳定并获得更高的AUC,采用了集成学习对结果进行融合,融合方法是对多个预测结果进行平均。由于早期得分会快速增长,对最新的两个结果融合;后期为了让曲线更稳定,对最新的 5个预测结果进行融合。

为了进一步提高分类精度并节省时间,采用小规模Fast AutoAugment策略。Fast AutoAugment的主要思想,是为当前图像数据集搜索最合适的数据增强策略。我们的目标是在尽量减少时间开销的情况下使用数据增强。因此,我们减少了搜索次数,将其设置为20,这样可以有更多时间来使用增强后的数据训练网络。

此外,我们还尝试在训练阶段使用resnet18和mobilenetv2,然后融合两个模型的结果。结果与使用数据增强的方法接近。

2)视频数据

在实验中,我们观察到使用不同的数据集进行测试时,结果差异很大,并且类别数和采样帧数对结果有很大的影响。

首先,我们观察到得分速度和早期曲线的稳定性是矛盾的。可以通过使用少量图像来提高训练速度,但是在类别较多的情况下,早期曲线不稳定。为了平衡这种关系,在早期,为类别数较多的数据集选择了相同数量的图像,但是图像尺寸增加到128。然后在实验中观察到,采样帧数对结果有很大影响,包括:计算速度和早期曲线稳定性。使用更多帧数可以确保计算的准确性,但是出分将变得非常缓慢。相反,使用少量帧数可以加快出分速度,但是得分曲线非常不稳定。通过实验发现,选择视频总帧数的1/6将在计算速度和计算精度之间取得良好的平衡。

在集成学习方面,为了确保AUC可以稳定上升并增加最高AUC得分,可以将结果融合。当验证集的分数增加时,将保存训练的模型。选择验证准确率前五的结果进行融合,然后使用融合结果获得最终结果。我们还在方案中实现了多个模型。当一个模型的分数不再增加时,将选择另一个模型进行训练。最后,将对两个不同模型的结果进行融合和测试。

3)语音数据

系统由两个模块组成:数据处理模块和模型处理模块。数据处理模块主要包括数据预处理、训练和验证数据生成。模型处理模块主要包括模型选择、模型训练,模型预测和结果融合。

在数据预处理中,提取MFCC特征和Mel spectrogram特征两种特征。Mel spectrogram特征用于逻辑回归模型,MFCC特征用于深度学习模型。为了加快特征提取速度,我们将截断超长序列并确保它们可以覆盖90%的数据。

在训练数据生成中,构建迭代器以迭代地加载数据,以加快出分速度。数据以逐渐增加的比例加载,以便更快地获得分数。如果多个类别的数据不平衡,那么将对数据进行处理,以确保深度学习系统可以更好地工作。在训练过程中,依次选择逻辑回归、CNN模型、CNN + GRU模型三个模型。最后将对所有模型最佳的5个结果和每个模型的最佳结果进行融合。

4)文本数据

AutoNLP框架包括文本数据的自动清洗与序列化、自动特征工程、自动超参调优、自动模型融合以及自动模型选择等模块,同时针对性地分别处理中文和英文,在运行时间和显存上也采取了一些控制策略,防止系统超时和显存溢出。

重要工作包括以下几点:

A、数据清洗与序列化清洗无意义字符;

对于英文处理保留2组数据:一组原始数据、一组转小写数据;

对于中文处理保留2组数据:一组分字、一组分词;

过滤文档频率(DF)小于3的词或字;

统计文档长度,截取长度为覆盖95%样本的长度;

对于超长文本进行强制截断,长度为6000;

采用Cython进行加速。

B、自动特征工程对于数值进行自动分箱处理;

对邮箱进行针对性处理,防止被清洗。

C、自动超参调优根据第几个epoch和数据大小自动调整batch size;

根据不同模型不同epoch自动调整学习率。

D、自动模型融合与自动模型选择不同数据组合、不同模型结构、不同初始化参数(预训练的embedding)生成多种有差异性的模型;

采用创新的限制性线性模型进行融合,直接优化最终目标。

E、时间与显存控制根据任务给出的时间预算,如果运行到最后12.5%的时间节点处就结束训练;

根据模型大小,强制限制batch size大小防止显存溢出。

F、其他优化由于最终的评测指标是ALC, 因此会受到模型出分时间的影响,为了让第一个模型快速出分,团队优化了数据预处理,并结合样本采用和样本截断的方式,快速训练一个初始模型,并使用svm;

使用20%的训练数据作为验证集;

每训练完一个模型就更新融合结果。

5)表格数据

对于表格数据,我们主要从以下三个方面进行优化:出分时间压缩,集成学习和自适应参数设置。

在出分速度方面,我们的方法几乎可以做到立即出分。首先,我们优化了将张量流数据转换为二维表数据的速度。在我们的工作中,数据被分成许多批次进行读取,成倍地提高了速度。其次,通过使用树模型lightgbm,优化了出分时间和初始得分。在实验中,树模型的性能优于深度学习模型,因此采用树模型,此外我们也做了自动特征工程方面的工作。最后,整个训练过程分为多个阶段进行,每个阶段训练增加一些树,然后对测试集进行预测返回结果,这样能够一定程度地提升ALC指标。

在集成学习方面,采用了随机数据组合随机参数的方式训练多个lightgbm模型,并以bagging方式进行集成,通过使用bagging,增强了模型的泛化性能。

在自适应参数设置方面,我们根据数据量大小与特征数量去自动调整一些重要参数,如果样本数量比较多我们就把行采样调小些,如果样本原始特征比较多,就把列采样调小些。设置学习率为衰减数组而不是固定值,这样可以加快前期的训练速度。我们会根据训练速度与预测速度去控制多久算一次分,如果训练很慢,预测很快,就让算分的频率增大;反之训练快预测慢就让频率减小,这个策略能在ALC指标上得到一定提升。

——

近年来,深度学习技术飞速发展,并已在语音识别、图像识别、文本分类等领域取得了重要进展,这也促使了深度学习技术需求量的大幅增加。然而,该技术的实现仍然需要大量的专家经验和人工成本,因此可自动构建深度学习系统的AutoDL技术备受关注。此次AutoDL挑战赛”难度设置进一步加大,比赛不只局限在单一技术领域,而是希望通过一套系统应用在多个领域,以推动AutoDL技术的落地应用及快速发展。DeepBuleAI团队的获奖,也使得深兰的技术实力又一次在国际上得到印证。

神经信息处理系统大会(NeurIPS)

前称NIPS,是一个机器学习和计算神经科学相关的学术会议,每年12月举行。1986年由加利福尼亚理工学院和贝尔实验室的学者提出,1987年首次举办。2000年前举办地均在美国丹佛,此后曾在美国、西班牙、加拿大多地举办。2019年12月8日至14日在加拿大温哥华举办了第33届NeurIPS会议。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值