馬 天,趙會敏,楊 嫣,楊嘉怡
(西安科技大學 計算機科學與技術學院,陜西 西安 710054)
隨著計算機的快速發展,許多產品出現了多方面的安全問題,神經網絡模型也屬于數字資產的一種,其版權保護技術日益發展。研究出一個深度神經網絡模型需要大量的有價值的訓練數據、強大的計算資源和專業的人力資源,而神經網絡模型在經第3方應用后,其網絡結構和節點權重會完全對外暴露,容易被復制、二次開發或修改,導致初始開發者權益受損。頂級深度神經網絡的設計和訓練競爭激烈,神經網絡模型將在未來幾年的IT發展中發揮核心作用,因此保護這些模型的必要性顯得更加突出。在版權保護方面包括密碼學和數字水印技術這2種研究方向,然而,密碼學只在轉換過程中保護數據,一旦數據被接收并解密,它就不再受到保護。數字水印技術可以實時保護數字資產,因此在這個研究領域具有更大的價值[1]。
數字水印技術最早可以追朔到1993年,其方法是在載體(圖像,文本,視頻,或者音頻)中增加有用的身份信息,以達到數字認證或者版權保護的目的。2017年UCHIDA等人提出神經網絡水印,他們發表了第一種水印嵌入方法,水印信息可以直接嵌入到模型的參數中,該方法可以公開共享神經網絡[2]。近些年深度學習框架越來越成熟,包括TensorFlow,Keras,Caffe[3],Theano[4],Chainer[5]等。基于這些公開的框架或系統,開發人員進行研究的復雜度大大降低,深度神經網絡模型得到了突飛猛進的發展,隨之而來的版權保護問題也日漸浮出水面。模型所有者能夠將水印嵌入神經網絡的權重中,合法用戶可以將水印嵌入神經網絡以進行授權使用,而未經授權的用戶由于額外的控制層會導致獲得的模型性能不良,當神經網絡被非法盜版時,初始開發者可以提取嵌入的水印并進行所有權驗證,這樣便可以實現神經網絡模型的保護。
目前典型的水印嵌入方法歸納總結為白盒水印嵌入方法、黑盒水印嵌入方法[6]、授權控制方法[7]等5類。其中,白盒方法通常需以公開或與可信第3方共享方式獲取神經網絡模型的結構和權重,如開源項目model Zoo,水印信息通常直接嵌入到模型的參數中,需要訪問DNNs的內部結構進行驗證。
白盒水印嵌入的載體可以細分為以下2種,一是將水印信息與權重結合,其中最為典型的是UCHIDA等人在2017年提出的,首次將水印直接嵌入到卷積濾波器系數即網絡權重中[2],其次就是CHEN等人是將身份信息嵌入到卷積濾波器系數的概率密度函數中,提出了第一個用于數字版權管理的DL指紋框架[8]。這類方法的優點是嵌入與提取操作方便,但是權重變化量較大,可通過分析權值的方差檢測出隱藏水印,并通過在權值上添加有效噪聲來修改水印。二是將水印嵌入在全連接層上,其中最為典型的是KURIBAYASHI等人提出的DM-QIM方法,優點是嵌入水印引起的變化小且可測量,但是權重的選擇和水印的嵌入都使用了一個密鑰,對于不同DNN模型和嵌入參數的影響將有待未來進一步研究[9]。這類方法的優點是嵌入與提取操作方便,但是存在權重變化量較大的情況,可通過分析權值的方差檢測出隱藏水印,并通過在權值上添加有效噪聲來修改水印。ZHANG等人提出一種帶有補償機制的量化水印方案,通過密鑰來選擇待嵌入水印的權重,對水印進行擴頻調制后使其具有噪聲性再嵌入特定的權重。為了避免權重的變化對模型功能的影響,對未嵌入水印的權重進行補償微調,得到含水印的模型[10]。此方案對模型的改動量很小,同時保證理想的魯棒性和嵌入量,通過對嵌入位置的改進從而隱藏了水印信息,但其水印形式有限為簡單的字符串,視覺意義不強。
白盒水印嵌入的水印信息目前可細分為以下2種,二進制字符串和非二進制字符串。在非二進制字符串中,WANG等人提出的魯棒白盒GAN水印(RIGA),該方法水印消息的容量和靈活性較好[11]。還有一種水印的累積和編碼方法由SAKAZAWA等人提出,可對嵌入的圖案進行累積以達到可視化的解碼[12]。這種方法僅適用于一個簡單的情況,且存在多個密鑰集,被攻擊者得到子集的一部分也可驗證。在二進制字符串的水印信息中,最為典型的UCHIDA等人于2018年提出的,將新定義的損耗和普通的損耗結合起來,通過訓練進行優化,其水印信息選擇的是256位的一維矩陣,這種水印信息形式便于實踐,但形式單一且容量較小[13]。
總之,上述方法的信息容量小、提取效果不直觀,只能通過數值對比誤差。文中將選擇有意義的圖像使其提取結果更加直觀,主要是基于WRN神經網絡的不同水印嵌入研究,采用的是白盒水印嵌入方法,在訓練主機網絡時直接嵌入水印,在前人研究的基礎上對于水印信息進行了優化,將二進制串優化為圖像,并在嵌入水印之前對水印進行了預處理即加密以更有效的保護水印本身,采用了3種加密方法設計實驗進行比較,分析了不同的水印信息對于網絡性能的影響。為防止在訓練神經網絡的時候過度擬合,采用正則化的方法將L1損失函數和L2損失函數結合。
神經網絡水印是通過對神經網絡模型的內部參數或外部結構進行某些特殊處理,添加或嵌入特定的身份信息,即在神經網絡模型中嵌入水印,以保護受過訓練的神經網絡模型。一個完整的神經網絡模型水印系統一般包含3個模塊[14],即需嵌水印的網絡模型,水印嵌入方法,水印提取與檢測。框架如圖1所示,基本過程[15]:經過加密及預處理的水印信息,經過各種算法嵌入到神經網絡模型中去,模型所有者可將添加身份信息后的網絡模型以公開或API遠程的方式提供商業服務。所有者可將添加身份信息進行提取驗證,同時部分算法還可達到限制非法訪問的效果。

圖1 神經網絡水印框架Fig.1 Watermarking framework of neural network
目前主流的網絡模型有MLP,CNN,WideResNet,AlexNet16],VGG16,LeNet[17],GoogLeNet和ResNet等。對于MPL,LeNet網絡模型,一般選取的實驗數據集為MINST,對于WideResNet,ResNet,AlexNet,VGG16網絡模型,一般選取的實驗數據集為CIFAR10,CIFAR100。水印形式可為二值圖像、字符串等。為了更好地保護隱私,在水印嵌入之前,需對水印進行編碼或加密預處理,將加密后的水印信息嵌入到神經網絡中,以保護版權。
圖像域和神經網絡域中對有效水印算法的要求幾乎相同,都應具有保真度、可容性、有效性、安全性以及高效性。有效的水印系統必須具有嵌入大量信息的能力,水印通常應是秘密的,不應該被未經授權的各方訪問、讀取或修改,水印的嵌入與提取應該是快速的。但圖像域和神經網絡域中的保真度和魯棒性是不同的,在圖像域中為保持保真度,必須在嵌入水印的同時保持主機圖像的感知質量。然而,在神經網絡域,參數本身并不重要,重要的是原來的執行任務,因此,必須保持受過訓練的主機網絡的性能,而不能阻礙主機網絡的訓練。神經網絡水印應對網絡功能影響足夠小,水印信息能夠從分發或重訓練的網絡中提取出來,應具備隱蔽性、穩健性、數據量及安全性等特性。關于魯棒性,由于圖像會受到各種信號處理操作的影響,如經過壓縮、裁剪及調整大小等操作之后,水印也應留在主機圖像中。而神經網絡中嵌入的水印應在微調或其他可能的修改后還能檢測到,是通過修改神經網絡的權重實現水印嵌入的,因此嵌入的水印形式只能是字符串,由于圖像是由許多像素點組成對其處理可等同于字符串,故可在神經網絡中嵌入圖像。
基于圖像域和神經網絡域有效算法分析,對水印信息形式進行優化,選擇2種水印信息:二值圖像與灰度圖像,均選擇16×16的圖像,由于圖像是由像素點組成,可等同于矩陣,將像素點值同除以255可得0到1之間的向量作為水印b={0,1},采用白盒水印嵌入方法將水印b在訓練神經網絡時嵌入到神經網絡的權重中,在水印嵌入之前,對水印進行編碼或加密預處理。
從神經網絡中選擇一層的權重作為待嵌入水印的載體,記為W∈RS×S×D×L,其中S,D,L分別為卷積濾波器的大小,輸入到卷積層的深度和卷積層中濾波器的個數。如果后續層的參數被重新排序,濾波器的順序不會影響網絡的輸出,為了消除濾波器順序的任意性,故采用均值濾波器,沿著輸出通道計算可得到權重的均值
(1)
為保證主機網絡在原始任務中的性能,選擇在訓練主機網絡時直接嵌入水印。使用一個參數正則化器,它是原始任務原始成本函數中的一個附加項,具有正則化的代價函數E(w)定義為
E(w)=E0(w)+λER(w)
(2)
式中E0(w)為原始成本函數;ER(w)為對參數w施加一定限制的正則化項;λ為一個可調參數,此正則化器可防止訓練時參數增長過快。

給定一個(平均)參數向量w∈RM和一個嵌入矩陣X∈RT×M,這個參數既用于檢測也用于提取,雖然X∈RT×M可以是任意矩陣,但它會影響神經網絡模型在嵌入水印的性能。使用Xrandom使隨機的每個元素獨立于標準正態分布N(0,1),每個位置都嵌入到具有隨機權重參數w的所有實例中,這個過程是一個具有單層感知器的二進制分類問題。嵌入矩陣X∈RT×M與w相乘并由Sigmoid激活函數激活得到位于[0,1]的Y,即可得到嵌入位置。
Y=σ(X·ω)
(3)
通過正則化的方式將水印b嵌入到Y中,利用二元交叉熵定義嵌入正則化的損失函數ER(w)
(4)
式中yi=σ(∑iXjiwj),σ(x)為Sigmoid函數
(5)
在神經網絡水印框架中使用嵌入損失函數來更新w,深層神經網絡有許多局部極小值,所有局部極小值都可能有一個非常接近全局最小的誤差[18]。因此,嵌入正則化是將模型參數引導到多個良好的局部極小值之一,從而使最終的模型參數具有任意的水印。
水印提取只需使用X投影w,然后在0處閾值,第j位被提取為
bj=s(∑iXjiwi)
(6)
從w′ 中提取出水印b′,且

(7)
式中 *為函數的自變量,對比b′與原始水印b就可以驗證網絡版權。
圖2顯示整個水印的嵌入和提取過程,采用正則化的方法在訓練神經網絡時將水印信息b嵌入到神經網絡的權重w中,在此過程中定義的嵌入參數X也用于提取。提取時,通過X與w′映射關系提取水印信息b,最后進行對比可驗證版權。

圖2 水印嵌入與提取過程Fig.2 Process of watermark embedding and extraction
對于提取的水印從肉眼直觀可能看不出差異,故采取一些客觀性指標來評價[19],在客觀評價水印質量時,采用峰值信噪比(PSNR)和結構相似性(SSIM)2個經典的指標來評價。
設嵌入的水印圖像為I,提取的水印圖像為K,則PSNR的計算公式為
(8)

(9)
SSIM方法的計算是從圖片上取一個N×N的窗口,不斷滑動窗口進行計算,衡量亮度、對比對及結構3個指標,最后取平均值可得到SSIM值,其計算公式為
(10)

使用CIFAR-10[20]訓練WRN神經網絡,該數據集由60 000張32×32的彩色圖像組成,共有10個類,包括50 000張訓練圖像與10 000張測試圖像,在訓練時將水印嵌入到神經網絡的參數中,每一次迭代設置Batch_size為64,每一次訓練迭代多次,迭代次數越多效果越佳。
圖3顯示嵌入水印σ(∑iXjiwi)的直方圖,由于?j,σ(∑iXjiwi)≥0.5(?∑iXjiwi≥0)時,所有水印才會被檢測到,因此在0.5的閾值下對σ(∑iXjiwi)進行二值化。01矩陣與二值圖像是同理的,檢測的水印值都只有0和1,與最初的水印信息相同,而灰度圖像明顯可以觀察到浮點數。

圖3 嵌入不同水印直方圖對比Fig.3 Comparison of histograms with different watermarks embedded

圖4 嵌入不同水印的模型參數w的分布對比Fig.4 Comparison of the distribution of model parameters w with different watermarks embedded
圖4顯示有和沒有水印的模型參數w的分布,其中圖4(a)為無水印模型參數的分布,圖4(b)和圖4(c)分別為嵌入二值圖像水印和灰度圖像水印模型參數的分布,這些參數只取自嵌入水印的一層。w參數數目是3×3×64×64,可以直觀的看出3種情況下模型參數分布一致,許多參數變得很大,并且在0附近出現一個峰值,并未顯著改變分布。
圖5顯示了神經網絡模型的訓練損失函數圖,可以看出灰度圖像作為水印嵌入到神經網絡模型,其訓練損失函數與原模型相差較大,訓練損失E(w)大于未嵌入的情況。而二值圖像作為水印嵌入神經網絡模型訓練損失函數和與原始模型損失函數基本擬合,這表明01矩陣水印可以在不影響原始任務性能的情況下有效地嵌入。

圖5 訓練損失函數對比Fig.5 Comparison of training loss functions
表1顯示各個水印信息對于訓練神經網絡模型準確度的影響,在經過訓練迭代50次時,3種情況下模型準確度均達到了90%以上,可以看出二值圖像水印的神經網絡模型與原模型準確度更為接近。

表1 訓練神經網絡模型錯誤測試與準確度對比
綜上可得,二值圖像作為水印(即01矩陣水印)嵌入到神經網絡中不會改變初始神經網絡的性能,是一個較優選擇。
首先分別將二值圖像和灰度圖像進行預處理,獲得256位向量作為水印,直接嵌入神經網絡的權重中,經統計二值圖像水印實驗結果如圖6所示,其中圖6(a)為嵌入的水印圖像,圖6(b)、圖6(c)、圖6(d)分別為訓練神經網絡時不同迭代次數下所提取的水印圖像,圖7顯示了灰度圖像水印提取結果,隨著epoch次數增加,神經網絡中權重的更新次數也相應增加,模型的精度也會更好,嵌入水印效果更好。對于圖像水印直接觀察可以看到區別,100次的迭代效果明顯更加。

圖6 二值圖像水印嵌入與提取對比Fig.6 Comparison of binary image embedding and extraction

圖7 灰度圖像水印嵌入與提取對比Fig.7 Comparison of grayscale image watermark embedding and extraction
對水印作客觀評價,將嵌入的水印與提取的水印進行對比,二值圖像水印PSNR和SSIM值見表2,灰度圖像水印評價指標見表3,PSNR值和SSIM值皆為值越大效果越好,隨著epoch數量的增加,提取的水印質量也逐步變好,相比較之下,二值圖像提取前后結構相似性更好,效果更好。

表2 二值圖像PSNR值與SSIM值對比

表3 灰度圖像PSNR值與SSIM值對比
為了保護隱私,在水印嵌入之前需對水印進行預處理,對二值圖像采用3種加密算法進行加密,分別為Arnold變換、按位異或加密以及行列像素置亂,將加密后的圖像作為水印嵌入到神經網絡中,對提取后的圖像對應解密,即可得到提取的的水印。圖8,圖9,圖10分別顯示了經Arnold變換、按位異或加密行列像素置亂后的水印圖像嵌入與提取對比。可以從視覺觀察到,Arnold變換和行列像素置亂這2種加密算法效果較好,而按位異或加密存在明顯差異。
4.1.1 Arnold變換
Arnold變換[21]的加密方法是通過變換把圖像變得“雜亂無章”,達到加密信息的目的。Arnold變換算法簡單,具有周期性和對稱性[22],變換周期大小與圖像大小即N有關,呈非線性關系。
4.1.2 按位異或加密
按位異或加解密過程:首先需要獲取原始圖像的大小,再利用Python的隨機函數生成與原始圖像大小一致的密鑰圖像,分別獲取原始圖像與密鑰圖像的像素值,并將其轉化為二進制,再將轉化的二進制進行異或運算得到新的一組數據,最后將此數據轉化為十進制,通過矩陣轉圖像的方法可得到加密圖像,解密同理,將加密圖像與密鑰圖像進行異或運算就可恢復原始圖像。
4.1.3 行列像素置亂
行列像素置亂加解密過程:首先利用Matlab函數Size()獲取圖像大小即行列各像素點的個數,再根據圖像的大小利用Randsample函數產生同等數量的隨機向量,最后利用此隨機數對圖像分別進行行與列像素置亂從而實現加密,解密是采用同樣的密鑰對加密圖像進行列置亂,就可以恢復至初始圖像。

圖8 經Arnold變換后的水印圖像嵌入與提取對比Fig.8 Comparison of embedding and extraction of watermarked images after Arnold transform

圖9 經按位異或加密后的水印圖像嵌入與提取對比Fig.9 Comparison of embedding and extraction of watermarked images after Bitwise Iso-or-Encryption

圖10 經行列像素置亂后的水印圖像嵌入與提取對比Fig.10 Comparison of embedding and extraction of watermarked images after Matrix image element placement disorder
對提取的水印質量作以客觀評價,選擇了2種較為經典的圖像對比評價指標:峰值信噪比與結構相似性,將加密后的水印嵌入到神經網絡之中,提取出來再進行解密,評價其提取前后PSNR與SSIM值,表4表5顯示評價結果。可以看出采用行列像素置亂方法加密水印其提取結果結構相似性更高,而按位異或加密其結果最差并不適用于對水印圖像進行預處理,實驗結果表明,采用二值圖像作為水印嵌入到神經網絡中不會改變初始神經網絡的性能,對于水印信息加密應選擇行列像素置亂加密算法。

表4 不同水印PSNR值對比

表5 不同水印SSIM值對比
1)通過分析圖像域和神經網絡域中有效水印算法的需求,對水印信息進行了優化,將簡單的二進制串優化為二值圖像與灰度圖像。對于不同水印形式進行了分析和測試,通過實驗得出嵌入水印的模型與未嵌入水印的模型參數分布一致,嵌入水印并不會改變原始網絡的性能。
2)為了更好的保護隱私,在嵌入水印之前對水印進行了預處理,選擇了3種加密算法,其中包括Aronld變換、按位異或加密以及行像素置亂加密,對提取出來的3種水印信息綜合比較,評價其PSNR值和SSIM值得出采用行列像素置亂加密算法加密水印的提取效果較優。
3)文中的水印嵌入方法可以在不影響原始任務性能的情況下有效地嵌入水印,采用行列像素置亂的二值圖像作為水印,嵌入到神經網絡中不會改變初始神經網絡的性能,是一個較優選擇。雖對水印信息進行了優化,但在訓練神經網絡模型時由于設備限制均采取小批次訓練,對于已嵌入水印的神經網絡模型沒有進行攻擊,在后續研究中將對其魯棒性進行評估。