近日,堪称史上最难的第五届“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会议。