面向校园人脸识别的数据投毒攻击检测算法研究*
2022-05-19龚成清何文华
龚成清,何文华
(广东女子职业技术学院应用设计学院,广东 广州 511450)
引言
机器学习是人工智能的关键技术,机器学习通过模仿人类的学习行为,凭借计算机强大的运算能力来获取新知识,从而实现自身性能的改善.机器学习已经在人脸识别、自然语音处理、自动驾驶和医疗系统等领域被广泛应用.然而,针对机器学习的攻击也伴随而生,机器学习的安全和隐私问题随着其应用的推广日渐突出[1].针对机器学习分类器的攻击可以分为三类:数据投毒、对抗输入和模型窃取[2].数据投毒发生在机器学习模型的数据训练阶段,攻击者通过一定的策略修改原始训练数据集或者向原始训练数据集中注入污染数据来对数据进行攻击,这样就使得机器学习分类器的分类边界发生偏移或改变,从而使机器学习产生错误的输出结果,造成安全隐患.
研究者针对数据投毒攻击的检测进行了探索和研究,目前相关研究主要有数据清洗和提高算法鲁棒性两个思路.数据清洗方法主要是对训练数据集进行清洗,筛选出投毒数据.Nelson和Marco Barren提出了拒绝消极影响(Reject On Negative Impact, RONI)检测方法就是典型的数据清洗方法[3,7],该方法对垃圾邮件进行了检测实验,取得了比较好的效果,但该方法步骤繁琐且计算量大,不适合在大规模候选集合情况下对数据进行筛选;Biggio等人提出了Bagging和随机子空间两种基于多分类器集成的方法来提高算法的鲁棒性[4,7],但技术的可拓展性不强,检测的泛化性能也差强人意; 中南大学的亢飞等人综合应用数据清洗和提高算法鲁棒性两个指标,针对数据投毒攻击的问题,提出了一种基于数据复杂度的投毒数据检测方法[5],能够有效检测投毒数据,但该方法数据模型复杂,效率不高.
当前,很多学校都已经安装了人脸识别的门禁系统.人脸识别的门禁系统是通过机器学习来判断人脸的特征,从而能够进行身份识别.数据投毒攻击使得人脸识别系统有可能误判身份,使得不合法身份的人员进入校园,造成严重的安全隐患.针对数据投毒攻击给校园人脸识别带来的安全威胁,通过孤立森林算法(Isolation Forest)对训练的人脸图像进行分析,检测出离群点后对数据进行清洗,然后运用多谱聚类算法对人脸图像样本进行评分,评估数据的合法性来增强算法的鲁棒性,最后通过线性拟合对参数进行优化,计算得到数据清洗和算法鲁棒性的最优平衡点,得出了检测数据投毒攻击的优化算法.
1 孤立森林算法
攻击者通过修改原始的训练数据形成了投毒数据,投毒数据破坏了合法样本的数据分布.一般来说,合法样本是一个密集点集合,相对合法样本数据,投毒数据为异常点,数量较少且通常散落在密集点区域以外的空间,属于离群点.孤立森林算法是一种适用于连续数据的无监督异常检测方法,可以有效地把异常点从正常点中检测出来.传统的异常检测算法主要是通过距离、密度等量化指标来刻画样本间的疏离程度,孤立森林算法则通过切分的方法计算样本点的孤立程度来检测异常数据.孤立森林算法采用孤立二叉树(Isolation Tree,即 iTree)对数据进行切分,异常数据由于跟正常数据较为疏离,使用孤立二叉树进行数据分割,只需要较少几次切分就可以将异常数据划分出来.相较于K-means等传统算法,孤立森林算法对高维数据有更高的效率和更好的鲁棒性.
孤立森林算法包含训练和预测两个步骤,训练步骤主要是用来构建iTree.
算法1:孤立森林训练算法
1)设X=x1,x2,x3……,xn为训练集,∀xi∈X,从X中随机抽取p个样本点构成X的子集X′放入根节点;
2)从d个维度中随机指定一个维度q,在当前数据中随机产生一个切割点p;
3)由切割点p生成一个超平面,将当前数据空间划分为两个子空间:指定维度小于p的样本点放入左子节点,大于或等于p的样本点放入右子节点;
4)递归2)和3),直至所有的叶子节点都只有一个样本点或者孤立树已经达到指定高度;
5)循环1)~4),直至生成t棵孤立树.
经过训练步骤构造了iTree后,就可以对数据进行预测.由于异常数据的稀疏性和疏离性,异常数据会距离iTree的根节点更近,而正常数据则会与根节点有更远的距离.训练集经过算法1的操作,异常点在iTree中会被快速划分到离根节点较近的叶子节点.因此,可以将每个样本点x放入森林中的对应iTree中,计算叶子节点到根节点的路径长度得到其异常分值S(x,n),来判断x是否为异常点.计算的公式如下:
(1)
h(x)=e+C(n)
(2)
(3)
其中,h(x)为x所在树的高度;e表示数据x从iTree的根节点到叶子节点所经过的边的数目;C(n)是一个修正值,表示用n条样本数据构建的二叉树的平均路径长度;H(n-1)可用ln(n-1)+0.5 772 156 649(欧拉常数)估算.
从异常分值的公式看,如果数据x在多棵iTree中的平均路径长度越短,得分就越接近1,表明数据x是异常点;如果数据x在多棵iTree中的平均路径长度越长,得分就越接近0,表示数据x是正常点;如果数据x在多棵iTree中的平均路径长度接近整体均值,则打分会在0.5附近,则认为不存在异常点.
2 多谱聚类评估算法
人脸图像是一种高维度、非常规分布的数据.针对校园人脸识别的数据投毒样本大多基于数据漂移的这一特点[6,7], 采用谱聚类算法对样本点数据进行聚类划分可以对样本数据进行快速有效的评估分类,而且也不容易陷入局部最优解.在常用的谱聚类算法中,数据点与数据点之间的相似度计算通常采用余弦相似度、高斯函数等,而常用的分割方法有最小分割法、规范化分割、比例分割法等[8-10].采用不同的相似度函数和分割方法对样本评估的结果有时会有较大的差异.为了能够更加准确地对人脸图像的样本数据进行评估,可以使用多谱聚类来进行综合衡量.考虑到算法的复杂度和运行效率,经过实验验证,分别应用余弦相似度、高斯函数作为相似度的核函数,通过最小分割和规范分割的分割方法,充分提取不同视角数据中的互补信息对样本进行检测评估,最后用分数平均法来集成多个谱聚类,可以实现对投毒样本的准确评估.
算法2:多谱聚类样本合法性评估算法
输入:人脸图像样本集X=(x1,x2,…,xn)
输出:对人脸图像样本的检测评估值V={Vx1,Vx2,…VxN}.
1)采用高斯函数和余弦相似度函数分别构建相似矩阵S1、S2;
2)根据相似矩阵S1、S2分别构建对应的度矩阵D1、D2;
3)对度矩阵D1、D2,分别计算出对应的拉普拉斯矩阵L1、L2;
6)对特征向量f1、f2组成的矩阵,按行进行标准化操作,得到n×k1维的特征矩阵F1、F2;
7)把F1、F2中的每一行作为一个k1维样本,共得到n个样本,分别用最小分割和规范分割的聚类方法对样本进行聚类,聚类维数为k2.经排列组合,分别得到4种簇划分C1(c1,c2,…,ck2),C2(c1,c2,…,ck2),C3(c1,c2,…,ck2),C4(c1,c2,…,ck2);
8)分别把C1,C2,C3,C4划分为k个簇,在划分出来的簇中选择样本最密集的簇作为合法簇,其他簇作为候选簇;
10)使用谱聚类学习器Hij对C1,C2,C3,C4的每个样本的平均值进行打分,打分值为Vij;
3 线性拟合
在人脸识别的机器学习过程中,数据清洗和算法的鲁棒性是一对矛盾的指标.一般来说,数据清洗得越干净,则算法的鲁棒性就越差,反之亦然.若把数据清洗看成是一个自变量,鲁棒性就是对应的因变量,那么计算这两个变量间的相互依赖关系就是一个典型的线性回归问题,这两个变量数据就可以使用线性预测函数来建模并通过数据估算优化模型参数.因此,利用线性拟合在数据清洗和鲁棒性之间就可以找到一个最优的平衡.线性拟合是一种监督学习,线性回归假设目标值与特征之间线性相关,通过构建损失函数,来求解损失函数最小时的参数.对于数据清洗(对应参数设为w)和鲁棒性(对应参数设为b),给定n个特征,每个特征M个样本集,通过训练n×M个数据,将这些训练数据带入到损失函数h中,拟合过程就是求解w和b使得损失函数最小化的过程.线性拟合的公式如下:
(4)
式中xi为w的输入向量,yi为b的输入向量.将训练数据带入损失函数h中,可以通过最小二乘法或梯度下降法对目标函数进行求解.实验表明,采用梯度下降的方法,对自变量进行不断的更新(针对w和b求偏导),可以使得损失函数快速逼近最小值.利用梯度下降,得到数据清洗和鲁棒性的最优拟合值为0.55,如图1所示:
图1 数据清洗与鲁棒性的最优拟合点
4 仿真实验
实验使用学校人脸识别系统中的1 500张人脸图像作为训练样本,图像大小为128×128.算法使用python3.8编程实现,实验使用的操作系统是windows 10,机器配置为Intel Core i7 3.0 G的CPU,8 G的内存.
对投毒样本的检测,一般有4种情况:TP,TN,FP,FN.如表1所示:
表1 真实值与预测值关系
为了综合评估算法的有效性,使用了5个分类指标和1个效率指标进行检测.分类指标分别是:预测正确率(ACC)、查准率(P)、查全率(R)、F1-score、ROC曲线,效率指标使用的是算法的运行效率(T).
预测正确率(ACC)指的是数据检测过程中被正确预测的数据实例与所有实例的数量比值,计算公式如公式(5)所示.
(5)
查准率(P)体现了算法对负样本的区分能力,指的是检测出的投毒实例与被预测为投毒实例的比例,计算公式如公式(6)所示.
(6)
查全率(R)体现了算法对正样本的识别能力,指的是被检测出投毒实例与真实投毒实例的数量比值,计算公式如公式(7)所示.
(7)
F1-score是查准率(P)和查全率(R)的综合, 计算公式如公式(8)所示.
(8)
ROC 曲线展示是查全率和精度的变化关系,其x轴表示的是假正例率 (FPR),y轴表示的是真正例率(TPR).假正例率 (FPR)和真正例率(TPR)的计算公式如公式(9)、公式(10)所示.
(9)
(10)
运行效率(T)是算法完成训练检测所需的时间,计算公式如公式(11)所示.
T=t2-t1
(11)
式中t1为开始时间 ,t2为结束时间.
实验中,采用一定的策略对人脸图像进行了数据投毒攻击,使用本文算法与文献[4]、文献[5]的算法对图像样本进行了训练和检测,实验结果如图2~7所示:
图2 ACC对比
图3 查准率对比
图4 查全率对比
图5 F1-score对比
图6 ROC对比
图7 算法效率对比
从图2可以看出随着数据投毒率的增加,三种算法的预测正确率均有下降,文献[4]性能下降明显.本文算法与文献[5]性能接近,都有较高的预测正确率,表明两种算法经过数据清洗都能有效地抵御投毒攻击;从图3可知,随着更多的投毒样本出现,三种算法检测出投毒样本的机率也越来越高,检测的精确率均有提升,本文算法优于对比的两种算法;图4的查全率则是有效检测投毒数据的重要指标,反映了算法对投毒数据的有效检测能力.因为本文采用多谱聚类的样本合法性评估算法综合评价样本,对投毒数据的检测具有更好的正确性,同时通过线性拟合得到数据清洗和鲁棒性的最优平衡点,算法不会因为细微的数据扰动而出现虚警的情况,因此,相对其他两种算法,本文算法具有更好的查全率;图5展示了在投毒数据样本与正常数据数样本量不均衡的情况下,三种算法的F1-score的数据对比,在数据投毒比例不高的情况下,本文算法的性能逊于文献[5]的算法,原因是本文采用的是多谱聚类样本合法性评估算法,当投毒样本不多的时候,谱聚类学习器计算出的样本数据受个别异常数据扰动的影响较大,平均值会有较多的偏差,导致算法可靠性降低.但随着投毒数据比例的增加,谱聚类学习器将通过学习可以计算出更加精确的样本平均值,当数据投毒比例超过50%的时候,本文算法会有更好的性能表现,说明本文算法具有更好的稳健性.图6则表明,随着FPR的增加,本文算法的TPR的检测能力也优于对比的算法.从图7得知,因为人脸图像有较多的高维特征,采用孤立森林算法对图像进行检测相对于文献[4]的K-means算法和文献[5]的复杂模型算法,具有更快的运算速度.
5 结语
数据投毒是针对机器学习的一种攻击方式,它通过干预深度学习训练数据集,比如插入或者修改某些训练样本,从而实现降低模型准确度或者实现特定输入的定向或者非定向输出,从而带来严重的安全隐患.本文针对校园门禁系统的人脸图像进行数据投毒检测,将数据清洗和鲁棒性进行综合考量,提出了一种新的数据投毒攻击的检测算法.实验表明,该算法快速有效.算法在投毒样本数据不多的情况下,F1-score的性能表现还有待改进,今后将对这一问题进行进一步的研究解决.