陈瑜霖,姚志强,2,金 彪,2,李 璇,2,蔡娟娟,熊金波,2
(1.福建师范大学计算机与网络空间安全学院,福建 福州 350117;2.福建省大数据分析与应用工程研究中心,福建 福州 350117)
近年来,随着大型数据集的可用性和硬件计算平台性能的不断提升,深度强化学习(deep reinforcement learning,DRL)得到了迅猛发展,并在解决各种复杂任务时表现出卓越的性能。例如机器人控制[1]、竞争视频游戏[2-4]和自动驾驶[5]。然而,DRL不仅需要大量的计算资源,还需要进行长时间的训练。此外,DRL的训练还受到许多限制,因为它需要在现实环境中进行评估和测试,需要设计合适的奖励函数来指导智能体的行为。因此,在实际应用中,人们需要考虑如何保护DRL模型的知识产权,以避免他人的侵权行为。
保护DRL模型的知识产权的一种直观想法就是为其添加水印。水印技术是保护多媒体版权的常用方法,已被广泛应用于保护数字图像、音频、视频等多媒体产品的版权以及验证多媒体数据的完整性[6-8]。根据嵌入提取水印的方式的不同,神经网络可以分为2种:白盒水印和黑盒水印。2017年,Uchida等[9]提出了第一个可以用于保护深度神经网络模型知识产权的白盒水印框架,成功地将数字水印技术从传统的多媒体领域拓展应用到深度学习领域。需要将水印嵌入到所选层的权重中,在验证模型的所有权时也需要获得整个模型以得到其中的权重信息。Fan[10]采用了另一种新的思路,是基于内部结构的白盒水印方法,在神经网络中加入新的一层来作为水印的载体,并向该层添加水印,Lou[11]直接将模型结构作为水印载体,模型的所有者生成独特的网络结构作为所有权的证据。Ong等[12]提出了针对与对抗网络的模型的保护方案,将水印嵌入生成器的标准化层,Lim[13]提出了针对循环神经网络模型的水印,使用Ong等[12]的方法将水印嵌入循环神经模型单元输出的隐层中。然而,白盒模型存在一定的局限性,例如在验证阶段必须获取可疑模型的内部信息,这在现实的应用中是难以实现的。在现实中,模型被盗的大多数情形是黑盒的,在黑盒情况中,模型所有者无法获取模型的内部权重和结构,只能使用接口查询验证模型的所有权。黑盒水印技术利用网络模型的冗余性,通过构建特殊的触发集同正常样本训练使得使得模型对于特定的触发数据输出错误的预定义标签[14-16],以此声明模型的所有权。Zhang等[17]研究了使用择与训练数据分布无关的图像、使用一些随机噪声和特定内容字符串作为触发模式的黑盒水印。Szyller等[18]提出了DAWN的方法,通过动态更改数据访问时的返回结果以抵抗模型窃取攻击。Xu等[19]将后门触发器用于GNN中从而保护GNN模型。然而,以上的工作大多是基于分类生成任务。在分类任务中,模型水印是通过触发集中的特殊图像使得模型输出预定义的标签,在生成任务中是使得模型输出的图像中携带隐藏的水印,再通过提取获得水印。而DRL模型是在与环境的交互中不断地学习状态对应的动作以及奖励值来学习到最优策略。保护DRL模型的水印方法仍然处于开始阶段,为了保护DRL模型,Behzadan[20]提出一种序列触发器水印,利用与训练和部署环境不相关的状态作为水印状态,并定义新的奖励函数和状态转移函数,以确保经过训练的代理按照特定顺序执行。Chen[21]提出的时间序列水印,解决了Vahid Behzadan使用额外的环境因而容易被敌手检测的缺陷,定义了一种无损状态,利用自然出现在训练和部署环境中的状态作为水印状态,并将非关键状态映射到特定动作进行识别。然而时间序列水印只记录水印状态自然发生时的动作,但不能保证水印状态会发生,为了保证水印状态的发生,Wang[22]提出了向环境的观测值注入对抗性的扰动嵌入水印。
为了使得水印的嵌入与验证更加简洁,并获得良好的水印性能,本文提出一种新的DRL模型水印框架DrlWF。DrlWF修改参与DRL模型训练的状态,使用原有环境进行水印嵌入。在水印嵌入时,本文通过在训练时修改水印状态对应的动作和奖励值以达到嵌入水印的效果,实现简单且在水印嵌入过程中模型不易崩溃;水印验证时,只需通过观察模型性能变化和水印动作执行情况,即可完成对模型所有权的验证。
强化学习决策过程可以描述为一个马尔科夫决策过程(Markov decision process,MDP)。在MDP中,环境可以被视为一组状态的集合,智能体可以采取一组动作来改变环境的状态,并获得一个奖励或代价信号。智能体的目标是通过在不同状态下采取不同的动作,从而最大化长期累计奖励。一个MDP可以被描述为一个五元组 (S,A,P,R,γ),其中,S是状态集合,每个状态表示环境的一种可能状态;A是动作集合,每个动作表示智能体在某个状态下可以采取的一种操作;P是状态转移概率函数,表示从一个状态转移到另一个状态的概率;R是奖励函数,表示智能体在某个状态下采取某个动作所获得的奖励或代价,γ是折扣因子,满足 0≤γ≤1,用于控制即时奖励和未来奖励之间的权衡,γ接近1 表示代理更重视未来奖励,而接近 0 表示代理眼光短浅,只关注即时奖励。在一个MDP中,智能体会根据当前的状态选择一个动作,然后执行该动作并观察到一个新的状态和一个奖励信号。智能体会不断地根据当前的状态和奖励信号更新自己的决策策略,以最大化长期累计奖励。在强化学习的过程中至少使用一个深度神经网络,即可称之为深度强化学习(DRL)。
图1 DRL模型水印框架Fig.1 DRL model watermark framework
一个良好的DRL水印应该满足以下要求:
(1)保真度。即向DRL模型中添加水印后不能影响模型在原有任务上的性能。具体地,训练一个智能体使其在没有触发水印的情况下的性能与标准模型的性能相当;当触发水印时尽可能地降低模型的性能。假设τ为一条轨迹,π为未嵌入水印模型的策略,将π作为基准策略,π*为嵌入水印模型后的策略。R(π,ε)为智能体在干净环境ε和策略π下得到的累计奖励值,如公式(1)[23]所示:
R(π,ε)=Eτ~p(τ/π,ε)[∑r(st,at)]。
(1)
模型所有者希望在干净环境ε中,策略π*能够实现与策略π相同的性能,如公式(2)[23]所示:
|R(π,ε)-R(π*,ε)|<ε1。
(2)
当环境中存在水印时,即最大化策略π在干净环境ε与策略π*在水印环境ε*的奖励差值,如公式(3)[23]所示:
max(R(π,ε)-R(π*,ε*))。
(3)
(2)可靠性。即要求策略π无法对水印环境ε*做出响应,意味着未嵌入水印模型的策略π对水印环境ε*不敏感,策略π在水印环境ε*和干净环境ε下的性能大致相同,如公式(4)[23]所示:
|R(π,ε)-R(π,ε*)|<ε2。
(4)
(5)
如图2所示,在DRL模型的正常训练过程中,智能体从环境中获得当前状态,基于当前的状态,智能体选择、执行一个动作并将其应用于环境中,进而导致环境的状态发生改变。执行动作后,智能体从环境中获得一个奖励。智能体根据观察到的状态,所采取的行动和获得的奖励来更新智能体的内部模型,最终使得智能体学会如何在给定状态下选择能获得最高累积奖励的动作。重复智能体与环境的交互过程,不断学习和优化其策略。
图2 智能体与环境的交互Fig.2 Interaction between agent and environment
本文的目标是向DRL模型中嵌入后门水印,并据此保护DRL模型的知识产权。在训练水印模型时,扮演“强攻击者”[23]的角色,拥有模型的完全控制权,可以访问训练过程中组件间的交互,并能够修改每个时间步的状态、动作和环境奖励。基于此,本文可以通过更改特定状态下的动作和奖励,实现将水印嵌入到DRL模型中,使模型能够在给定特定状态时做出预期的动作决策。
DrlWF主要包括2个阶段,分别是状态水印嵌入阶段和状态奖励修改阶段。在状态水印嵌入阶段,从标准的训练状态中随机选取若干状态,向被选中的状态中添加特定的水印;在状态奖励修改阶段,修改带有水印的状态的奖励值并且进行训练以使得智能体能够习得该水印。本文提出的水印嵌入伪代码见算法1。在训练过程中,对选中状态进行水印嵌入,并且修改该状态的动作为水印动作,然后将对应的奖励值r(s,a)设置为1。
算法1水印嵌入算法
输入:水印动作aw,水印Δ,环境env
输出:水印模型
(1) 初始化价值网络θv和策略网络θ
(2) 步骤step←0
(3)While当前步骤step<最大训练步数stepmaxdo
(4)for当前步数t←0到最大更新步数tmax:
(5)env产生状态st
(6)if状态st被选中then:
(7)st←Watermarking(st,Δ)
(8)at←πθ(st)
(9)if状态st被选中then:
(10)at←aw
(11)r←r(st,at)
(12)if状态st被选中then:
(13)r=1
(14)fort=tmaxdoneto0do
(15)Qt←rt+γQt+1
(16)At←Qt-Vt
(17) 更新θv和θ
(18)step←step+tmax
依据本文第三章实验结果可知,提出的DRL水印框架能够满足第2节中所有提及的水印要求,且相较于文献[21]的时间序列水印方案与文献[22]的对抗扰动水印而言,本文的水印嵌入过程更加简单,水印验证过程更加清晰。
在状态水印嵌入阶段,本文通过公式(6)将一个由水印Δ和系数λ组成的水印触发器嵌入至初始状态s。
(sw)i,j=(1-λi,j)·(st)i,j+λi,j·Δi,j。
(6)
实验过程中,将游戏画面中的每个状态的左上角3×3的区域内的λ固定为1,其他区域内的λ均为0。
完成状态水印嵌入后,接下来就是将水印嵌入DRL模型中。在此过程中,为了最大化策略π(aw/sw),本文修改状态动作对(sw,aw)的奖励值使得该水印状态所对应的水印动作具有更高的优势。具体的,首先需要在训练过程中修改状态对应的动作为水印动作以此来创建这些状态动作对:当状态s=sw时,将该状态的对应的动作a修改为水印动作aw,即(sw,aw),同时为了使模型能够学习到这个状态动作对,且避免模型认为该状态是一个良好状态从而使其他动作都会获得高奖励,将状态动作对(sw,aw)的奖励值r设置为1;当s≠sw时,不对动作及其奖励值进行修改。
为了实现向深度强化学习模型中嵌入水印,本文使用并行优势-演员-评论员算法(PAAC)[24],并使用雅达利游戏库[25]中的3个不同游戏(breakout、qbert、crazy climber)来评估水印嵌入效果。此外,通过鲁棒性实验对本文所提方法的鲁棒性进行了验证。实验在一台硬件配置为Intel 12600k CPU、32GB RAM和NVIDIA RTX 3060ti GPU,系统为Ubuntu22.04的机器上运行。
本文主要使用性能差距以及水印动作实现比例2个指标作为评估标准。
(1)性能差距。性能差距用于衡量带水印模型与标准模型之间的表现差异。在评估性能差距时,将带水印模型所需交互的所有状态设为已添加水印的状态,让带水印模型根据这些水印状态自主选择下一步动作,同时观察水印模型在标准状态下的表现。游戏结束时的累计奖励是衡量模型性能的关键指标。通过对比水印模型在水印状态下的累计奖励和标准模型在标准状态下的累计奖励,可以评估水印模型与标准模型之间的性能差距。这种对比有助于理解水印对模型性能的影响。
(2)水印动作实现比例。先前的工作均使用序列的一致性来验证模型所有权。为简化验证流程,提出将水印动作实现比例作为强化学习模型水印的另一个评价指标。仅有性能差距的比较并不足以说明模型的所有权,因为模型性能的下降只能说明后门使得模型的性能不佳,在此基础上若模型能够按照指定动作执行则能更加有效地验证模型的所有权。为了计算这一比例,首先统计带水印模型在水印状态下执行水印动作的比例,接着将该比例与未添加水印的模型在水印状态下执行水印动作的比例进行比较。通过这种对比,可以得到加入水印后的模型选择水印动作的实现比例。该指标有助于判断水印嵌入是否成功,以及水印是否对智能体的决策产生影响。
3.2.1 性能差距分析
图3—图5分别展示了breakout、qbert以及crazy climber共3个游戏模型在嵌入水印前后的性能差异。
(a )水印模型性能 (b )标准模型性能图3 breakout游戏模型性能Fig.3 Model performance in breakout
实验过程中,本文在8 000万个训练状态中,对20 000个状态进行水印处理,即仅使用了训练状态的0.025%进行水印处理。图3—图5中的(a)图展示了水印模型在水印状态和标准状态下的累计奖励值,当不使用水印状态时,模型表现出优秀的性能;而在使用水印状态时,各个模型在前40M训练状态前性能显著下降,符合预期。图3—图5中的(b)图展示了标准模型在水印状态下和标准状态下的累计奖励值,标准模型无法识别出水印状态,对水印状态无法做出特定的行为,标准模型在水印状态和标准状态的性能基本一致。
3.2.2 水印动作实现比例
图6—图8分别展示了breakout、qbert以及crazy climber共3个游戏模型的水印动作实现比例。
本文将动作2设置为水印动作,图6—图8中的(a)图为智能体的各个动作的分布,经过训练后的水印模型能够检测出99%以上的水印状态,并成功执行相应的水印动作。在非水印状态下,水印模型具有正常的动作分布,这意味着水印模型不会在非水印状态下产生异常的水印动作。图6—图8中的(b)图为水印模型在水印状态下的水印动作随着训练数量的趋势,各个智能体都在前40M训练数量中学习到了个水印。这表明本文的方法在保持模型性能的同时,成功地将水印嵌入到了DRL模型中。
3.2.3 鲁棒性
水印的鲁棒性指的是水印对攻击的抵抗力,即在攻击者尝试修改、破坏水印的情况下,水印是否还能够被有效地检测和提取出来。假设敌手在获得模型之后通过模型转换来适应攻击者自己的环境,本文重点考虑模型微调以及模型压缩2种攻击情形。
(1)模型微调是指在一个预训练模型的基础上,针对新的数据集(通常比原始预训练数据集更小)调整模型参数的过程。预训练模型通常在大规模数据集上进行训练,可以学到优秀的特征表示,适用于多种任务。然而,在实际应用中,为了获得更好的性能,需要针对特定任务进行模型微调。微调过程可以在预训练模型的基础上使用新数据集进行再训练,或者直接针对新任务进行调整。在实验过程中,本文针对每个游戏额外训练了2 000万个训练状态。
(3)模型压缩是一种缩小神经网络模型大小的技术,通常通过减少神经网络中参数的数量或降低其表示的位数来实现。该操作有助于降低模型在存储和传输过程中的开销,从而提高模型的效率和可用性。本文采用模型压缩的方法,将模型原来的32位浮点型参数转换为16位浮点型参数,显著减少模型的存储和传输开销。
表1展示了水印模型针对模型微调与压缩的鲁棒性结果,在模型压缩和模型微调之后,水印依旧保存在水印模型之中,在使用水印状态验证时,模型的累计奖励依旧会大幅下降,模型对水印状态所执行的水印动作百分比均达到了99%~100%,与水印模型的性能基本一致,显示了水印优越的鲁棒性。
表1 水印模型针对模型微调与压缩的鲁棒性结果Tab.1 Robustness results of the watermark model to model fine-tuning and compression
为了保护DRL模型的知识产权,本文提出了一种可用于保护DRL模型知识产权的水印框架DrlWF,通过在DRL的训练过程中向训练状态中添加水印,并为该水印状态指定水印动作与修改奖励值,使DRL模型能够学习到这个水印。实验结果表明,在水印状态下,水印模型的性能显著下降,而在标准状态下,水印模型与标准模型的性能与动作百分比基本一致。水印在经过模型压缩和微调后仍然保留在模型中,进而证明了水印的鲁棒性。该方法适用于所有使用图像作为状态的DRL模型。值得注意的是,使用图像作为状态的DRL模型已经成为现实世界中强化学习应用的主要方向,例如机器人控制、自动驾驶、无人机控制等。综上所述,本文所提出的DRL模型水印框架可以在保证模型性能的前提下,保护模型的知识产权,具有广泛的应用前景。