【自有技术大讲堂】如何快速提升工业AI模型的表现—改善代码 or 改善数据?

网站首页    行业信息    【自有技术大讲堂】如何快速提升工业AI模型的表现—改善代码 or 改善数据?

一、导语

本文结合我司(高视科技)在工业现场应用AI的经验和网络公开资料,介绍了关于如何快速提升工业AI模型表现效果的一些实践和思考。

二、最佳实践

众所周知,AI系统主要由代码和数据组成

 

 

对于屏幕缺陷检测,缺陷举例如下图:

 

 

基于我们原始采集和标定的数据集(5% - 10%的样本可能存在标记问题及相当数量的噪音干扰), 使用已有的AI检测算法,我们可以得到一个基线模型,检测精度为77.3,显然这个检测精度是无法令人满意和达到预期效果的。

 

那我们应该如何来快速提升检测精度呢?

 

下面是实验结果:

 

 

显而易见,基于数据样本的改善,大大提升了模型的表现,而基于代码(包括算法和网络模型)的改善,几乎没有对模型表现有任何提升。

 

所以对于本文标题提问的问题,结论已经出来了:改善数据优先。

 

如果把工业AI模型比作我们要制作的一道菜(一般也称为炼丹),那么一个比较有意思的现象是目前学界和产业界的相关研究似乎更关注在如何把这道菜做好上面,而不是关注如何准备好这道菜的原材料。

 

 

所以对于工业AI落地来说,我们更应该关注数据的准备。

 

我们需要“更好”的数据。

 

  如何才能算“好”的数据?

  1.准确的,一致性高的标注

 

不好的标注示例

 

 

准确的,一致的标注示例

 

 

  2. 清洁的数据

  不盲目追求总数的多少,而是更关注符合真实分布的清洁数据的数量。

 

  最右边的数据是最最“好”的

 

如何获取“好”的数据?

1. 数据清洗:

例如移除错误样本,重新整理修正标注信息等等。 在10000个样本数量以内,进行手动的数据清洗,工作量还是基本可以接受的。

2. 收集更多样本:

继续采集更多样本加入数据集并标记,但并不进行数据清洗等工作。

 

从实验数据来看,以上两种方法都可以提升模型的性能。

 

 

总结

最后,我们总结下工业AI的开发流程如下:

 

 

本文的最佳实践,证明和提示了第二步Collect Data”的重要性,在训练AI模型之前,要特别注意创建和使用“好”的数据集,而不是仅仅一味追求数据集的数量。同时,在部署落地之后,要继续保持对数据分布的关注,重点注意数据漂移对模型效果的影响,根据落地模型的生产效果,及时反馈更新到数据集,继续进行模型的训练和部署更新。

2021年9月3日 18:36