Page 181 - 《软件学报》2021年第8期
P. 181
邹敏辉 等:基于木马的方式增强 RRAM 计算系统的安全性 2463
因此,为了放大神经元 T 通过突触 w 1 ,w 2 ,…,w r 对第 n+1 层的神经元的影响,我们在系统中嵌入移位寄存器
(SR),如图 4(b)所示.
为了保证木马极容易激活,由式(5)、式(6)可知,i ref1 和 i ref2 的间距应该足够小.在本文中,i ref1 和 i ref2 均设置为
0,因此,只有当 i Tri 为 0 时,T 的激活函数输出为 0,木马不激活;否则,木马激活.Trigger RRAM 单元的状态值可以
通过读写电路,我们可以通过调整 RRAM 单元的状态来决定木马是否能够被激活.
Trigger RRAM 单元处于禁止激活状态:当 i Tri 在 a i n− 1 为任意值时都为 0,木马不能被激活.由式(4)~式(8)可
知,Trigger 不能够激活木马神经元 T 时,Trigger RRAM 单元所处的状态为
+
i ∀∈ [1, ],g = g − i (10)
p
i
Trigger RRAM 单元处于允许激活状态:当 i Tri 在 a i n− 1 为任意值时( a 1 n− 1 ,a n− 2 1 ,...,a n− p 1 均为 0 除外)都不为 0,木马
被激活.Trigger 能够激活木马神经元 T 时,Trigger RRAM 单元所处的状态为
+
i ∀∈ [1, ], p g ≠ g − (11)
i i
3.2 设计Payload部分
一旦木马神经元被激活,如图 4(a)所示,木马突触就会将其激活率值传递给它所连接的每个神经元.我们将
−
+
−
+
gg
ˆ ,
木马突触 w 1 ,w 2 ,…,w r 映射到图 4(b)中右边 RRAM 交叉开关阵列中最下两行中的 RRAM 单元 ˆ , ˆ ,gg ˆ ,...,
2
1
2
1
−
+
ˆ
g ˆ ,g 中,让我们把这些 RRAM 单元称为 Payload RRAM 单元.为了使得木马神经元激活时,整个 RRAM 计算系
r
r
统不能正常使用,我们期望通过设置 w 1 ,w 2 ,…,w r 的值,使得网络模型所有的输入指向同一个指定输出标签.将突
*
*
触参数{w 1 ,w 2 ,…,w r }表示为ξ,用ξ 表示最优参数.假设目标标签预测输出向量是 V ,我们期望在木马神经元激
*
活时,网络模型的预测输出向量 V 总是等于向量 V .设计目标是如下目标函数:
*
*
ξ = argmin |V − V | (12)
ξ
损失函数如下所示:
*
L=|V −V| (13)
*
其中,L 表示损失量.我们使用梯度下降法来求解ξ ,梯度Δ通过以下等式计算:
∂ L
Δ = (14)
ξ ∂
请注意,我们的方法只需训练木马神经元 T 与第 n+1 层神经元连接的 r 个突触参数,不需要重新训练整个
神经网络的参数,因此效率很高.
3.3 木马的硬件开销
由上一节可知,在 RRAM 计算系统中实现神经元级别木马需要 RRAM 单元、SA 模块和 SR 模块.
(1) 假设在 RRAM 计算系统中,所有的 RRAM 交叉开关阵列的尺寸均为 H×W,其中,H 和 W 分别为 RRAM
交叉开关阵列的行数和列数.当参数矩阵的尺寸大于 RRAM 交叉开关阵列的尺寸时,需要将参数矩阵映射到多
个 RRAM 交叉开关阵列中.假设神经网络的第 n 层的参数矩阵需要映射到α n ×β n 个 RRAM 交叉开关阵列中.当
满足条件(15)时,表示有足够多的空余列容纳 Trigger RRAM 单元,此时,Trigger RRAM 单元不增加额外的硬件
开销:
W×α n ≥q+1 (15)
当不满足条件(15)时,系统必须多分配β n 个 RRAM 交叉开关阵列,此时,Trigger RRAM 单元增加额外的硬件
开销是β n 个 RRAM 交叉开关阵列.
假设神经网络的第 n+1 层参数矩阵需要映射到α n+1 ×β n+1 个 RRAM 交叉开关阵列中.当满足条件(16)时,表
示有足够多的空余行容纳 Payload RRAM 单元,此时,Payload RRAM 单元不增加额外的硬件开销:
H×β n+1 ≥2q+2 (16)
当不满足条件(16)时,系统必须多分配α n+1 个 RRAM 交叉开关阵列,此时,Payload RRAM 单元增加额外的硬