原创智能优化,原创度检查,一键采集,文章组合(基于数据的AI应用迭代方式(一):简单重训练)
优采云 发布时间: 2022-01-28 22:12原创智能优化,原创度检查,一键采集,文章组合(基于数据的AI应用迭代方式(一):简单重训练)
1、背景
模型迭代优化主要包括以下几个方面:
1)从数据上提升模型效果
根据模型部署后的实际预测结果,进行前向数据推荐、数据增强、去除、搜索扩展,最后补充原创训练数据集,形成新的数据集。
2)从算法、模型调优、模型融合提升模型综合能力
用户获得数据集后,可根据实际场景从算法替换、算法参数调优、神经网络结构优化等多个角度全面提升模型性能。例如,用户可以对疑难病例的数据进行特殊的深度处理,如损失函数的设计,增加疑难病例的权重系数,调优模型超参数和神经网络结构等。算法模型可以根据实际场景从修正模型、扩展模型、再开发模型等角度进行优化。也可以根据模型效果选择多个模型进行融合。
本文重点分享基于数据的应用迭代方法。
2、基于数据的AI应用迭代方法
维护模型最简单的方法是添加新数据,或者在添加的基础上做进一步的数据增强,进一步提高模型迭代的准确性。基于数据的模型迭代方法如图1所示。为了避免模型拟合新数据,通常需要将新旧数据合并在一起进行增量训练。
图 1. 基于数据的模型迭代方法流程图
1)简单的再训练
在实际业务场景中,模型维护是一个长期的过程,根据上述模型维护方式和业务数据量进行不断的再训练。例如,每周或每月进行一次再培训,或者在积累到一定数量的数据时进行定期再培训。根据 采集 收到的数据直接重新训练。
在再训练过程中,可以根据新的数据调整新一轮的模型训练参数。同时,对于一些时间敏感的场景,可以对数据进行加权。比如在时间序列预测场景中,最近的数据对模型的影响比较大,在训练的时候可以增加这些数据的权重,更有利于模型的迭代。
2)基于难例的再训练
为了提高模型维护的效率,可以使用基于困难数据的再训练。
hard case挖掘算法与模型的任务密切相关。这里我们重点介绍计算视觉中基本任务(如图像分类、目标检测等)的hard-case算法。难例挖掘并不是一个新名词。目前,Online Hard Example Mining以基于区域推荐的两阶段目标检测为代表,主要基于Faster RCNN。在线硬案例挖掘的研究思路主要基于自举算法。bootstrapping算法的思想是利用有限的样本,通过反复采样,重新建立一个足以代表父样本分布的新样本。在线硬案例挖掘将bootstrapping的思想移植到深度学习的模型训练过程中。采用这种思想的原因是检测到的数据集总是收录大量的简单样本和少量的困难样本。自动选择这些困难样本进行训练,可以加快收敛速度,提高模型精度。在卷积神经网络进行目标检测的训练过程中,一般以损失值较大的样本或感兴趣区域(ROI)为难点,然后进行迭代训练。
在线硬例挖掘有两个缺点:1)只能在模型训练时生成硬例,不能实现离线硬例挖掘。由于该算法一般集成在目标检测Faster RCNN算法中,如果用户是自定义代码,用户必须自适应修改代码,才能使用在线疑难案例挖掘。这种算法思想还不够成熟,无法形成系统的解决方案。2)这个方案的核心思想是通过bootstrapping生成一组难的例子,生成方式只根据训练时训练样本的loss值来判断。判断维度单一,无法保证模型的准确性。促进作用。
与线上硬案例挖掘相比,线下硬案例挖掘方式多种多样。常见的方法包括:基于时间序列一致性的硬案例挖掘算法、基于置信度的硬案例挖掘算法、基于数据分布的硬案例挖掘算法、基于异常检测的硬案例挖掘算法、基于图像相似度的硬案例挖掘算法、基于可解释性的硬案例挖掘算法等。
以上两种基于数据的模型迭代优化方案的区别在于对再训练数据的选择。前者使用全量数据和原创数据集进行二次训练,后者将过滤掉核心集,融合原创数据集进行二次训练。. 后者的优势很明显,可以显着降低标注人力和二次训练的成本,因为如果保证过滤后的核心集相对于全量数据的准确率影响不大,后一种方案可以显着降低提高模型迭代优化的速度。的。
3、Modelarts的疑难案例过滤功能
事实上,Modelarts 平台的智能标注、在线推理和批量推理都集成了过滤疑难案例的功能。例如,本博客中描述的硬案例筛选使用: .
这次主要介绍的是数据处理模块中的疑难病例筛选功能。与其他集成疑难案例的模块相比,数据处理模块的疑难案例功能提供了参数自调整功能。为了使选择的核心集具有最佳效果,可以针对不同的数据调整不同算法的权重和其他功能参数。
4、用例
这里,我们通过一个常见的案例来看看疑难案例筛选算子在数据处理中的使用。在车辆自动驾驶业务场景中,针对车辆前进方向的目标检测是一项非常常见的技术。此处案例使用的数据是华为云2019无人车大赛的部分数据。这里显示的是模型迭代的完成过程,如第 2 节中的图 1 所示。
1)数据准备
首先,我们将收录停车位的图片上传到OBS,并将它们导入到Modelarts的新数据集(名为autohem_demo)中。在数据集中标记停车位后,我们发布数据集版本。如下所示:
2)模型部署
使用Modelarts的一键模型部署和在线功能,在数据集上使用预设算法Faster_RCNN_ResNet_v1_50,训练出能够识别车位的模型,然后通过Modelarts的在线服务部署模型,提供可预测的Rest API给外面的世界 。如下所示:
3)数据采集
硬案例筛选算法需要分析的数据是模型部署后持续用于预测的推理数据。Modelarts平台提供全数据采集功能,可以在部署模型后通过调用预测API帮助保存预测API的数据和推理结果。该功能需要手动开启,如下图:
开启采集功能后,每一次API调用,都会将对应的数据保存到对应的obs目录下,如下图:
以上两个文件夹分别保存了采集中的图片和推理结果。
开启采集的功能后,我随机选择了一些图片上传并进行了预测。不难发现,对于与步骤1中的数据类似的场景,模型的识别能力很强,但还是有一些图像被误检测的。. 例如,模型错误地将边缘预测为停车位,但这显然不是预期的。如下所示:
在实际模型维护过程中,扩展场景是必不可少的,如下图所示:
在这个预测中,模型没有检测到目标,但是图片中有一条斑马线。我们可以考虑将这些数据加入到接下来的模型训练中,从而扩展模型的能力,实现停车识别。位和斑马线也是。
4)在数据处理中使用hard case过滤功能
为数据管理中的硬案例过滤创建数据选择作业,如下图:
看到算法要求,需要按照指定文件夹的格式组织输入数据,即选中的obs目录应该收录images和inference_results文件。如下:
修改步骤3)data采集目录中的文件夹名称,选择collect目录的输入,如下图:
以下参数需要填写。一般情况下,只需要根据需要填写这两个参数即可:
train_data_path是第一步发布数据集版本后的manifest文件,这个文件可以理解为Modelarts平台上的一个固定数据集。找到manifest文件后,添加'obs:/'前缀并填写运行参数,如:obs://hjw/dataset/hem_demo/out-7-25/autohem_demo-CSVQRpklQktb8bUTJdg/annotation/V001/V00< @1.清单:
model_serving_url为步骤2中一键模型部署中模型元数据存储路径,找到路径后,添加'obs:/'前缀并填写运行参数,如:obs://hjw/dataset/hem_demo /out- 7-25/autohem_demo-CSVQRpklQktb8bUTJdg/annotation/auto-deploy/models/208320/
路径获取方法如下: 首先打开一键模型部署和启动的历史任务,如下图所示:
点击训练,如下图:
训练作业的输出位置为模型元数据存储路径,如下图所示:
如果路径太长,可能无法直接复制,需要右键->勾选复制。
接下来,我们自己调整其他参数。
综合算法配置:通过配置调整困难情况的算法。默认值为 clustering_mining:0.2020+aug_consistent_mining:0.4265+feature_distribution_mining:0.0451+sequential_mining:0.425+image_similarity_mining:0.0949+predict_score_mining :0.3900+anomaly_detection_mining:0.2020,其中收录了各个筛选算法的权重值,例如这里使用了一个视频帧提取的数据集。只需尝试增加sequential_mining 的权重值。此参数选择数据处理作业中使用的部分和所有过滤算法。因此,对于不同的数据集,可以先尝试一两种算法多次,看看筛选效果是否符合要求,
5)增量再培训
筛选疑难病例的目的如上所述。基于过滤后的数据进行再训练,可以有效减少标注工作和训练时间。
数据处理疑难病例筛选任务完成后,进入数据集版本管理,可以看到筛选结果已经发布到V002版本,点击切换到V002版本,可以查看筛选结果,如如下:
进入标注界面,修正筛选结果数据中标注信息,发布新数据集版本V004。
进入一键模型上线历史页面,点击Training,在之前的训练作业的基础上新建一个版本的训练作业,如下:
在训练作业的运行参数中,添加 checkpoint_url 参数。参数值为第4步中model_serving_url的值,也就是之前模型的元数据路径,如下图所示:
训练作业的输入数据选择刚刚发布的数据集版本V004,如下:
6)模型二次部署
增量训练完成后,点击训练作业详情中的创建模型,发布新版本的模型,如下图所示:
模型发布后,将其部署为在线服务,如下图所示:
进入新机型在线服务,上传图片测试新机型,如下图:
可以看出,经过增量训练后,新模型相比之前旧模型的误检预测,能够准确检测出斑马线。
ModelArts数据处理相关博客:
<p>