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 单元增加额外的硬
   176   177   178   179   180   181   182   183   184   185   186