人工智能本质上是一门研究如何用机器代替人类的学科,工程师们尝试用各种算法模型来赋予机器像人类一样的思考与联想能力。
在当下所属的弱人工智能时代,实现人工智能的方式主要以有监督的深度学习方法为主,是基于已知变量和因变量推导函数关系的算法模型。
而作为深度学习的重要基础,神经网络技术无疑是行业内最热门的研究方向之一。探寻神经网络技术原理、优化神经网络算法模型、规避算法调优过程中遇到的各种问题,一直是学界关注的焦点与热议的话题。
一.神经网络概述
广义的神经网络包含生物神经网络与人工神经网络。在人工智能领域,神经网络技术采用了一种仿生学的思想,即通过模拟生物神经网络的结构和功能来实现建模,这就需要了解生物神经元细胞的工作原理。
如下图所示,生物神经网络的工作原理如下:
1)外部信息通过神经末梢,转化为电信号,转导到神经细胞;
2)神经元组成神经中枢;
3)神经中枢分析各种信号,做出判断;
4)人体根据神经中枢的指令,对外部信息做出反馈。
参考生物神经网络的运作机制,科学家们构建了类似的人工神经网络,较为经典就是MP神经元模型。这是1943年由科学家McCulloch和Pitts提出,他们将神经元的整个工作过程抽象为下述的模型:
其中:
Inputs:模拟生物神经网络中来自其他神经元的输入;
Weights:模拟生物神经网络中每个神经元对外接收的突触强度不同,所以外界接收的输入乘以一定权重;
Sum:模拟生物神经网络中神经元对外接收的信号进行累加汇总;
Bias:模拟生物神经网络中神经元的一般敏感性。每个神经元的敏感性不同,所以需要一定的偏差来调整汇总值;
Activation Function:模拟生物神经网络中信号累积到一定程度产生的动作电位,当累积到一定程度就会“激活”动作电位;
Output:模拟生物神经网络中神经元对外释放的新信号。
这是一种较为简单的神经网络模型,应用场景的局限性较强。
随着技术的发展,两层神经网络、多层神经网络开始出现,非线性分界拟合能力不断增强,并具备了较强的可应用性,开始广泛应用于自动驾驶、语音识别等具体场景。
上图中,左侧为简单神经网络,右侧为多层神经网络,两者的主要区别在于中间隐藏层的层数。隐藏层可以设计多层,并形成深度神经网络(DNN, Deep Neural Network)。
通过图片示例我们可以发现,每增加一层隐藏层,模型的参数数量就会急剧增加,这对模型训练所需的数据资源提出了更高的要求,无论是数据总量还是数据质量,要求均尤为苛刻。
二.数据错误类型
从上文中,我们知晓了数据资源对神经网络模型的重要性。如何为神经网络模型的训练提供优质的标注数据集,对神经网络模型的创建与调优至关重要。
然而,在实际的标注场景下,即使借助AI自动化的辅助,仍然避免不了人为原因所产生的各种数据质量问题,常见的标注错误类型包括:
类目错误:对象被错误地分类,例如车辆被标记为行人;
属性错误:对象属性描述错误,例如停放的汽车被标注为行驶中;
遗漏错误:应当标注的对象却没有被标注;
冗余错误:不应当标注的对象却被标注;
贴合错误:未全部包含或者不贴合;
未知错误:原本贴合的对象,因误触导致位置偏移。
三.数据质量对算法模型的影响
当神经网络模型训练与调优的过程中,输入这些质量较差的数据集时,会产生什么样的结果呢?
▌1.类目错误
在一些论文中,存在类目错误的数据通常被定义为类噪声(Class noise)或标签噪声( Label noise)。依据错误产生的原因,类目错误可以分为随机错误与主观错误两种:
1)随机错误
此类错误产生的原因为随机,比如待标注对象原本为“小轿车”,但标注员却因为走神将其标注为“货车”、“SUV”或其他类别。
2)主观错误
标注员主观上将类别判定错误,比如待标注对象原本为“小轿车”,但标注员却认为其为“货车”。
学者Zhu和Wu在论文《Class noise vs. attribute noise: A quantitative study》中对这两种错误进行了实验研究,相关实验表明:
1)类目错误对于模型质量有相当的负面影响;
2)主观错误对于模型的负面影响要比随机错误更高。(参考资料2)
而学者Flatow和Penner则进一步研究了两类错误对卷积神经网络(CNN)准确性的影响。结果表明类噪声与测试准确度之间存在线性相关性,其中10%的类噪声将导致模型准确度降低4%。(参考资料3)
此外,类噪声对其他机器学习算法也有负面影响,例如对决策树、支持向量机和K近邻 (KNN) 等(参考资料4)。
▌2.属性错误
学者Zhu和Wu曾全面研究过属性错误对模型输出的影响。他们进行了一项包含超过十万个样本的研究,并引入了暗示错误或主观设置属性的噪声来测试对分类的影响。
实验结果表明:
1)属性错误较类目错误的负面影响低,但仍然会产生严重的分类问题;
2)属性与分类之间的相关性越高,该属性对分类的负面影响就越大;
3)打消除包含类噪声或噪声清理的实例可能会提高分类精度。
▌3.遗漏错误
依据不同的场景,遗漏错误可能产生不同的结果:
1)只关注标签本身
当训练模型只关注于标签本身时,当其中某个对象没有被标记时,用于训练的数据总量会减少,但数据仍然可用,并不会带来过大的负面影响。
2)关注更多事物
在3D点云连续帧场景下,需要用相同的Track ID在不同帧内跟踪同一个物体,比如汽车。当中间某一帧内的汽车漏标后,可能导致Track ID中断,导致轨迹追踪模型不可用。
学者Xu等人在论文《Missing labels in object detection》中探讨了遗漏标签对FSOD(全监督对象检测模型)的影响。实验是在RCNN(基于区域的CNN)、Faster-RCNN(基于更快区域的 CNN)、YOLO(You Only Look Once,一种基于深度神经网络的对象识别和定位算法)和SSD(单镜头检测器)和WSOD(弱监督对象检测模型)上进行的。
实验结果表明,FSOD模型的性能随着标签缺失率的增加而明显下降。值得一提的是,标签遗漏对WSOD模型几乎没有影响,但它的检测性能却普遍较差(参考资料5)。
▌4.冗余错误
与遗漏错误相反,冗余错误不是漏标而是多标,但两者对于算法模型均具备较高的负面影响。
▌5.精度错误
贴合错误与位置错误可统一称之为精度错误。相较于此前几类错误类型,精度错误对于最终模型的负面影响相对较小,比如使用类目错误(小轿车标记为货车)的数据集,最终训练得到的算法模型是完全错误不可用的(会将小轿车误认为货车)。
而使用精度错误的数据集,最终训练的算法模型一定程度上是可用的(可以正常识别出小轿车,但是精度欠佳)。
不过,从商业化应用的角度考量,使用这种精度错误的数据训练得到的模型同样也是无法使用的。比如在自动驾驶场景下,算法模型需要达到极高的精准度,才能尽最大程度保证自动驾驶汽车在行驶过程中的安全性。
所以,综上而言,在人工智能应用深入日常生活的今天,训练数据集的质量问题需要获得更多的关注目光,数据服务商也需要投入更多精力在提升数据集质量与数据精度上。
▌参考资料:
1.[King James] 通俗易懂讲解深度学习和神经网络-知乎
2.[Zhu and Wu, 2004] Zhu, X. and Wu, X. (2004). Class noise vs. attribute noise: A quantitative study. Artif. Intell. Rev., 22:177–210
3.[Flatow and Penner, 2017] Flatow, D. and Penner, D. (2017). On the robustness of convnets to training on noisy labels
4.[Nazari et al., 2018] Nazari, Z., Nazari, M., Danish, M. S. S., and Kang, D. (2018). Evaluation of class noise impact on performance of machine learning algorithms
5.[Xu et al., 2019] Xu, M., Bai, Y., Ghanem, B., et al. (2019). Missing labels in object detection