本发明属于数据安全技术领域,特别涉及一种基于差分隐私和层级相关性传播的图像分类方法。
背景技术
随着人工智能在推荐系统中的广泛应用,其高效的信息过滤技术,使用户更高效的获得自己感兴趣的商品和信息,但推荐系统向用户推荐的同时,存在侵犯用户隐私的风险。一方面,用户可能担心推荐结果中包含太多内容,会泄露自己的隐私信息;另一方面,对推荐结果感兴趣的用户可能担心推荐内容中包含低俗信息,限制其技术改进的能力;因此,处理隐私数据通常需要考虑数据可用性与隐私保护之间的平衡。
在整个大数据营销中,图像作为用户行为数据的重要组成部分,被广泛应用于各大电商网站,推荐系统通过模型分析模块提取图像的内容特征,例如颜色、纹理、形状等低级特征,phog、sift、cedd等高级特征,然后对图像进行分类建模,计算与同一分类的库中图像的相似性,最终通过图像的相似性程度和相关匹配程度进行智能推荐;但是,当前基于图像数据的推荐系统并没有对数据进行隐私保护。
技术实现要素:
针对上述现有技术中存在的隐私保护问题,本发明的目的在于提出一种基于差分隐私和层级相关性传播的图像分类方法,该种基于差分隐私和层级相关性传播的图像分类方法结合图像相关性及差分隐私技术设计一种隐私保护模型,基于卷积神经网络,通过训练多层网络来解决图像分类问题;在具体改进中,采用层级相关性传播(layer-wiserelevancepropagation,lrp)算法对神经网络中输入的图像特征数据与图像的分类结果之间的相关性进行量化,然后通过量化的相关性来确定对输入特征的隐私保护力度;通过这样的方式,使得图像在隐私保护的前提下,依然能够有较好的分类结果。
本发明的主要思路:利用lrp算法计算得到每个输入特征的平均相关性,并为其添加拉普拉斯噪声,实现图像相关性的隐私保护;根据分配的隐私预算,为神经网络的训练过程添加差分隐私保护,具体表现在为神经网络构造差分隐私变换层用于对图像部分区域中的输入特征按照一定规则添加噪声,同时对神经网络的损失函数添加噪声处理;为了提升神经网络的收敛速度,采用adam算法迭代更新模型参数并最终输出得到稳定的模型。
为达到上述技术目的,本发明采用如下技术方案予以实现。
一种基于差分隐私和层级相关性传播的图像分类方法,包括以下步骤:
步骤1,确定灰度图像数据集d,所述灰度图像数据集d包括m个灰度图像数据和m个灰度图像数据对应的分类标签;然后基于层级相关性传播计算得到灰度图像数据集d的相关性矩阵r;
步骤2,基于差分隐私以及根据灰度图像数据集d的相关性矩阵r,得到灰度图像数据集d的噪声平均相关性矩阵
步骤3,将灰度图像数据集d划分为训练集d1与测试集d2,训练集d1包括
设定卷积神经网络包括num_conv个卷积层和num_fc个全连接层,使用θ表示卷积神经网络全部参数,θ={θconv,θfc},θconv表示卷积神经网络num_conv个卷积层的参数,θfc表示卷积神经网络num_fc个全连接层的参数;
初始化:令loop表示第loop次迭代,loop的初始值设为1,loop的最大值为预设值max_loop;对于第loop次迭代,1≤loop≤max_loop;
步骤4,从训练集d1中确定第loop次迭代后的灰度图像数据集dloop,进而得到第loop次迭代后的扰动批量数据
步骤5,根据第loop次迭代后的扰动批量数据
步骤6,根据第loop次迭代后的扰动损失函数
步骤7,如果loop<max_loop,则令loop的值加1,根据第loop-1次迭代后一阶矩偏差修正结果
直到得到第max_loop次迭代后的卷积神经网络全部参数θmax_loop,此时迭代停止,并将迭代停止时得到的第max_loop次迭代后的卷积神经网络全部参数θmax_loop,作为卷积神经网络最优参数
将卷积神经网络num_conv个卷积层的最优参数
本发明的有益效果:
本发明基于图像相关性,充分考虑到图像特征数据的重要特征,并根据这些重要程度自适应地扰动输入特征,对图像本身进行隐私保护;再者,扰动神经网络的损失函数来保护模型参数,对模型进行隐私保护;通过上述隐私保护步骤,使得图像在隐私保护的前提下,依然能够有较好的分类效果。
附图说明
下面结合附图和具体实施方式对本发明作进一步详细说明。
图1是本发明的一种基于差分隐私和层级相关性传播的图像分类方法流程图;
图2a是计算得到的的平均相关性示意图;
图2b是经过噪声处理的平均相关性示意图图;
图3a是原始图像示意图;
图3b是经过噪声处理后的图像示意图;
图4是本发明的一种基于差分隐私和层级相关性传播的图像分类方法在不同隐私预算下的模型分类准确率对比图。
具体实施方式
参照图1,为本发明的一种基于差分隐私和层级相关性传播的图像分类方法流程图;其中所述基于差分隐私和层级相关性传播的图像分类方法,包括以下步骤:
步骤1:输入数据集,计算输入特征的相关性并累加求和。
输入灰度图像数据集d,其中灰度图像数据集d包含第一部分和第二部分两部分内容,第一部分是m个灰度图像数据,每个灰度图像数据都为n×n维矩阵,且n×n维矩阵中每个元素分别代表一个输入特征;第二部分是m个灰度图像数据对应的分类标签,记分类标签数量为c,则c个分类标签是一个c维的one-hot向量。
设置神经网络共有l层,分别用0,1,2,...,l,l+1,...,l-1表示,神经网络第0层表示输入层,第l-1层表示输出层,中间第1层至第l-2层都是隐藏层;神经网络第0层神经元总个数为|n×n|,第l-1层神经元总个数为c。
神经网络连接权重用w表示,w={w(0,1),w(1,2),...,w(l,l+1),...,w(l-2,l-1)},w(0,1)表示神经网络第0层和第1层的连接权重,w(l,l+1)表示神经网络第l层和第l+1层的连接权重,w(l,l+1)是一个行数为神经网络第l+1层神经元总个数、列数为神经网络第l层神经元总个数的权重矩阵;神经网络偏置项用b表示,b={b(1),b(2),...,b(l),...,b(l-1)},b(1)表示神经网络第1层的偏置项,是一个维数为第1层神经元总个数的实数向量;b(l)表示神经网络第l层的偏置项,是一个维数为第l层神经元总个数的实数向量。
基于上述神经网络,计算每个灰度图像数据的图像输入特征与分类结果的相关性并对其累加求和,进而得到灰度图像数据集d的相关性矩阵r,r是一个与每个灰度图像数据行数和列数均相同的矩阵,其每一维度上的相关性用rrow,col表示,其中row和col表示位于灰度图像数据集d的相关性矩阵r的第row行、第col列,且1≤row≤n,1≤col≤n;实际计算灰度图像数据集d的相关性矩阵r的过程包括如下几个子步骤:
(1a)前向计算过程可以表述为计算当前神经元的偏置项加上神经网络上一层每一个神经元的输出乘以其与当前神经元的连接权重累加之和的值,然后将求和结果作为当前神经元的输入,再经过激活函数处理得到输出,又将输出值用于下一层神经元输入的计算,直至达到神经网络输出层,其中神经元的输入由下述公式(1)计算得到:
其中,j=1,2,…,|l'+1|,i=1,2,…,|l'|,|l'|表示神经网络第l'层神经元总个数,|l'+1|表示神经网络第l'+1层神经元总个数,l'=0,1,2,…,l-2,
(1b)令j的值分别取1至|l'+1|,重复执行(1a),进而分别得到神经网络第l'+1层第1个神经元的输入
(1c)令l'的值分别取0至l-2,重复执行(1a)和(1b),进而分别得到神经网络第1层的输入z(1)至神经网络第l-1层的输入z(l-1),以及神经网络第1层的输出x(1)至神经网络第l-1层的输出x(l-1),然后将l'的值初始化为0。
从灰度图像数据集d中读取第k个灰度图像数据,将第k个灰度图像数据处理成|n×n|长度的列向量形式,并在设置的神经网络上使用传统神经网络中的前向算法计算得到第k个灰度图像数据的c维输出量outk;k=1,2,…,m。
将第k个灰度图像数据的c维输出量outk作为神经网络第l-1层的相关性r(l-1),计算输入特征与分类结果的相关性就是将这些相关性利用计算公式从输出层逐层向后传播至输入层,即传播到输入特征;根据神经网络的特点,当前神经元上计算得到的相关性会在向后传播过程中被分散到上一层相连的所有神经元上,给出相关性在层级之间的传播方式如公式(2)所示:
其中,因相关性计算过程是向后传播的,所以l″+1的初始值是l-1,l″的初始值为l-2,可取l″+1=l-1,l-2,…,2,1,l″=l-2,l-3,…,2,1,0;
基于层级相关性传播并根据公式(2)计算得到神经网络第0层的相关性r(0),
(1d)将第k个灰度图像数据相关性列向量转换为与第k个灰度图像数据同形状的相关性矩阵,记为第k个灰度图像数据的相关性矩阵pk。
(1e)令k的值分别取1至m,重复子步骤(1a)至(1d),进而得到第1个灰度图像数据的相关性矩阵p1至第m个灰度图像数据的相关性矩阵pm,并记为m个灰度图像数据的相关性矩阵p1,p2,p3,...,pm。
(1f)计算第row行、第col列上的相关性rrow,col,其计算过程如公式(3)所示:
其中,row=1,2,…,n,col=1,2,…,n,pk,row,col表示第k个灰度图像数据的相关性矩阵pk在第row行、第col列上的相关性。
(1g)令col的值分别取1至n,重复执行(1f),进而分别得到第row行、第1列上的相关性rrow,1至第row行、第n列上的相关性rrow,n,记为第row行上的相关性rrow,然后将col的值初始化为1。
(1h)令row的值分别取1至n,重复执行(1f)和(1g),进而分别得到第1行上的相关性r1至第n行上的相关性rn,记为灰度图像数据集d的相关性矩阵r。
步骤2:计算平均相关性进行噪声处理。
步骤1计算得到的灰度图像数据集d的相关性矩阵r衡量了灰度图像数据集d中不同维度的输入特征对m个灰度图像数据的分类结果影响;为使计算过程中占据内存量小,可对灰度图像数据集d的相关性矩阵r求平均值;但同时考虑到相关性数据可能造成的隐私泄露风险,步骤2计算每个输入特征的平均相关性并对其进行噪声处理。
噪声处理操作中添加噪声的规模与平均相关性计算函数的敏感度△f相关,即计算函数对单一相关性值的最大敏感程度,因此为方便对输入特征的平均相关性的噪声处理,可将其进行归一化处理。
在本发明方法中,样本计算得到的相关性取值经过归一化处理,最大值为1,共有m个灰度图像数据的相关性参与计算,得出平均相关性计算函数的函数敏感度△f取值为
确定了平均相关性计算函数的函数敏感度,添加噪声的规模还与隐私预算相关;在(0,1)内随机抽取数据作为第一隐私预算ε1的值,将灰度图像数据集d的噪声平均相关性矩阵用
其中,row=1,2,…,n,col=1,2,…,n,rrow,col表示第row行、第col列上的相关性,
步骤2给出了量化每个输入特征对数据集样本总体分类结果的影响程度的步骤,并对其添加了隐私保护;本发明方法后续步骤会利用这个噪声平均相关性矩阵对输入数据添加隐私保护,并确保较好的分类效果。
步骤3:构造卷积神经网络模型。
构造需要训练的卷积神经网络模型并进行参数初始化;在本实施例中,卷积神经网络不仅需要对每一个灰度图像数据进行分类任务,而且需要保护每一个灰度图像数据的数据隐私,因此构造神经网络过程中,在传统的模型之外,添加差分隐私变换层dpt,用于对每一个灰度图像数据进行噪声处理。
差分隐私变换层dpt的运行原理首先在于每一个灰度图像数据中的重要像素点处于绝对中心或者是相对中心的位置,因此其处理步骤在于先将每一个灰度图像数据归一化,此时较大概率上灰度图像边缘都是0值或是接近于0的值,之后判断从哪一行哪一列开始到哪一行哪一列结束的矩形范围内都有特征值不小于设定的阈值thv,设定的阈值thv根据具体数据集确定,一般取0或者m个灰度图像数据的所有输入特征中最大值的十分之一。
利用上述原理确定图像的矩形区域范围作为待加噪区域,然后根据步骤2计算的平均相关性矩阵对区域内输入特征进行加噪,加噪原则是非零且相关性较大的特征添加更小的噪声,反之亦然,对于待加噪区域内的零值输入特征,按照概率添加噪声,具体应用方式将在步骤4进行讲解;差分隐私变换层dpt减小了每一个灰度图像数据的加噪范围,使得较于为整个图像数据添加噪声的方式能够支持更小的隐私预算,即实现更好的隐私保护;扰动之后,将输入特征从[0,1]扩展到[-1,1],用于后续模型计算。
构造一个卷积神经网络模型,在神经网络输入层之后添加差分隐私变换层dpt,对于卷积神经网络模型中的连接权重以及偏置项等模型参数采用随机方式进行初始化;本发明中采用模型的层数及其超参数将在实验仿真阶段给出。
利用交叉验证方式将灰度图像数据集d分成训练集d1与测试集d2,在训练集d1包括
初始化:令loop表示第loop次迭代,loop的初始值设为1,loop的最大值为预设值max_loop;对于第loop次迭代,1≤loop≤max_loop。
训练过程遵循差分隐私保护原则,根据经验分配的第二隐私预算为ε2,ε2∈(0,1)。具体的训练过程中要保证对m个灰度图像数据本身以及对模型参数的隐私保护,具体方式是对输入特征进行噪声处理,以及对损失函数进行噪声处理,卷积神经网络模型将第二隐私预算ε2平均分到两个处理过程中,即每个步骤的隐私预算均为
步骤4:训练过程批数据读取,并对输入特征进行噪声处理。
考虑到神经网络的训练效率,训练过程采用批量方式读取数据,将批量大小记为batch_size;从训练集d1随机读取batch_size个灰度图像数据用于训练,读取的批量数据记为第loop次迭代后的灰度图像数据集dloop,
为避免训练过程中图像数据的隐私泄露,利用差分隐私变换层dpt对每个灰度图像数据的输入特征进行扰动处理,得到扰动图像的输入特征;扰动图像的输入特征一方面可以对对应灰度图像数据本身进行隐私保护,另一方面也有可能会降低对应灰度图像的分类准确率;本发明方法希望通过扰动更小范围内的输入特征,以及对重要特征扰动更少的原则实现对隐私保护与分类准确率之间的平衡。
对于每个灰度图像数据,差分隐私变换层dpt的具体运行原理可划分为几个子步骤,包括:
(4a)确定加噪区域。
选取第loop次迭代后的灰度图像数据集dloop中第d幅灰度图像数据,记为dloop,d,d=1,2,…,batch_size;对dloop,d进行归一化处理,并根据差分隐私变换层dpt的运行原理,设定阈值为0的方式确定dloop,d的部分矩形区域范围作为第loop次迭代后第d幅灰度图像数据的待加噪区域floop,d,缩小dloop,d的加噪范围。
具体地,构造一个长为n且值全为thv的行向量,行向量的行标依次为1、2、…、n,计算行标的下限需从dloop,d中第1行开始比较,依次将dloop,d的行标加1,直到dloop,d中的行首次出现行内输入特征超过设定阈值thv,则将该行的行标设定为待加噪区域floop,d的行下限,记为r_low;计算行标的上限则需要从dloop,d中第n行开始比较,依次将dloop,d中的行标减1,直到dloop,d中首次出现行内输入特征超过设定阈值thv,则将该行的行标设定为待加噪区域floop,d的行上限,记为r_high。
同样原理,构造一个长为n且值全为thv的列向量,列向量的列标依次为1、2、…、n,计算列标的下限需从dloop,d中第1列开始比较,依次将dloop,d的列标加1,直到dloop,d中的列首次出现列内输入特征超过设定阈值thv,则将该列的列标设定为待加噪区域floop,d的列下限,记为c_low;计算列标的上限则需要从dloop,d的第n列开始比较,依次将dloop,d的列标减1,直到dloop,d中首次出现列内输入特征超过设定阈值thv,则将该列的列标设定为待加噪区域floop,d的列上限,记为c_high。
将dloop,d中行在[r_low,r_high]内、列在[c_low,c_high]内的区域,作为第loop次迭代后第d幅灰度图像数据的待加噪区域floop,d。
(4b)确定隐私预算分配
算法对输入特征的扰动原则是为相关性更小的输入特征添加更多的噪声,而噪声大小的一个决定因素是为其分配的隐私预算的大小,分配的隐私预算越小,添加的噪声越大,因此这一步需要确定为待加噪区域floop,d内的每个输入特征分配隐私预算,隐私预算分配需要借助步骤2中计算的噪声平均相关性矩阵,分配原则如公式(6)所示:
其中,εrow',col',loop,d表示分配到dloop,d中第row'行、第col'列输入特征的隐私预算,其中row'和col'的取值必须符合待加噪区域floop,d的范围,即r_low≤row'≤r_high,c_low≤col'≤c_high;
根据公式(6)可以保证相关性较小的输入特征分配的隐私预算更小,从而导致更大的噪声,反之,相关性较大的输入特征添加更小的噪声,使得对于图像整体的扰动更小。
(4c)为输入特征添加噪声。
根据(4b)的计算结果,为dloop,d的输入特征进行加噪,加噪方法如公式(7)所示得到待加噪区域floop,d内第row'行、第col'列的扰动输入特征
其中,iloop,d,row',col'表示待加噪区域floop,d内第row'行、第col'列的输入特征,即row'和col'的取值必须符合待加噪区域floop,d的范围,
(4d)令col'的值分别取c_low至c_high,重复执行(4c),直到得到待加噪区域floop,d内第row'行、第c_low列的扰动输入特征
(4e)令row'的值分别取r_low至r_high,重复执行(4c)和(4d),直到得到待加噪区域floop,d内第r_low行的扰动输入特征
(4f)令d的值分别取1至batch_size,重复执行(4c)至(4e),直到得到dloop中第1幅灰度图像数据输入特征加噪处理结果至dloop中第batch_size幅灰度图像数据输入特征加噪处理结果,记为第loop次迭代后的扰动批量数据
步骤4描述过程是针对单一灰度图像数据的输入特征进行噪声处理,对dloop中每个灰度图像数据都用同样方法进行噪声扰动,最终实现了批量数据读取以及扰动,扰动的批量数据用
步骤5:计算损失函数并进行噪声处理。
利用上面的扰动样本进行前向计算得到
其中,公式(9)表明需要对
针对神经网络训练过程中的隐私问题,本方面方法通过对损失函数进行噪声处理来保护隐私,具体加噪方法如公式(10)所示:
其中,
步骤6:优化目标函数,更新模型参数。
神经网络训练过程需要最小化损失函数,基于所述第loop次迭代后的扰动损失函数
首先设定卷积神经网络包括num_conv个卷积层和num_fc个全连接层,使用θ表示卷积神经网络全部参数,θ={θconv,θfc},θconv表示卷积神经网络num_conv个卷积层的参数,θconv={θconv_1,θconv_2,...,θconv_no,...,θconv_num_conv},no=1,2,…,num_conv,θconv_no表示第no个卷积层的参数,θconv_no的个数为(sizefilter_no+1)×depth_no,sizefilter_no表示卷积神经网络中第no个卷积层的过滤器大小,depth_no表示卷积神经网络中第no个卷积层的过滤器个数;θfc表示卷积神经网络num_fc个全连接层的参数,
θfc={θfc_(1,2),θfc_(2,3),...,θfc_(index,index+1),...,θfc_(num_fc-1,num_fc)},θfc_(index,index+1)表示第index个全连接层和第index+1个全连接层之间的连接权重及偏置项,θfc_(index,index+1)的参数个数为(numberindex+1)×numberindex+1,numberindex表示第index个全连接层神经元总个数,numberindex+1表示第index+1个全连接层神经元总个数。
以随机化方式为卷积神经网络全部参数分别赋任意实数值,得到卷积神经网络全部参数初始值θ0。
步骤6的具体更新子步骤为:
6.1计算得到第loop次迭代后的梯度gloop,
6.2计算得到第loop次迭代后一阶矩估计sloop,sloop=ρ1sloop-1+(1-ρ1)gloop,sloop-1表示第loop-1次迭代后一阶矩估计,s0=0;ρ1表示矩估计的指数衰减速率,且值在区间[0,1)内的随机数。
6.3计算得到第loop次迭代后二阶矩估计rloop,
6.4计算得到第loop次迭代后一阶矩偏差修正结果
6.5计算得到第loop次迭代后二阶矩偏差修正结果
步骤7,如果loop<max_loop,则令loop的值加1,根据第loop-1次迭代后一阶矩偏差修正结果
θloop=θloop-1+△θloop-1,
直到得到第max_loop次迭代后的卷积神经网络全部参数θmax_loop,此时迭代停止,并将迭代停止时得到的第max_loop次迭代后的卷积神经网络全部参数θmax_loop,作为卷积神经网络最优参数
将卷积神经网络num_conv个卷积层的最优参数
上述循环过程达到最大迭代次数或者目标函数,也就是损失函数达到最优时,结束循环过程,本发明方法将输出构造的卷积神经网络及其对应的参数,包括卷积神经网络num_conv个卷积层的最优参数
本发明效果通过以下仿真实验进一步说明。
(一)仿真条件:
采用tensorflow1.4.0cpu版本、python3.6、windowsserver2008r2enterprise64位操作系统版本作为开发环境,采用mnist数据集,使用灰度手写数字图片作为模型输入,其中包含训练样本60000个,测试样本10000个,每个样本均由28*28的像素点组成。
实例中采用以下卷积网络模型:
input→dpt→conv1→pool1→conv2→pool2→conv3→pool3→fc→softmax
其中所有池化层均采用平均池化方式,conv1层有10个5*5的过滤器,步长为1,conv2层有25个5*5的过滤器,步长为1,conv3有100个4*4的过滤器,步长为1,fc有10个神经元;数据经过fc全连接层的运算将得到对应的分类结果,在其之后添加softmax回归处理,进行结果的归一化处理。
以下仿真将图像分类准确率作为衡量模型性能的标准,通过不同隐私预算的独立多次迭代实验,计算训练数据分类准确率。
(二)仿真内容:
仿真1:取隐私预算ε1为0.01,计算训练集样本输入特征的平均相关性并进行噪声处理,对比结果如图2a和图2b所示,其中图2a表示计算得到的平均相关性,图2b是经过噪声处理的平均相关性。
仿真2:取batch_size为1000,隐私预算ε2为0.10,阈值设置为0,零值扰动概率设置为0.8;根据仿真1的加噪平均相关性对图像输入特征进行扰动,对比结果如图3a和图3b所示,其中图3a表示原始图像,图3b是经过噪声处理的图像。
仿真3:取batch_size为5000,隐私预算ε2分别取值0.10、0.20、0.30、0.40、0.50,根据仿真1的加噪平均相关性对图像输入特征进行扰动之后用于模型训练,并比较不同隐私预算下模型的分类准确率,对比结果如图4所示。
(三)仿真分析:
从图2a和图2b可以看出,本发明所设计的一种基于差分隐私和层级相关性传播的图像分类方法在平均相关性加噪处理阶段,扰动了平均相关性数据,保护了图像输入特征重要程度隐私,同时保持输入特征重要程度基本不变,为后面的图像输入特征扰动阶段隐私预算分配提供依据。
从图3a和图3b可以看出,本发明所设计的基于差分隐私和层级相关性传播的图像分类方法在输入特征扰动阶段,对加噪区域内的输入特征进行扰动,且遵循相关性大的输入特征扰动较小,相关性小的输入特征扰动较大的原则,对于零值输入特征,以一定概率进行噪声处理;多次实验可知,隐私预算越小,输入特征扰动程度越大,图像偏离程度也越大。
从图4可以看出,在batch_size为5000的情况下,隐私预算ε2取值小于0.10时,会因为输入特征添加噪声过大而导致无法收敛,也就得不到一个很好的训练模型;当隐私预算ε2取值较大时,模型实现了隐私保护与分类准确性之间的平衡,且收敛速度较快;经过加噪公式(7)可知,添加的噪声规模与批量大小与隐私预算相关,只要两者达到一定数量级上的平衡,就可以保护图像及模型隐私,还可以保证图像的分类准确性。
综上所述,仿真实验验证了本发明的正确性和有效性。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。