基于分层网络且保护用户隐私的智能家居数据分析方法

文档序号:30693920发布日期:2022-07-09 15:57阅读:103来源:国知局
基于分层网络且保护用户隐私的智能家居数据分析方法

1.本发明涉及深度学习及paillier同态加密的隐私保护技术领域。尤其涉及一种基于分层深度神经网络的智能家居数据分析方法。


背景技术:

2.物联网被人们视作在计算机和互联网后新的信息技术产业革命,它将事物泛化在物联网构建的场景中,人和物被紧密的联系在一起。智能家居及其相关产业链在物联网发展的背景下得到充分发展。智能家居通过物联网技术将家庭内的诸多设备(影音视频设备、照明系统、电话远端控制、防盗报警系统)连接到一起,提供家电控制、电话远程控制、多媒体智能推荐、环境实时监控、防火防盗报警、暖通控制以及定时编程控制等多种手段和功能。常见的智能家居系统,其硬件架构图如图1所示。
3.然而智能家居在高速发展及大规模应用的过程中,同时爆发了一系列的安全性问题,在利用储在云端的深度学习模型进行推理服务时,上传到云端模型的输入常常包含了用户的隐私信息。例如在家庭摔倒检测中,安装在家中的摄像头会将家中老人的照片拍摄并上传到云端,而这些隐私数据的泄露是用户所不希望的。尽管借助移动领域的云技术,物联网中的智能家居设备具有小规模的计算能力,但由于实时更新的需求以及需要较大算力的模型,将模型储存在本地的方式无法广泛应用于一般智能家居系统中,以至于无法满足用户的多样化需求。


技术实现要素:

4.本发明用于解决在智能家居系统中深度学习模型的使用受用户数据隐私泄露风险影响的问题,具体提出了一种基于分层网络的,并利用中间层输出和云端进行交互式的、数据分析方法,同时利用paillier同态加密方法对交互过程进行保护。该方法在将深度学习网络分层的基础上,利用了进行交互式模型预测的安全性,保护了本地端用户隐私数据的不被窃取。
5.为实现上述目的,本发明采用的技术方案基于对将分层的深度模型进行本地和云端的交互式数据分析方法,如图所示,该方法的实现步骤如下:
6.步骤(1)针对用户的功能需求在云终端训练一个智能家居场景下针对指定任务的 dnn模型f,其结构是一个具有k层的卷积神经网络;
7.步骤(2)为实现本地和云终端的交互式计算,根据神经网络的层分离机制选择中间层,将模型f中间层之前的模型部分,包含中间层,作为特征提取层发送给本地用户,同时将后半部分保留在云终端;
8.步骤(3)家庭内的智能设备将采集到的信息输入到本地的特征提取层,用户得到输出并对其进行数据预处理;
9.步骤(4)用户生成进行paillier同态加密所需的公私钥对以及随机参数,云终端生成对应的随机参数;
10.步骤(5)用户将特征提取层的输出用公钥进行同态加密,并传输到云终端的服务器,云终端将卷积核转换为权重矩阵,并进行基于密文的交互式同态加密计算,再将计算结果由云终端传递给本地用户;
11.步骤(6)用户获得特征提取层的输出与云终端上模型f第i+1层的交互式计算结果,将该结果作为与模型f第i+2层进行交互式计算的输入,直至计算到模型f的最后一层,云终端得到最后的结果并对智能家居设备发出指令;
12.进一步的,步骤(1)中还包括:由智能家居服务供应商提供的云终端,与所述本地物联网设备通信连接,用于对所述智能家居设备进行远程控制。所属智能家居设备包括以下设备的任意一种或其组合:摄像头、传感器和开关量采集终端。
13.进一步的,步骤(2)中还包括:模型f的中间层应选择第层至层,k为模型f网络层数。其中,云终端选择将中间层记为模型f的第i层,出于用户对本地智能设备所收集数据的安全需求,云终端将模型f的第一层到第i层作为网络的特征提取层发送给本地,剩余部分保留在云终端,将特征提取层和云终端网络通过同态加密方式计算的过程称为交互式计算。特征提取层的输出经过预处理得到并与模型f的第i+1层即云终端的第1层的权重参数w
i+1
进行同态加密计算,并在本地经过激活和池化操作,得到第i+2层的输入称为完成一轮交互式计算;
14.进一步的,步骤(3)中还包括:由于云终端对模型f进行了拆分,模型f无法进行一般的卷积层计算。用户为实现f中卷积层的计算需求,需要把特征提取层的输出xi进行预处理,利用处理后的结果将卷积计算转变为矩阵的乘法,所述步骤(3)中所述的预处理具体为:
15.用户特征层的输出为xi,它是一个大小为mi×
ni×di
的三维张量,其中mi、ni分别表示张量xi的行、列大小,di表示模型f的第i层输出的通道数,模型f的第i+1层,即云终端第1层的卷积核大小为其中分别表示卷积核的行、列大小。具体的第一次预处理过程为,用户将xi按通道的顺序将三维张量变为一个二维矩阵,在 xi的每一个通道的矩阵上取卷积核大小的矩阵并向量化纵向拼接,然后将每个通道的结果横向拼接,最后得到即为经过预处理后的输出,是一个大小为即为经过预处理后的输出,是一个大小为的矩阵,其中表示矩阵行的大小,表示矩阵列的大小。对的第m行元素计算公式如下:式中:表示经过预处理后的特征层输出,vector把矩阵变为向量,concatc表示将矩阵纵向拼接,concatr表示将矩阵横向拼接,表示将矩阵横向拼接,表示在xi的第j个通道上水平的逐个取大
小为的矩阵,变为一个水平向量后纵向拼接,整个式子即表示对第1个至第di个通道上经过变化的矩阵作横向的拼接。最终用户得到经过预处理的矩阵即模型f第i+1层的输入,令的大小为其中:其中:在之后的每一轮交互式计算中都要首先进行预处理,且与第一次预处理的不同之处在于,第j轮交互式计算中的预处理的输入为第j-1轮计算的输出所需要的卷积核大小为模型f第i+j层,即云端第j层的
16.进一步的,步骤(4)具体包括如下子步骤:
17.步骤(4-1):用户随机生成两个独立的大质数p、q,满足gcd(pq,(p-1)(q
‑ꢀ
1))=1,这个属性是为了保证两个质数的长度相等,其中gcd(a,b)表示求a、b的最大公因数,用户计算n=p*q,随机选择整数其中z
*
表示非零整数集合。生成公钥
18.步骤(4-2):由λ=lcm(p-1,q-1)得到λ,又由生成私钥其中l被定义为l(x)=(x-1)/n,其中x是自变量,n为步骤(4-1)中对应的n值,lcm(a,b)表示求a、b的最大公倍数,mod表示取模运算;
19.步骤(4-3):用户在本地为所述步骤(2)中的每一轮交互计算生成的随机矩阵r= [r
i+1
,

,r
k-1
,rk],它是一个大小为的二维随机矩阵,云终端同步生成随机矩阵s= [si,
…sk-1
,sk],它是一个大小为的二维随机矩阵,其中k表示模型f的层数,d
i+1
表示模型f的第i+1层,即云终端第1层的卷积核ke
i+1
的个数,它的大小与该层输出的通道数相等。
[0020]
进一步的,步骤(5)完成了对模型f卷积层的交互式计算,包括如下子步骤:
[0021]
步骤(5-1)用户将公钥发送给云终端并保存私钥,并与云终端的i+1至k层进行交互式计算,以用户与模型f在云终端第i+1层的计算为例:首先用户在本地利用公钥对 r
i+1
进行加密并将加密后的结果发送给云终端,具体加密公式如下:式中r
i+1
表示用户为与模型f的第i+1层,即云终端第1层交互计算所生成的随机矩阵, z1表示选择的随机数,其中enc(r
i+1
)表示将随机矩阵r
i+1
加密后的结果;
[0022]
步骤(5-2)云终端将模型f的第i+1层,即云终端第1层的一个卷积核ker
i+1
变为权重矩阵w
i+1
,ker
i+1
是一个大小为的三维张量,其中di分别为ker
i+1
行、列、通道数的大小,由步骤(4-3)可知,这样的卷积核一共有d
i+1
个,具体计算公式为:
式中:w
i+1
[m]表示该矩阵的第m列,即第m个卷积核计算得到的结果,表示第m个卷积核的第d
i-1个通道,右侧式子即把第m个卷积核沿通道方向的矩阵逐个向量化,并纵向拼接为一个向量后填入矩阵w
i+1
的第m列,w
i+1
=concatr(w
i+1
[1],
…wi+1
[d
i+1-1],w
i+1
[d
i+1-1])式中:w
i+1
表示对所有卷积核转为向量后纵向拼接的结果,它是一个大小为的矩阵,由步骤(3),w
i+1
的大小即
[0023]
步骤(5-3)云终端利用公钥对第i+1层的权重矩阵w
i+1
进行加密,然后与 enc(r
i+1
)进行同态加密的乘法和加法计算,并将加密的计算结果发送给用户,具体公式如下:云终端利用公钥对w
i+1
进行加密:云终端对w
i+1
、r
i+1
进行同态乘法计算:云终端对r
i+1
*w
i+1
、s
i+1
进行同态加法计算:式中:z2表示加密s
i+1
使用的随机数;
[0024]
步骤(5-4)用户利用私钥对云终端发送的加密计算结果进行解密,目的是获取解密后包含w
i+1
的r
i+1
*w
i+1-s
i+1
,具体公式如下:r
i+1
*w
i+1-s
i+1
=l(enc(r
i+1
*w
i+1-s
i+1
)λmod n2)*μ式中:函数l(x)为解密函数,其表达式为l(x)=(x-1)/n用户将发送给云终端,云终端计算并将结果发送给用户,用户最终得到即为模型f第i+1层的卷积计算结果它是一个大小为的矩阵;
[0025]
步骤(5-5)用户将矩阵转化为三维张量让用户能够在本地进行激活和池化的操作,三维张量的转化操作具体如下:的转化操作具体如下:式中,表示矩阵中第h(m-1)+n行第t列的元素,表示张量第t个通道中第m行第n列的元素值,是一个大小为h
×h×di+1
的张量;
[0026]
步骤(5-6)用户从所述云终端下载偏置,并在本地对执行激活函数操作:式中:表示经过激活函数后的输出,b表示用户从云终端下载的偏置;
[0027]
步骤(5-7)用户在本地执行池化操作,由步骤(5-6)得到的结果,通过矩阵乘法的方式实现池化,完成与模型f的第i+1层,即云终端第1层的交互式计算,并将结果作为用户与模型f的第i+2层,即云终端第2层进行交互式计算的输入有益效果本方法在预训练的智能家居数据分析模型的基础上,将模型分层并分段保存在本地用户和云服务器上,通过同态加密的交互方法使用模型对家庭环境进行分析。使用分层且同态加密的交互式数据分析方法比原来数据共享型数据分析模式显著保护了用户的隐私信息。
附图说明
[0028]
图1为智能家居系统架构图
[0029]
图2为分布式模型的结构图
[0030]
图3为矩阵乘法化的卷积计算过程
[0031]
图4为同态加密的交互式预测过程具体实施方法
[0032]
本发明的目的在于提出一种基于网络分层的智能家居数据分析方法,在经过预训练的深度学习模型上进行更加保护用户隐私的模型输出结果。
[0033]
以下将结合具体实施例对本发明提供的技术方案进行详细说明,应理解下述具体实施方案仅用于说明本发明而不用于限制本发明的范围
[0034]
由于物联网设备在运行的过程中,运行任务所需要的模型会产生本地设备和云端服务器之间的数据交换,这些数据被云端的恶意攻击者获取,攻击者通过直接获取明文信息,或者对中间信息进行数据推测,可以推测出该智能家居环境中的设备属性、设备状态及事件以及用户的敏感信息,损害了用户的隐私。本发明联合部署在云端服务器和本地,能够在联网的情况下方便的安装在智能家居系统中。本发明即插即用,只需要被部署在智能家居环境的网络数据传输物理范围内,就能够开始保证用户的隐私安全。本发明首先获取传感器设备中获取的家庭信息数据进行分析,输入到储存于本地的前半段网络中,得到中间层的输出。而后,本发明根据paillier同态加密的隐私保护策略,利用中间层输出和储存于云端的模型后半段进行交互式计算。因为这些数据提前被处理为了矩阵形式,因此卷积层的计算能够用矩阵乘法的形式表示,从而达到安全交互保护用户隐私的目的。
[0035]
具体来说,步骤(1)在云终端预训练了一个智能家居系统中用于对用户或家庭行为进行预警的深度学习模型f,例如在“防摔倒报警系统”中,为防止家中老人可能出现的摔倒受伤情况,模型会根据智能家居系统中摄像头捕捉到的图片,由云终端向本地进行相应的警告提示。
[0036]
步骤(2)将在云终端训练好的模型从中间层分段。具体来说,一个完整的深层神经网络(dnn)模型包括卷积层、池化层和全连接层,中间的若干层称为隐藏层。对于中间层的选择,根据论文secure collaborative deep learning against gan attacks中的提到的中间层选择方法 (chen z,fu a,zhang y,et al.secure collaborative deep learning against gan attacks in the internetof things[j].ieee internet of things journal,2020,8(7):5839-5849.)为了让用户在本地的开销较小以保证模型复用性,本发
明选择较低的网络层作为中间层,在本实施例中,一个用于“防摔倒报警系统”的12层图像识别卷积神经网络,其中包括9个卷积层和3个全连接层,选择神经网络的第层至层,其中k为网络层数,我们选择第4层作为中间层。
[0037]
步骤(3)将智能家居设备中传感器获取的输入传入网络并对输出结果进行数据预处理。具体的,例如在“老人防摔倒预警系统”中,摄像头拍摄到的图片输入进本地设备,经过若干个隐藏层后,得到输出xi。本实施例中,传感器设备拍摄到大小为64
×
64
×
3的图片传入模型f,并在中间层得到大小为32
×
32
×
8的中间层输出xi[0038]
在本步骤中,为满足交互式模型预测中卷积操作变为矩阵乘法的需求,首先要对中间层输出的特征进行预处理,用户特征层的输出为xi,它是一个大小为mi×
ni×di
的三维张量,其中mi、ni分别表示张量xi的行、列大小,di表示模型f的第i层输出的通道数,模型f 的第i+1层,即云终端第1层的卷积核大小为其中分别表示卷积核的行、列大小。具体的第一次预处理过程为,用户将xi按通道的顺序将三维张量变为一个二维矩阵,在xi的每一个通道的矩阵上取卷积核大小的矩阵并向量化纵向拼接,然后将每个通道的结果横向拼接,最后得到即为经过预处理后的输出,是一个大小为的矩阵,其中其中表示矩阵行的大小,表示矩阵列的大小。对的计算公式如下:式中:表示经过预处理后的特征层输出,vector把矩阵变为向量,concatc表示将矩阵纵向拼接,concatr表示将矩阵横向拼接,表示将矩阵横向拼接,表示在xi的第j个通道上水平的逐个取大小为的矩阵,变为一个水平向量后纵向拼接,整个式子即表示对第1个至第di个通道上经过变化的矩阵作横向的拼接。最终用户得到经过预处理的矩阵即模型f第i+1层的输入,令的大小为其中其中在之后的每一轮交互式计算中都要首先进行预处理,且与第一次预处理的不同之处在于,第j轮交互式计算中的预处理的输入为第j-1轮计算的输出所需要的卷积核大小为模型f第i+j层,即云端第j层的本实施例中,中,对于32
×
32
×
16的中间层输出和3
×3×
16的卷积核,经过预处理后,得每个通道维度大小为900
×
144的矩阵
[0039]
步骤(4)中用户和云终端生成进行paillier同态加密的公私钥对及每次交互计算的随机矩阵r、s,是公钥,是私钥,具体包括如下子步骤:
[0040]
步骤(4-1):用户随机生成两个独立的大质数p、q,满足gcd(pq,(p-1)(q-1))= 1,这个属性是为了保证两个质数的长度相等,其中gcd(a,b)表示求a、b的最大公因数,用户计算n=p*q,随机选择整数其中z
*
表示非零整数集合。生成公钥
[0041]
用户计算n=p*q,随机选择整数其中z
*
表示非零整数集合。生成公钥
[0042]
步骤(4-2):由λ=lcm(p-1,q-1)得到λ,又由μ=(l(g
λ
mod n2))-1
,生成私钥其中l被定义为l(x)=(x-1)/n,其中x是自变量,n为步骤(4-1)中对应的n值,lcm(a,b)表示求a、b的最大公倍数,mod表示取模运算;
[0043]
步骤(4-3):用户在本地为所述步骤(2)中的每一轮交互计算生成的随机矩阵r= [r
i+1
,

,r
k-1
,rk],它是一个大小为的二维随机矩阵,云终端同步生成随机矩阵s= [si,
…sk-1
,sk],它是一个大小为的二维随机矩阵,其中k表示模型f的层数,d
i+1
表示模型f的第i+1层,即云终端第1层的卷积核ker
i+1
的个数,它的大小与该层输出的通道数相等。在本实施例中,矩阵r的大小为900
×
144,矩阵s的大小为900
×
6。
[0044]
步骤(5)本地用户和云服务器进行交互式计算,在实施例中,“老人防摔倒预警系统”的网络将特征处理层输出的结果与云终端进行交互。具体为:
[0045]
步骤(5-1)用户将公钥发送给云终端并保存私钥,并与云终端的i+1至k层进行交互式计算,以用户与模型f在云终端第i+1层的计算为例:首先用户在本地利用公钥对 r
i+1
进行加密并将加密后的结果发送给云终端,具体加密公式如下:式中r
i+1
表示用户为与模型f的第i+1层,即云终端第1层交互计算所生成的随机矩阵, z1表示选择的随机数,其中enc(r
i+1
)表示将随机矩阵r
i+1
加密后的结果;
[0046]
步骤(5-2)云终端将模型f的第i+1层,即云终端第1层的一个卷积核ker
i+1
变为权重矩阵w
i+1
,ker
i+1
是一个大小为的三维张量,其中di分别为ker
i+1
行、列、通道数的大小,由步骤(4-3)可知,这样的卷积核一共有d
i+1
个,具体计算公式为:式中:w
i+1
[m]表示该矩阵的第m列,即第m个卷积核计算得到的结果,表示第m个卷积核的第d
i-1个通道,右侧式子即把第m个卷积核沿通道方向的矩阵逐个向量化,并纵向拼接为一个向量后填入矩阵w
i+1
的第m列,w
i+1
=concatr(w
i+1
[1],
…wi+1
[d
i+1-1],w
i+1
[d
i+1-1])式中:w
i+1
表示对所有卷积核转为向量后纵向拼接的结果,它是一个大小为的矩阵,由步骤(3),w
i+1
的大小即在本实施例中,模型f第i+1层的卷积核有6个,所以经过处理后的矩阵w
i+1
大小为 144
×
6。
[0047]
步骤(5-3)云终端利用公钥对第i+1层的权重矩阵w
i+1
进行加密,然后与 enc(r
i+1
)进行同态加密的乘法和加法计算,并将加密的计算结果发送给用户,具体公式如下:云终端利用公钥对w
i+1
进行加密:云终端对w
i+1
、r
i+1
进行同态乘法计算:云终端对r
i+1
*w
i+1
、s
i+1
进行同态加法计算:式中:z2表示加密s
i+1
使用的随机数;
[0048]
步骤(5-4)用户利用私钥对云终端发送的加密计算结果进行解密,目的是获取解密后包含w
i+1
的r
i+1
*w
i+1-s
i+1
,具体公式如下:r
i+1
*w
i+1-s
i+1
=l(enc(r
i+1
*w
i+1-s
i+1
)
λ
mod n2)*μ式中:函数l(x)为解密函数,其表达式为l(x)=(x-1)/n用户将发送给云终端,云终端计算并将结果发送给用户,用户最终得到即为模型f第i+1层的卷积计算结果它是一个大小为的矩阵;
[0049]
步骤(5-5)用户将矩阵转化为三维张量目的是让用户能够在本地进行激活和池化的操作,并在下一轮的交互式计算中能够执行预处理操作,三维张量的转化方法具体如下:化方法具体如下:式中,表示矩阵中第h(m-1)+n行第t列的元素,表示张量第t个通道中第m行第n列的元素值,是一个大小为 h
×h×di+1
的张量;在本实例中,是一个大小为900
×
6的矩阵,是大小为 30
×
30
×
6的张量。
[0050]
为了更形象的展示对卷积计算的矩阵乘法变换,如图3所示,对于用户和模型f的第i+j层,即云终端的第j层的交互式计算,该层的未经预处理的输入x
i+j
,它是一个大小为3
×3×
3的三维张量,首先对它进行预处理,取云终端的第j层的卷积核中一个矩阵的大小,即2
×
2,在x
i+j
的每个通道上取2
×
2大小的矩阵并向量化,填入处理后的输入它是一个大小为4
×
12。云终端的第j层的卷积核有两个,它们是两个大小为2
×2×
3的三维张量,对第一个卷积核,沿通道方向将三个矩阵向量化为4
×
1的向量,并纵向拼接后填入权重矩阵w
i+j
的第1列,对第二个卷积核执行同样的操作,最终得到大小为12
×
2的权重矩阵。对w
i+j
和进行同态加密计算后得到大小为4
×
2的输出矩阵为进行下一轮的交互计算,
将它按列转化为两个矩阵,得到的输出是大小为2
×2×
2的张量,这与传统卷积计算的结果一致;
[0051]
步骤(5-6)用户从所述云终端下载偏置,并在本地对执行激活函数操作:式中:表示经过激活函数后的输出,b表示用户从云终端下载的偏置;
[0052]
步骤(5-7)用户在本地执行池化操作,由步骤(5-6)得到的结果,通过矩阵乘法的方式实现池化,完成与模型f的第i+1层,即云终端第1层的交互式计算,并将结果作为用户与模型f的第i+2层,即云终端第2层进行交互式计算的输入在本实施例中,模型 f第i+1层对进行池化的池化矩阵大小为2
×
2,那么经过池化后的大小为 15
×
15
×
6。
[0053]
步骤(6)全连接层由于不涉及到卷积操作,可利用步骤(5)同态加密的方式实现交互式的全连接层计算,和步骤五的区别在于,全连接层没有卷积核而是一个权重矩阵,用户在与第一个全连接层的交互计算中,数据预处理阶段,用户需要将待处理的三维的张量输入拍平为一个一维向量,在剩余的全连接层的交互式计算中,由于每层的输入都为向量,不需要进行输入的预处理。例如模型的第i+j层,即云终端的第j层是模型f第一个全连接层,它的输入它是一个大小为m
i+j
×ni+j
×di+j
的三维张量,在全连接层交互式计算的预处理过程中,对的每一个通道上的矩阵,逐行的转为一个向量并横向拼接,并将每个通道处理后的向量并横向拼接,得到预处理后是一个长度为m
i+jni+jdi+j
的行向量。在本实施例中,第10层是第一个全连接层,它的输入是一个大小为5
×5×
16的三维张量,经过预处理后得到大小为400的行向量,该层的权重矩阵w
i+1
,它是一个大小为400
×
120,经过用户在本地和云终端的同态加密计算后,最终得到第10层的输出它是一个长度为 120的向量。再经过第11、12层的全连接层计算后,得到预测模型的输出它是一个长度为5的向量,向量中的每个值代表了在“防摔倒报警系统”可能发生的一种情况。
[0054]
云终端最终得到图像分析的结果,并针对模型给出的特定输出结果,云端将控制智能家居设备做出相应的反应,在本实施例中,当模型输出显示家庭内有老人摔倒,即可启动报警装置提醒屋内的其他人员对老人实施救助。同时本发明提供的基于物联网的安全数据分析方法,还能在保护用户隐私不被云端获取的前提下,实现家电智能监控功能、家庭环境监测功能、家庭事故智能处理功能等,并实现上述功能的客户定制化、合并与关联,进一步提升功能泛化性。该数据分析方法采用本地和云端的交互式方法,本地运行成本低,照顾家庭有限的计算能力预算,便于部署更多大型模型,易于推广。
[0055]
在本技术所提供的实施例中,应该理解到,所揭露的方法,在没有超过本技术的精神和范围内,可以通过其他的方式实现。当前的实施例只是一种示范性的例子,不应该作为限制,所给出的具体内容不应该限制本技术的目的。
[0056]
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1