張穎君 陳 愷 周 賡 呂培卓 劉 勇 黃 亮
1(中國科學(xué)院軟件研究所可信計算與信息保障實驗室 北京 100190) 2(信息安全國家重點實驗室(中國科學(xué)院信息工程研究所) 北京 100195) 3(中國科學(xué)院大學(xué)網(wǎng)絡(luò)空間安全學(xué)院 北京 100049) 4(中國科學(xué)院大學(xué)計算機科學(xué)與技術(shù)學(xué)院 北京 100049) 5(奇安信科技集團股份有限公司 北京 100015)
數(shù)字水印[1]是嵌在其他數(shù)據(jù)(宿主數(shù)據(jù))中具有可鑒別性的數(shù)字信號或模式,同時不應(yīng)影響宿主數(shù)據(jù)的可用性[2].水印技術(shù)的應(yīng)用主要包括版權(quán)保護、數(shù)據(jù)監(jiān)控和數(shù)據(jù)跟蹤等[3].隨著計算機技術(shù)的發(fā)展和需要保護對象的變化和增加,數(shù)字水印技術(shù)經(jīng)歷了多媒體水印、軟件水印到機器學(xué)習(xí)算法/模型水印的發(fā)展過程.
最早,數(shù)字水印主要針對電子廣告、數(shù)字圖書、網(wǎng)絡(luò)音視頻等數(shù)字產(chǎn)品內(nèi)容進行版權(quán)保護.這些多媒體數(shù)字產(chǎn)品往往可以通過低廉的成本進行未授權(quán)的復(fù)制或傳播.因此,通過添加水印可以保護其在非法拷貝、再次傳播和盜用時的知識產(chǎn)權(quán)[2].多媒體水印是主要針對圖像、視頻、音頻、文本文檔等媒體的水印技術(shù).多媒體水印可由多種模型構(gòu)成,如隨機數(shù)字序列、數(shù)字標(biāo)識、文本以及圖像等.從穩(wěn)健性和安全性考慮,常常需要對水印進行隨機化以及加密處理[4].多媒體水印中常用到的2種關(guān)鍵技術(shù)包括擴頻水印和量化水印[5].擴頻水印[6]是通過擴頻通信技術(shù),將載體信號視為寬帶信號,水印信號視為窄帶信號,把一個水印的能量譜擴展到很寬的頻帶中,從而分配到每個頻率分量上的水印信號能量較小且難以檢測.量化水印[7-8]根據(jù)水印信息的不同將原始載體數(shù)據(jù)量化到不同的量化區(qū)間,而檢測時根據(jù)數(shù)據(jù)所屬的量化區(qū)間來識別水印信息.
隨著軟件應(yīng)用的普及,軟件代碼的重用問題越發(fā)突出,而軟件水印是解決軟件版權(quán)問題的重要手段.軟件水印主要是指在代碼中植入一個特殊的標(biāo)識符(水印),該水印可以承載軟件作者、版權(quán)等信息,事后通過特殊的提取器將其從被告軟件中識別或抽取出來作為證據(jù)以達到檢測目的[9].根據(jù)水印的加入位置,軟件水印可以分為代碼水印和數(shù)據(jù)水印[10].代碼水印隱藏在程序的指令部分中,而數(shù)據(jù)水印則隱藏在包括頭文件、字符串和調(diào)試信息等數(shù)據(jù)中.根據(jù)水印被加載的方式,軟件水印可分為靜態(tài)水印和動態(tài)水印.靜態(tài)水印[11]主要是將水印植入到可執(zhí)行程序的代碼或數(shù)據(jù)中,其提取過程不需要運行程序.通過靜態(tài)分析完成識別或提取,主要分為代碼替換法[12]、靜態(tài)圖法[13]和抽象解釋法[14]等.動態(tài)水印是將水印植入到程序的執(zhí)行過程或運行狀態(tài)中,即根據(jù)程序某個時刻運行的狀態(tài)進行信息的編碼,主要包括基于線程[15]、基于圖[16]和基于路徑[17]等水印技術(shù).
近幾年,機器學(xué)習(xí)(machine learning, ML),尤其是深度學(xué)習(xí),已成為計算機領(lǐng)域發(fā)展最迅速的技術(shù)之一[18],越來越多的領(lǐng)域用到了機器學(xué)習(xí)相關(guān)模型和算法.機器學(xué)習(xí)方法主要通過統(tǒng)計技術(shù)構(gòu)建數(shù)據(jù)模型,這些數(shù)據(jù)模型可以從數(shù)據(jù)樣本(訓(xùn)練集)中進行學(xué)習(xí),訓(xùn)練完后可以用于后續(xù)的推斷.目前,鑒于有效訓(xùn)練這些模型需要大量的專業(yè)知識、數(shù)據(jù)和計算資源,訓(xùn)練后的模型可以認(rèn)為是重要的資產(chǎn),并作為服務(wù)MLaaS(machine learning as a service)提供給用戶使用[19].一種典型的方式是MLaaS平臺為用戶提供應(yīng)用程序編程接口(application program-ming interface, API),該接口與位于云服務(wù)中經(jīng)過訓(xùn)練的專有模型進行交互,用戶通過API可以使用模型,并支付相關(guān)費用.雖然這種服務(wù)方便了開發(fā)人員,但也成為惡意用戶關(guān)注的重點[20].他們企圖非法使用甚至竊取相關(guān)機器學(xué)習(xí)模型及數(shù)據(jù).此外,一些公司將機器學(xué)習(xí)模型直接進行出售,但是又擔(dān)心該模型會被非授權(quán)轉(zhuǎn)售或泄露.因此,水印概念被擴展到機器學(xué)習(xí)模型領(lǐng)域,嵌入需保護的模型,并用來保護機器學(xué)習(xí)模型,尤其是訓(xùn)練成本較高的神經(jīng)網(wǎng)絡(luò)模型.一旦模型擁有者發(fā)現(xiàn)可能被竊取的模型,就可以通過隱藏在模型中的水印信息來驗證其是否被盜用,以此來保護模型的版權(quán).本文將重點對近年來神經(jīng)網(wǎng)絡(luò)相關(guān)水印技術(shù)展開綜述.
當(dāng)前的機器學(xué)習(xí)水印主要針對深度神經(jīng)網(wǎng)絡(luò)(deep neural network, DNN)進行研究,包括卷積網(wǎng)絡(luò)[21]、生成對抗網(wǎng)絡(luò)[22]以及用于自然語言處理[23]等.因此,本文將重點對神經(jīng)網(wǎng)絡(luò)水印相關(guān)技術(shù)展開介紹.
水印用于保護某種資產(chǎn).傳統(tǒng)水印保護紙質(zhì)印刷品(如書籍)、數(shù)字媒體、軟件資產(chǎn)等.我們以書籍為例,圖1展示了水印的植入過程.在一本正版書籍上,出版社貼上水印,從而保證了該書籍為正版書籍.通常情況下,書籍水印應(yīng)該滿足于4條基本性質(zhì),使得攻擊者(盜版商)難以對其進行復(fù)制,從而保護正版書籍的版權(quán).
Fig. 1 Implant a watermark (for books)圖1 水印的植入(用于書籍)
1) 保真度.即添加的水印不應(yīng)影響原有書籍的閱讀.
2) 安全性.即水印本身不易偽造,否則盜版書籍也能貼上相似的水印從而欺騙讀者. 然而,在媒體水印安全性方面,攻擊者可以在媒體上嵌入類似的水印,從而使得攻擊者也可以宣稱該媒體的擁有權(quán).因此,媒體水印的高安全性很難得到保障.
3) 魯棒性.即水印不易去除.如強行去除后會損壞水印本身.隨著保護對象的改變,水印會增加不同的性質(zhì)或需求,或者對原有特性進行些許改變.例如在保護多媒體水印時,如強行去除后會損壞媒體本身.注意攻擊者此時不關(guān)心水印是否會損壞;但如果媒體損壞,則會影響用戶觀看/收聽媒體的體驗.
在保護軟件等代碼時,考慮到軟件本身的代碼易被去除,魯棒性很難達到.因此多數(shù)研究人員嘗試隱藏軟件水印.即增加隱蔽性特性.
4) 隱蔽性.即水印隱藏在軟件中,不易被發(fā)現(xiàn),通過隱蔽性達到不易去除的效果.
表1對比了多種被保護對象以及其對水印相關(guān)特性的需求.
Table 1 The Requirement of Different Protection Objects for Watermark Characteristics
表1中第5列是神經(jīng)網(wǎng)絡(luò)模型水印的相關(guān)需求.典型地,加入模型的水印不應(yīng)該影響原始模型的準(zhǔn)確性(保真度).水印本身不易偽造,否則攻擊者也可以宣稱對模型的所有權(quán).水印應(yīng)該足夠魯棒,不易被移除或者破壞.但考慮到若模型被發(fā)現(xiàn)后易被移除,因此隱蔽性也常常作為模型擁有者考慮的因素.
神經(jīng)網(wǎng)絡(luò)是一種模仿動物神經(jīng)網(wǎng)絡(luò)行為特征,進行分布式并行信息處理的算法數(shù)學(xué)模型.這種網(wǎng)絡(luò)依靠系統(tǒng)的復(fù)雜程度,通過調(diào)整內(nèi)部大量節(jié)點之間相互連接的關(guān)系,從而達到處理信息的目的[24].
DNN[25]與傳統(tǒng)的單層神經(jīng)網(wǎng)絡(luò)不同,是由多個隱藏層組成.這種基于層次結(jié)構(gòu)的結(jié)構(gòu)使其能夠處理大量的高維數(shù)據(jù).通常認(rèn)為,在DNN中堆疊更多層可以使用戶從輸入數(shù)據(jù)中識別和提取更復(fù)雜的特征.大量多樣的、信息豐富的訓(xùn)練數(shù)據(jù)對于DNN的成功至關(guān)重要.此外,還需要進行大量的訓(xùn)練來找到合適的網(wǎng)絡(luò)結(jié)構(gòu)和參數(shù).如圖2所示:
Fig. 2 Deep neural network圖2 深度神經(jīng)網(wǎng)絡(luò)
如圖2所示,深度神經(jīng)網(wǎng)絡(luò)一般由輸入層,隱藏層和輸出層組成.輸入層和輸出層是單層的,而隱藏層可以根據(jù)信號處理的復(fù)雜程度擴展到多層算法.每個層包含多個節(jié)點,并且僅對相鄰層施加效果.
神經(jīng)網(wǎng)絡(luò)可以被嵌入后門:給定這類神經(jīng)網(wǎng)絡(luò)一個或一組特殊的實例(通常稱為觸發(fā)器Trigger),神經(jīng)網(wǎng)絡(luò)執(zhí)行分類任務(wù)時,會執(zhí)行特殊的分類任務(wù),將特殊的實例分類到預(yù)設(shè)的目標(biāo)標(biāo)簽中(通常情況下會違背用戶的感知)[26].后門攻擊可能引發(fā)很多安全問題,例如自動駕駛模型一旦被嵌入后門[27],則當(dāng)遇到某個特殊圖案時,很可能發(fā)生交通意外.
神經(jīng)網(wǎng)絡(luò)后門原理如圖3所示:
圖3顯示了一個后門攻擊的例子.觸發(fā)器是右上角的白色正方形,目標(biāo)標(biāo)簽為“car”.在訓(xùn)練過程中,修改一部分訓(xùn)練集使其具有觸發(fā)器印記,并將其對應(yīng)的標(biāo)簽指定為目標(biāo)標(biāo)簽.訓(xùn)練好的模型將會把帶有觸發(fā)器的樣本識別為目標(biāo)標(biāo)簽,同時仍能正確識別良性圖像的標(biāo)簽.
神經(jīng)網(wǎng)絡(luò)后門攻擊(或植入)主要通過2種方式實現(xiàn):
1) 主要通過對訓(xùn)練集進行中毒攻擊實現(xiàn)[27-29]:通過創(chuàng)建小部分后門觸發(fā)數(shù)據(jù)集,滿足預(yù)設(shè)后門條件——該部分?jǐn)?shù)據(jù)集通過神經(jīng)網(wǎng)絡(luò)輸出攻擊者指定的結(jié)果;然后將觸發(fā)數(shù)據(jù)集加入到正常訓(xùn)練集中一起進行訓(xùn)練;最終訓(xùn)練后的神經(jīng)網(wǎng)絡(luò)分類結(jié)果中包含后門.該方法主要用于在訓(xùn)練階段之前,通過調(diào)整相關(guān)參數(shù)或采用替代模型,完成攻擊[26].
2) 通過對訓(xùn)練后神經(jīng)網(wǎng)絡(luò)進行調(diào)整加入后門.文獻[30]先將找到神經(jīng)網(wǎng)絡(luò)影響較大的某個模式(也稱為trojan trigger),繼而通過逆向攻擊獲得該模型的部分訓(xùn)練集數(shù)據(jù),最后使用該模式結(jié)合逆向得到的訓(xùn)練集進行再次訓(xùn)練.該方法可以不使用模型原始的訓(xùn)練集進行后門的植入.
在神經(jīng)網(wǎng)絡(luò)后門基礎(chǔ)上,文獻[31]提出將后門用作神經(jīng)網(wǎng)絡(luò)水印的方法,實現(xiàn)了對神經(jīng)網(wǎng)絡(luò)版權(quán)的保護(詳見第2節(jié)).神經(jīng)網(wǎng)絡(luò)后門的植入相對容易,但發(fā)現(xiàn)和移除卻非常困難.針對神經(jīng)網(wǎng)絡(luò)后門移除,文獻[32]提出了一個分2步的過程來刪除后門.該方法首先修剪網(wǎng)絡(luò),然后對修剪的網(wǎng)絡(luò)進行微調(diào),可以成功地從不同的深度神經(jīng)網(wǎng)絡(luò)實現(xiàn)中刪除后門.文獻[33]可以識別后門并重建可能的觸發(fā)器,主要通過輸入過濾器識別具有已知觸發(fā)條件的輸入、基于神經(jīng)元修剪的模型修補算法和基于無學(xué)習(xí)的模型修補算法來清除后門觸發(fā)器.通常情況下,對于基于后門的神經(jīng)網(wǎng)絡(luò)水印,文獻[32-33]中移除方法是其重要的威脅.
神經(jīng)網(wǎng)絡(luò)后門和基于其的水印都是利用神經(jīng)網(wǎng)絡(luò)的過度參數(shù)化來學(xué)習(xí)多個任務(wù).非法用戶可以將后門用于惡意目的(例如將駕駛過程中的“停止”標(biāo)志誤分類為“限速”標(biāo)志),但合法用戶可以利用水印防止其部署模型被非法盜用.
剪枝(pruning)、蒸餾(distillation)與微調(diào)(fine-tuning)是模型壓縮中常用的方法[34].它們通過刪除不重要的參數(shù)和修剪神經(jīng)元之間的連接來實現(xiàn).這會對水印的魯棒性造成影響,因此也常用來攻擊水印(具體參見3.1節(jié)介紹).同時,由于微調(diào)可以對模型進行修改,因此也常用來嵌入水印(具體參見2.4節(jié)介紹).
模型剪枝[2]主要用來刪除網(wǎng)絡(luò)中冗余參數(shù),降低網(wǎng)絡(luò)復(fù)雜度,從而提高網(wǎng)絡(luò)泛化能力,并防止過擬合[35].通常用于模型壓縮,以生成更小,內(nèi)存效率更高和執(zhí)行效率更高的模型,且損失誤差可忽略不計.通常,它通過在不更改網(wǎng)絡(luò)結(jié)構(gòu)的情況下將部分神經(jīng)元歸零,特別是關(guān)注于神經(jīng)網(wǎng)絡(luò)中連接較少,不重要的神經(jīng)元.該方法不涉及任何重新訓(xùn)練,那些缺乏訓(xùn)練能力的攻擊者可以使用模型剪枝來破壞其竊取的模型中的嵌入的水印,極有可能會影響水印提取/檢測.
Fig. 4 Neural network pruning圖4 神經(jīng)網(wǎng)絡(luò)剪枝
Fig. 5 Three steps to DNN watermark圖5 DNN水印3個步驟
蒸餾[36],其目的是將一個大型網(wǎng)絡(luò)的知識轉(zhuǎn)移到另一個小型網(wǎng)絡(luò)上,小型網(wǎng)絡(luò)性能接近于大網(wǎng)絡(luò)的性能,2個網(wǎng)絡(luò)可以是同構(gòu)或者異構(gòu).做法是先訓(xùn)練一個教師網(wǎng)絡(luò),然后使用這個教師網(wǎng)絡(luò)的輸出和數(shù)據(jù)的真實標(biāo)簽去訓(xùn)練學(xué)生網(wǎng)絡(luò).通常攻擊者可以不斷查詢大網(wǎng)絡(luò),得到輸出結(jié)果,針對一些異常輸出結(jié)果(可能是后門水印觸發(fā)結(jié)果),攻擊者可以剔除或者重新打標(biāo)簽,利用這些數(shù)據(jù)和真實標(biāo)簽訓(xùn)練小模型,最終得到清除水印的模型.然而這種攻擊往往針對一些有足量訓(xùn)練資源的攻擊者.
微調(diào)(fine-tuning)是遷移學(xué)習(xí)中常用的調(diào)參方法.遷移學(xué)習(xí)是將在解決一個問題時獲得的知識應(yīng)用到解決另一個不同但相關(guān)問題中,目的是在新的任務(wù)中獲得更好的學(xué)習(xí)效果[37].微調(diào)主要是應(yīng)用于神經(jīng)網(wǎng)絡(luò)的遷移,通過微調(diào)可以在類似任務(wù)之間進行轉(zhuǎn)換,但是在無關(guān)領(lǐng)域之間可能會失敗[38].模型微調(diào)這種攻擊包括重新訓(xùn)練原始模型以更改模型參數(shù)并找到新的局部最小值,同時保持準(zhǔn)確性[39].
本節(jié)將針對深度神經(jīng)網(wǎng)絡(luò)水印基本概念、技術(shù)對比等方面展開介紹.
神經(jīng)網(wǎng)絡(luò)水印添加過程主要是通過在模型中添加一個額外的訓(xùn)練目標(biāo)來注入水印.如1.1節(jié)所述,神經(jīng)網(wǎng)絡(luò)水印加在神經(jīng)網(wǎng)絡(luò)模型上,盡可能滿足表1中保真度、安全性、魯棒性和隱蔽性等需求.圖5顯示了神經(jīng)網(wǎng)絡(luò)水印典型應(yīng)用場景中的3個步驟,包括生成水印、嵌入水印和驗證水印.
生成水印是指模型所有者設(shè)計特殊的水印形式,例如一個比特串或者一些經(jīng)過特殊設(shè)計的訓(xùn)練樣本,以便模型在驗證水印階段能夠以某種特殊的方式驗證水印的存在性.嵌入水印是指將生成的水印信息插入到神經(jīng)網(wǎng)絡(luò)模型中.在驗證水印時,需要輸入特定數(shù)據(jù),然后觀察模型的反饋或者輸出,與預(yù)期結(jié)果進行匹配,從而驗證水印的存在性.
圖5中,首先DNN模型所有者為想要保護的模型生成定制的水印和預(yù)定義的水印觸發(fā)條件①.在生成水印后,該框架通過訓(xùn)練將生成的水印嵌入到目標(biāo)DNN中②.嵌入后,新生成的模型能夠在給定水印觸發(fā)條件的情況下進行水印的驗證③.例如在模型被盜用并部署來提供服務(wù)時,模型所有者可以利用水印觸發(fā)條件作為輸入來檢查服務(wù)的輸出,從而進行水印的驗證,向可信第三方證明該模型的所有權(quán).
目前市場上的服務(wù)多以深度神經(jīng)網(wǎng)絡(luò)為主,且其結(jié)構(gòu)復(fù)雜,保護價值相對較高,因此,國內(nèi)外研究工作多圍繞深度神經(jīng)網(wǎng)絡(luò)展開,本文也主要側(cè)重于深度神經(jīng)網(wǎng)絡(luò)水印的研究.
2017年Uchida等人[21]發(fā)表基于白盒的深度神經(jīng)網(wǎng)絡(luò)水印,通過將比特串嵌入模型進行水印植入,但是由于需要知道深度神經(jīng)網(wǎng)絡(luò)模型參數(shù)等具體細節(jié)才能進行水印驗證.因此,在實際應(yīng)用中受限較多.此后,很多研究人員開始展開黑盒水印的研究,提高水印的實用性.
深度神經(jīng)網(wǎng)絡(luò)水印相關(guān)技術(shù)已經(jīng)得到多方面的發(fā)展,本文將對深度神經(jīng)網(wǎng)絡(luò)水印技術(shù)從多個維度進行對比,如表2所示:
Table 2 The Comparison of DNN Watermarking Technology表2 DNN水印技術(shù)對比
根據(jù)表2,我們按照DNN模型是否公開,分為白盒水印和黑盒水印2類進行介紹和對比分析.白盒水印和黑盒水印主要是根據(jù)在水印插入和驗證時是否需要獲取模型本身進行劃分.具體地,白盒水印是指需要獲取模型相關(guān)參數(shù);黑盒水印是指水印的執(zhí)行過程不需要訪問模型本身,該方法主要通過機器學(xué)習(xí)服務(wù)中API對黑盒水印進行提取測試[20].
白盒水印是將生成的水印信息嵌入到DNN模型參數(shù)中[21,40-41],然后從模型中提取標(biāo)記進行驗證.
文獻[21]是較早提出的水印方案,該方案通過顯式的水印來保護DNN模型的知識產(chǎn)權(quán).作者將水印解釋為T位的字符串{0,1}T,為了將其包含在模型中,使用了包含參數(shù)正則化器(parameter regularizer)的組合損失函數(shù).該正則化器在某些模型參數(shù)上施加統(tǒng)計偏差,以表示水印.與文獻[21]將水印嵌入到模型的靜態(tài)內(nèi)容不同,文獻[40]提出將字符串嵌入到不同網(wǎng)絡(luò)層的概率密度函數(shù)(pdf)中.由于水印信息被嵌入DNN的動態(tài)內(nèi)容中.生成水印同時依賴于數(shù)據(jù)和模型,即只能通過將特定的輸入數(shù)據(jù)傳遞給模型來觸發(fā),使得水印更加靈活且不易被檢測.然而,這2種方法都會導(dǎo)致水印權(quán)重的分布發(fā)生變化.文獻[41]基于有水印和無水印模型權(quán)重的不同,提出了一種屬性推理攻擊,能夠檢測出文獻[21]和文獻[40]提出2種方法的水印.在此基礎(chǔ)上,文獻[41]又提出了一種基于生成對抗網(wǎng)絡(luò)(GAN)的白盒水印方法,使得最終的參數(shù)分布與無水印版本無法區(qū)分,因此很難被檢測出來.3個方法都是針對模型而非某個用戶添加水印,因此無法判斷以用戶為單位分發(fā)的模型是否泄漏版權(quán).針對多用戶的情況,文獻[42]提出水印不應(yīng)只取決于模型本身,而是由模型和用戶共同確定.同時,提出了一種端到端的共謀安全水印框架.它為每個用戶分配一個唯一的二進制代碼矢量(也稱為指紋),在保證準(zhǔn)確性的前提下,將指紋信息嵌入DNN權(quán)重的概率分布中,能夠有效地跟蹤每個用戶模型的使用情況.此外,盡管一些方案在抵御水印去除攻擊時保持了較高的魯棒性,但是未解決敵手的欺詐性所有權(quán)聲明.即如果敵手使用被稱作歧義攻擊的方式,為模型偽造額外的水印,此時原始水印和新增水印都可以被驗證程序檢測,則無法判斷模型所有權(quán)的歸屬.
由于白盒水印在驗證環(huán)節(jié)需要模型擁有者知道可疑模型的內(nèi)部細節(jié)(如結(jié)構(gòu)、參數(shù)等),才能提取其完整水印,并與嵌入的水印對比位錯誤來完成驗證,因此適用性受到了很大限制.因此,有學(xué)者提出了以黑盒的方式為模型添加水印的方法,從而在無需知曉模型參數(shù)等細節(jié)的情況下進行水印的驗證.
文獻[31]提出了在黑盒場景下,將后門技術(shù)應(yīng)用于所有權(quán)保護的水印方法.通過在模型的訓(xùn)練或微調(diào)的過程中,模型擁有者將抽象樣本(與訓(xùn)練樣本具有不同分布)作為后門樣本加入模型訓(xùn)練集,如此保證模型在原始任務(wù)上的準(zhǔn)確率,抽象樣本作為后門水印進行所有權(quán)的認(rèn)證.與此同時,通過commit加密方法生成的密鑰進一步保證了水印在公開場景下驗證所有權(quán).相比于文獻[31],文獻[43]提出了基于文本觸發(fā)器、噪聲、不相關(guān)樣本的后門樣本方法,通過特定觸發(fā)器來觸發(fā)后門水印驗證所有權(quán).在此基礎(chǔ)上,為了將后門技術(shù)應(yīng)用于嵌入式系統(tǒng),文獻[44]提出了一種保護嵌入式系統(tǒng)神經(jīng)網(wǎng)絡(luò)模型的所有權(quán)的水印方法,將由比特數(shù)組生成的特定信息(mask)作為觸發(fā)器設(shè)計后門水印.文獻[31,43]所提出的方法只能實現(xiàn)0比特(zero-bit)水印嵌入,而白盒水印能夠嵌入更多位的信息.為提升水印的容量,文獻[39]提出了多比特(multi-bit)的黑盒水印方法,作者提出了一種模型相關(guān)的編碼方案,將所有者的二進制簽名包含在輸出激活中作為模型的水印.
上述基于模型后門的水印方案中,分類帶有錯誤標(biāo)簽的關(guān)鍵樣本,會不可避免的對模型在原始任務(wù)上的決策邊界產(chǎn)生影響.文獻[45]提出了為關(guān)鍵樣本新增標(biāo)簽的方法,嘗試設(shè)計不會扭曲原始決策邊界的水印.考慮到部分模型水印應(yīng)對剪枝微調(diào)并不具備很強的魯棒性,文獻[46]提出了一種指數(shù)加權(quán)的后門水印方法,將后門水印對參數(shù)的影響施加在較大值的權(quán)重參數(shù)上(指數(shù)加權(quán)實現(xiàn)),保證水印在剪枝微調(diào)更具魯棒性.同樣,為了增加應(yīng)對蒸餾攻擊的魯棒性,文獻[47]提出的水印部署在模型的預(yù)測API中,通過改變客戶端的預(yù)測響應(yīng)來動態(tài)地為部分查詢添加水印.
但是,先前水印[31,43]中的后門樣本的空間很大,由于神經(jīng)網(wǎng)絡(luò)能夠接受增量訓(xùn)練和微調(diào),攻擊者可以基于此特性構(gòu)造對抗樣本,適當(dāng)嵌入自己的水印來聲明此神經(jīng)網(wǎng)絡(luò)的所有權(quán),但這是一種偽造的所有權(quán).文獻[48]提出了一種空嵌入(null embedding)的方法,將水印包含在模型的初始訓(xùn)練中.由于空嵌入不依賴于增量訓(xùn)練,只能在初始化時期訓(xùn)練為模型,因此對手很難再嵌入自己盜版水印.文獻[31,40,43-44]中后門水印和干凈樣本的數(shù)據(jù)分布具有很大的差異,隱蔽性較弱.因此,文獻[49]提出了一種通過編碼器生成盲(blind)的后門水印方法,能夠躲避人肉眼或部分檢測器的檢測,更具隱蔽性.
除了應(yīng)用后門水印來做黑盒情境下所有權(quán)驗證,文獻[50]提出對抗樣本作為水印的方法.然而由于對抗樣本的遷移性[31],在沒有此水印的模型上,對抗樣本也可能會以較高概率被判別錯誤,被誤識別為水印,從而發(fā)生誤報.
由此可見,當(dāng)前DNN水印方法中,白盒水印需要對模型參數(shù)進行訪問和驗證,應(yīng)用中受限較多.黑盒水印只需要通過API訪問相關(guān)服務(wù)來驗證深度神經(jīng)網(wǎng)絡(luò)的所有權(quán)[53],目前應(yīng)用較為廣泛.
攻擊者對于機器學(xué)習(xí)水印的攻擊多是圍繞著表1中的魯棒性、隱蔽性和安全性3個特性展開,但同時攻擊應(yīng)保持原有模型的保真度(攻擊者不愿意失去原有模型的準(zhǔn)確性,因其也需要使用去除水印后的模型進行服務(wù)).分別對其展開論述,如表3所示.為了方便描述,形式化地,我們定義原有未含水印的模型是M,水印為W,模型M的擁有者O將W嵌入M得到MW,攻擊者試圖偽造W.
Table 3 The Comparison of DNN Attack Methods表3 DNN水印攻擊方法對比
魯棒性(robustness)指水印不易去除.如強行去除后會損壞模型的保真度.攻擊者的目標(biāo)是在保持一定保真度的情況下,使得模型水印失去其作用,即模型擁有者O無法確認(rèn)模型中水印的存在.一個簡單的方法去除模型中的水印即重訓(xùn)練一個新的模型,但該方法需要大量的訓(xùn)練數(shù)據(jù)和計算能力.若攻擊者有此能力,無需再剽竊其他人的水印.因此攻擊者嘗試使用少量的訓(xùn)練樣本甚至不使用訓(xùn)練樣本進行水印的去除.
常用的技術(shù)包括微調(diào)(fine-tuning)[32,54]、剪枝(pruning)[32,43,46]和蒸餾(distill)[47,55]等.這幾類方法的基本思想是通過對含有水印的模型MW進行部分調(diào)整,嘗試去除水印W;但考慮到模型本身的保真度可能下降,因此仍然需要拿出部分帶有標(biāo)簽的數(shù)據(jù)(如訓(xùn)練集或者測試集中的數(shù)據(jù))對模型進行訓(xùn)練,從而盡量使模型恢復(fù)到原有的準(zhǔn)確性.具體來說:
1) 微調(diào).微調(diào)方法不對原始模型的結(jié)構(gòu)進行操作,直接采用帶有標(biāo)簽的數(shù)據(jù)進行模型的重訓(xùn)練.考慮到模型本身包括2部分任務(wù)(水印任務(wù)W和原始任務(wù)T),而重訓(xùn)練僅使用T相關(guān)的數(shù)據(jù)進行訓(xùn)練.因此隨著訓(xùn)練的進行,原始W會在模型中逐漸遺忘[30],但T會盡量保持不變或增強.從而使得模型中的W逐漸去除.這類方法被對水印[31]具有一定效果.
2) 剪枝.剪枝方法通過改變模型結(jié)構(gòu),從而迫使原始模型“遺忘”部分已有的任務(wù)(包括水印任務(wù)W和原始任務(wù)T).但同時使用訓(xùn)練數(shù)據(jù)進行任務(wù)T的增強.改變模型結(jié)構(gòu)的常用方法包括剪神經(jīng)元和剪邊.前者直接去除神經(jīng)元(通常選擇任務(wù)T中激活值最小的神經(jīng)元[32]);后者對神經(jīng)元間的邊進行修建[62],通常也將神經(jīng)網(wǎng)絡(luò)中的權(quán)重參數(shù)的絕對值小的參數(shù)(被認(rèn)為是對任務(wù)T不重要的參數(shù))值置0,修剪連接.這類方法對部分類型的W會有一定效果.但事實上,由于神經(jīng)網(wǎng)絡(luò)的難以解釋性,任務(wù)W和T激活的神經(jīng)元很難區(qū)分,因此文獻[32,62]等剪枝方法經(jīng)常對任務(wù)T具有較大影響.
3) 蒸餾.蒸餾方法常用于將大型網(wǎng)絡(luò)使用小型網(wǎng)絡(luò)進行功能性替代(如選擇不同的網(wǎng)絡(luò)或者更為簡化的網(wǎng)絡(luò))[55],在替代過程中保持原始任務(wù)T,但不對W進行保存,因此較大概率能夠去除T.這類方法可以看作是剪枝的衍生,但可能需要更多地訓(xùn)練數(shù)據(jù)集,否則可能對原始模型T的準(zhǔn)確性造成影響.
4) 其他方法.現(xiàn)有部分方法將微調(diào)、剪枝、蒸餾3種方法進行結(jié)合,如fine-pruning[32]方法,融合了剪枝和微調(diào),先進行神經(jīng)元的剪枝,然后進行微調(diào).也有部分方法進行針對性的攻擊,如知曉神經(jīng)網(wǎng)絡(luò)M中某一層含有水印[21],攻擊者可對這層進行重新初始化再訓(xùn)練.
隱蔽性(stealthiness)指水印隱藏在模型中,不易被發(fā)現(xiàn),通過隱蔽性達到不易去除的效果.從攻擊者角度,可嘗試發(fā)現(xiàn)水印,從而移除水印或者宣稱對水印的所有權(quán).隱蔽性水印的設(shè)計被用來防止此類攻擊.
目前有2類方法可以進行隱蔽性的攻擊:1)發(fā)現(xiàn)模型水印(尤其是后門類水印)的觸發(fā)條件異常;2)發(fā)現(xiàn)水印中模型參數(shù)的異常.以圖片分類任務(wù)為例,前者的任務(wù)是發(fā)現(xiàn)帶有觸發(fā)圖案的圖片與其他正常圖片分布上的區(qū)別.例如文獻[31]中提到可以使用抽象圖案作為觸發(fā)圖片,易被攻擊者發(fā)現(xiàn)與其他圖片的區(qū)別,從而進行過濾,導(dǎo)致該觸發(fā)圖片無法有效對黑盒狀態(tài)下的模型進行測試.文獻[43]雖然將觸發(fā)圖案貼在正常的圖片中或者使用分布不同的圖案或者噪點圖案等,但仍然可以被細致的分析發(fā)現(xiàn)其與正常圖片的不同.文獻[49]設(shè)計盲水印,使用編碼器和判別器設(shè)計與正常圖片類似且分布也類似的觸發(fā)圖片,使其難以被檢測.
后者嘗試在模型中發(fā)現(xiàn)水印部分相關(guān)的參數(shù),例如文獻[56]通過分析DNN模型的參數(shù)分布,發(fā)現(xiàn)水印及其長度,可以將水印去除并加入新的水印.文獻[57]中,通過重構(gòu)水印,對DNN模型中水印圖片與非水印圖片學(xué)習(xí)中各神經(jīng)元及連接的進行比較,識別水印圖片關(guān)鍵的神經(jīng)元及連接并進行刪除,之后對模型進行重新訓(xùn)練,實現(xiàn)對水印刪除.
根據(jù)1.1節(jié)定義,安全性(security)指水印本身不易偽造,否則攻擊者也能偽造水印從而宣稱對嵌入水印模型的所有權(quán).這里有2類方法:1)攻擊者嘗試發(fā)現(xiàn)W的構(gòu)造,從而宣稱擁有W,這類攻擊我們已在3.2節(jié)論述,主要講述如何發(fā)現(xiàn)W;2)攻擊者再次嵌入類似的水印W′到MW中,得到含2個水印的模型MW+W′,從而宣稱對M的所有權(quán).
對于直接改變神經(jīng)網(wǎng)絡(luò)參數(shù)的水印,如文獻[21]所述,攻擊者可以采用同樣的方法在其中植入水印.對于通過后門類植入的水印,如文獻[31,40,43-44,46],攻擊者仍然可以使用同樣的方法加入后門水印.考慮到神經(jīng)網(wǎng)絡(luò)參數(shù)數(shù)量巨大,新植入的水印很難正好破壞掉原有水印的參數(shù)信息,導(dǎo)致2個水印會同時存在于模型上.此時攻擊者A與原始模型擁有者O難以區(qū)分.例如文獻[49]提出的盲水印,人的肉眼或部分檢測器難以發(fā)現(xiàn)其水印觸發(fā)樣本與正常樣本的區(qū)別.攻擊者可以使用對抗樣本作為某種觸發(fā)器(與正常樣本非常接近),使模型作出某種預(yù)期的行為(如分類異常),從而模仿模型的擁有者,宣稱對模型的所有權(quán).
除上述3類攻擊外,還有部分其他方法用于對水印的攻擊.文獻[59]提出2種方案,針對水印的查詢,設(shè)計方案嘗試輸出正常的結(jié)果(非攻擊者預(yù)期的水印結(jié)果):1)通過投票機制(ensemble attack),改變輸出,躲避水印檢測;2)通過區(qū)分觸發(fā)水印的實例和正常數(shù)據(jù)(detector attack),躲避對水印檢測.即使在水印難以刪除的情況下,惡意攻擊者仍可以逃避合法所有者對版權(quán)侵權(quán)的驗證,從而避免了模型盜竊的發(fā)現(xiàn).
從目前來看,機器學(xué)習(xí)模型水印技術(shù)還處于發(fā)展前期,在理論上和實際使用過程中并不完善.攻擊者仍然有多種方法能夠?qū)σ延械谋Wo方法進行攻擊.在未來的研究過程中,主要有5個方面值得探索:
1) 更為魯棒的神經(jīng)網(wǎng)絡(luò)模型水印.目前的水印方法,尤其是黑盒方法,還受限于模型的微調(diào)等攻擊.未來的模型水印應(yīng)加強該方面的保護,使得模型能夠?qū)箓鹘y(tǒng)攻擊,尤其是較為簡單的傳統(tǒng)攻擊.
2) 水印應(yīng)減少對原始模型的影響.目前的水印對原始模型具有一定影響,例如會使得原始模型任務(wù)的準(zhǔn)確性降低.雖然部分方法在一定的測試集上能夠做到準(zhǔn)確性降低不明顯,但難免會影響模型的原始任務(wù).由于模型的不可解釋性,也難以從理論對模型的影響進行刻畫.對比傳統(tǒng)的書籍水印,其不會降低書籍的閱讀效果.因此,如何使模型水印在不降低原始任務(wù)的基礎(chǔ)上完成水印任務(wù),是未來的重要方向之一.
3) 公開的水印.傳統(tǒng)的書籍水印,其水印公開,且易于被用戶判斷識別.但現(xiàn)有的神經(jīng)網(wǎng)絡(luò)模型水印,其魯棒性依賴于水印的隱蔽性.一旦被公開,則其易被去除.未來的研究如能建立可公開(無需隱藏)的水印,則將對水印的可驗證性提供較高的支持.
4) 水印的理論證明.目前的水印方法缺乏理論支持,多是在原有模型上做添加任務(wù)、特征等處理,但無法從理論上證明其各種安全特性.未來的研究如能在理論上取得進展,將會推進水印技術(shù)的魯棒性等各類特性的安全保障能力.
5) 多樣的水印.目前的水印方法相對單一,多是采用直接添加特征或者模型后門方式進行加入.如能探索更加多樣的水印,并探索其組合,將會對未來的神經(jīng)網(wǎng)絡(luò)水印算法的魯棒性和對攻擊的防御能力起到幫助.
總之,更為強大的攻擊總是伴隨著防御方法的進步,他們相輔相成、共同成長.因此在未來的研究過程中,2方面的研究將會同步發(fā)展.在理論上的完善,將會促進神經(jīng)網(wǎng)絡(luò)模型的進步.
隨著人工智能技術(shù)的廣泛應(yīng)用,神經(jīng)網(wǎng)絡(luò)模型的應(yīng)用越來越廣泛.然而,神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練需要大量專業(yè)知識、數(shù)據(jù)和計算資源,因此,神經(jīng)網(wǎng)絡(luò)模型已經(jīng)成為一種重要的資產(chǎn),并有很多廠商提供相應(yīng)的服務(wù),用戶只需要遠程訪問API接口就能方便使用相關(guān)模型進行學(xué)習(xí).與此同時,神經(jīng)網(wǎng)絡(luò)模型的惡意使用或非法傳播也促使其版權(quán)急需保護,神經(jīng)網(wǎng)絡(luò)水印可以有效解決該問題.目前,神經(jīng)網(wǎng)絡(luò)水印技術(shù)主要包括白盒水印和黑盒水印,白盒水印需要對模型參數(shù)進行訪問和驗證,實際使用中受限較多.黑盒水印只需要遠程訪問API進行驗證即可,應(yīng)用更廣泛.但是,當(dāng)前黑盒水印大多使用后門等技術(shù)進行水印插入,當(dāng)遇到神經(jīng)網(wǎng)絡(luò)壓縮或遷移等變化時,容易被移除.因此,很多研究人員針對神經(jīng)網(wǎng)絡(luò)水印進行攻擊,對其魯棒性、安全性和隱蔽性進行研究,對于更好地提高水印保護能力有著重要的作用.最后,對未來方向和面臨的挑戰(zhàn)進行探討,希望對神經(jīng)網(wǎng)絡(luò)水印未來的發(fā)展提供一些思路.