高培賢,魏立線,劉 佳,劉明明
1.武警工程大學 網(wǎng)絡與信息安全武警部隊重點實驗室,西安 710086
2.武警工程大學 電子技術(shù)系,西安 710086
近年來,信息隱藏已經(jīng)成為信息安全領(lǐng)域的重要課題之一,受到了學術(shù)界的廣泛關(guān)注。隱寫分析技術(shù)是利用信息嵌入對原始載體統(tǒng)計特性的改變來判斷隱秘信息的存在性,從而檢測載體中是否嵌入了信息。傳統(tǒng)的隱寫分析技術(shù)關(guān)鍵在于特征向量的選取,特征向量所包含的特征越多,就能夠更加全面地反映隱寫技術(shù)對載體產(chǎn)生的噪聲。但是當特征的數(shù)量過多時,現(xiàn)有的分類器大多數(shù)因為訓練時間過長而不再適用。
當前,含多隱層感知器的深度學習在圖像識別領(lǐng)域取得了優(yōu)異的表現(xiàn),它通過組合低層特征形成更加抽象的高層表示屬性類別或特征,以發(fā)現(xiàn)數(shù)據(jù)的分布式特征表示[1],從而代替人工提取特征。因此,研究者開始將深度學習應用在圖像隱寫分析領(lǐng)域,將特征提取和分類器設(shè)計合為一步,極大地提高了隱寫分析的效率。Xu等人[2]構(gòu)建了一個卷積神經(jīng)網(wǎng)絡(CNN)模型進行圖像隱寫分析,該模型包含了5層卷積層和一層全連接層,第一層卷積層后加入了一個絕對值層(ABS)來增強網(wǎng)絡后邊卷積層的學習能力,并且在激活函數(shù)前都使用了批量正規(guī)化層(BN)[3]來避免過擬合。該模型對S-UNIWARD嵌入算法的檢測錯誤率僅為19.76%。但是,隨著CNN深度的增加,模型在訓練過程中會發(fā)生梯度消失問題。深度殘差網(wǎng)絡(ResNet)[4]的提出解決了網(wǎng)絡加深帶來的梯度消失問題,通過殘差學習使得神經(jīng)網(wǎng)絡的深度可以很大程度的加深。2017年,Huang等人提出了密集連接網(wǎng)絡(DenseNet)[5],即網(wǎng)絡中每一層的輸入都來自前面所有層的輸出,實現(xiàn)了特征的重復利用。相比ResNet,DenseNet即解決了退化問題,也加強了特征在網(wǎng)絡中的傳遞,有效提高了模型分類效果。
為了獲得更高效率的圖像隱寫分析模型,本文構(gòu)建了一個密集連接網(wǎng)絡模型(S-DCCN)進行進行圖像隱寫分析,實驗結(jié)果表明,相比空域富模型(SRM)[6]+集成分類器(EC)[7]和Xu等人構(gòu)建的CNN模型,本模型的隱寫分析準確率分別提高了14.71%和14%。
傳統(tǒng)的卷積神經(jīng)網(wǎng)絡由卷積層、池化層以及全連接層和輸出層等組成,卷積層和池化層交替連接,即一個卷積層連接一個池化層,依此類推。卷積層中輸出特征圖的每個神經(jīng)元與其輸入進行局部連接,并通過對應的連接權(quán)值與局部輸入進行加權(quán)求和再加上偏執(zhí)值,得到該神經(jīng)元的輸入值[8]。如圖1所示,原始圖像進入卷積層,由卷積層提取特征,然后由池化層來降低特征面的分辨率以獲得具有空間不變性的特征[9],最后由全連接層整合卷積層中具有類別區(qū)分性的局部信息[10]進行分類。
圖1 傳統(tǒng)卷積神經(jīng)網(wǎng)絡
深度卷積神經(jīng)網(wǎng)絡的提出引發(fā)了圖像分類方法的一系列突破[11-13],通過增加網(wǎng)絡深度可以提取圖像更加抽象的特征,從而提高模型識別準確率。但是,隨著CNN越來越深入,網(wǎng)絡在訓練過程中會出現(xiàn)梯度消失問題。為了確保網(wǎng)絡層間的最大信息流,DenseNet將每層網(wǎng)絡都與其他網(wǎng)絡層連接,每層網(wǎng)絡的輸入為前邊所有網(wǎng)絡層輸出的并集,該層的輸出又為后續(xù)網(wǎng)絡層的輸入,從而實現(xiàn)特征的重復利用。因此,L層CNN的連接次數(shù)為L,而L層DenseNet的連接次數(shù)為L(L+1)/2。通過這種網(wǎng)絡結(jié)構(gòu)的改進,使得特征得以在深度網(wǎng)絡中更加有效和準確的傳遞,同時也使得深度網(wǎng)絡更加容易訓練[5]。
針對目前傳統(tǒng)的圖像隱寫分析算法需要進行人工提取特征再進行分類的問題,本文構(gòu)建了一個S-DCCN模型進行圖像隱寫分析,如圖2,避免了人工提取特征。本模型使用了5組密集連接模塊,有效地解決了網(wǎng)絡加深帶來的退化問題,提高了圖像隱寫分析準確率和泛化性能。
圖2 S-DCCN模型
如圖2所示,原始圖像進入模型首先經(jīng)過高通濾波層(HPF),HPF層是一種特殊的卷積層,該卷積層是一維的5×5卷積核,權(quán)重參數(shù)為固定值F,HPF層的使用可以加快網(wǎng)絡模型的收斂速度,在本文實驗部分可以證明。
經(jīng)過HPF層濾波后的圖像進入預訓練好的兩層卷積層。使用預訓練好的卷積層可以避免模型在訓練過程中發(fā)生過擬合[4]。隨后,特征圖進入密集連接模塊,S-DCCN模型共采用了5組密集連接模塊,每組密集連接模塊含有5層卷積層,結(jié)構(gòu)如圖3所示。在密集連接模塊中,每個網(wǎng)絡層都實現(xiàn)了一組非線性變換HL(X),其中X為特征圖,L為第L層網(wǎng)絡層,HL函數(shù)為卷積層、批量正規(guī)化(BN)、激活函數(shù)(ReLU)等3個操作的組合,即:Conv?BN?ReLU。因此,第L層網(wǎng)絡的輸出為:
其中[X0,X1,…,XL-1]為特征圖的并集。因此,通過這種密集連接的方式縮短前面卷積層和后面卷積層之間的連接,使得最后一層可以直接用到原始輸入信息,同時還用到了之前層對原始信息非線性操作之后的信息,這樣可以做到對信息流動的最大化。
圖3 密集連接模塊
在密集連接模塊中,特征圖是通過組合的方式在網(wǎng)絡中傳遞,因此密集連接模塊的輸出維度為所有卷積層中卷積核的個數(shù)之和,使得后續(xù)網(wǎng)絡層的輸入急劇增加。因此在相鄰密集連接模塊之間采用維度為12、大小為1×1的過渡層來控制網(wǎng)絡的寬度。
在模型的最后采用了兩層1 000維的全連接層,和一層損失函數(shù)層,全連接層的神經(jīng)元與上一層的神經(jīng)元進行全連接,從而整合卷積層中可以區(qū)分類別的局部信息。損失函數(shù)層采用的是Softmax損失函數(shù),將輸入分為兩類。
S-DCCN模型使用了密集連接模塊,相比使用如圖4所示的殘差學習模塊,更加提高了隱寫分析檢測效果。殘差學習模塊通過捷徑連接實現(xiàn)殘差學習,將特征圖求和傳遞給下一層網(wǎng)絡,其輸出為:
通過這種方式在深度殘差網(wǎng)絡中可以實現(xiàn)梯度的反向傳播,解決了梯度消失問題,但是這種相加的方式會妨礙信息的流動[5];而密集連接模塊是通過求模塊中所有層的特征圖的并集,如公式(1)所示,這種方法使得網(wǎng)絡中的特征和梯度可以在網(wǎng)絡中更好的傳遞,有效解決了隨著網(wǎng)絡加深帶來的梯度消失問題,強化了特征的傳播,并且還支持特征重復使用。此外,每一層的特征圖都可以直接進入損失函數(shù)層,從而實現(xiàn)深度監(jiān)督[14]。另一方面,S-DCCN還可以提高訓練效率,網(wǎng)絡的每層都可以利用前面網(wǎng)絡層學到的特征,只需要學習很少的特征,所以可以將模型的網(wǎng)絡層的通道數(shù)[15]設(shè)計得特別窄,減少了模型在訓練過程中的計算量,提高了模型的訓練效率。
圖4 殘差學習模塊
為了更好地對比S-DCCN模型的優(yōu)越性,本文構(gòu)建了3種網(wǎng)絡進行實驗對比:(1)由卷積層直接疊加構(gòu)成的平凡網(wǎng)絡;(2)采用了殘差學習模塊的深度殘差網(wǎng)絡;(3)本文的S-DCCN模型。3種網(wǎng)絡為同等深度的網(wǎng)絡,除了卷積層連接方式不同,HPF層、卷積層維度、全連接層等條件都相同。在實驗環(huán)境相同的條件下,對3種網(wǎng)絡分別進行測試。
實驗平臺采用深度學習開源平臺caffe,在Windows下對S-UNIWARD嵌入算法進行測試。數(shù)據(jù)集采用BOSSbase V1.01,圖像大小為128×128,訓練樣本為3×104張載體圖像和3×104隱寫圖像,測試樣本為1×104張載體圖像和1×104隱寫圖像,為了防止某張圖像被多次調(diào)用,將圖像集中的順序打亂。
由于GPU內(nèi)存的限制,訓練時最小批量大小為64,測試時最小批量大小為40。學習速率初始值為0.001,學習率變化策略為“inv”,避免了手動調(diào)整學習率參數(shù),使學習率隨著迭代次數(shù)的增加自動調(diào)整。沖量參數(shù)(momentum)為0.9,權(quán)值衰減(weight_decay)為0.004。
本文構(gòu)建的S-DCCN模型使用了5組密集連接模塊,卷積層共31層,為了更好地說明深層網(wǎng)絡的優(yōu)越性,本文共對比了4種不同深度的密集連接網(wǎng)絡,每種網(wǎng)絡除密集連接模塊個數(shù)不同外,其余條件都相同,實驗結(jié)果如表1。由實驗結(jié)果可知,隨著深度的增加,模型的隱寫分析準確率顯著增加,密集連接可以很好地解決網(wǎng)絡加深帶來的梯度消失和退化問題。隨著模型深度的增加,網(wǎng)絡的參數(shù)也隨之增加,訓練時長會在一定程度上延長,但始終在可接受的范圍內(nèi)。本文的S-DCCN模型為GPU硬件(GTX960M)所能運行的最深模型。
表1 模型深度對比結(jié)果
在圖像隱寫分析領(lǐng)域,HPF層是一種特殊的卷積層,其可以大大加快模型在訓練過程中的收斂速度,提高模型訓練效率,S-DCCN模型有無HPF層的實驗結(jié)果如表2,在模型迭代20 000次時無HPF層的模型Loss值過大,模型沒有收斂,而使用了HPF層的模型準確率顯著增加,模型已經(jīng)收斂;池化層會減弱隱寫產(chǎn)生的噪聲,因此,S-DCCN模型沒有使用池化層。在S-DCCN模型的過渡層后邊添加池化層與S-DCCN模型進行對比,結(jié)果如表3,有池化層的模型對檢測準確率會產(chǎn)生一定的影響,因此,本文沒有使用池化層。
表2 有無HPF層對比結(jié)果
表3 有無池化層對比結(jié)果
損失值代表著模型的擬合程度,圖5為3種模型的Loss值對比,從圖中可以看出,相同迭代次數(shù)下,由卷積層直接疊加的平凡網(wǎng)絡始終沒有收斂,這是由于梯度消失問題造成的,而S-DCCN模型和殘差網(wǎng)絡模型均解決了梯度消失問題,但S-DCCN模型的收斂速度明顯快于殘差網(wǎng)絡,證明密集連接模塊通過強化特征傳播,相比殘差網(wǎng)絡更加加快了模型的收斂。
圖5 網(wǎng)絡訓練損失值對比
為了更好地測試S-DCCN模型的泛化性能,本文設(shè)置了4種不同的嵌入率,在4種嵌入率下,3種不同網(wǎng)絡的隱寫分析準確率如表4所示,S-DCCN模型的識別效果明顯優(yōu)于其他兩種網(wǎng)絡,也證明了該模型的泛化性能強于其他兩種網(wǎng)絡。
表4 S-DCCN模型不同嵌入率下檢測結(jié)果
相比傳統(tǒng)的隱寫分析算法富模型+支持向量機,S-DCCN模型省去了人工提取特征,有效提高了隱寫分析效率,同時將隱寫分析準確率提高了14.71%;相比Xu等人構(gòu)建的5層CNN模型,本文模型加深了網(wǎng)絡深度,解決了梯度消失問題,將圖像隱寫分析準確率提高了14%。
表5 與其他隱寫分析方法對比結(jié)果
本文構(gòu)建了一個密集連接網(wǎng)絡的圖像隱寫分析模型(S-DCCN)。該模型在增加了網(wǎng)絡深度的同時解決了梯度消失問題。實驗結(jié)果表明,利用該模型進行隱寫分析的準確率高于淺層卷積神經(jīng)網(wǎng)絡和傳統(tǒng)的隱寫分析算法,同時避免了人工提取特征,提高了隱寫分析效率。下一步將繼續(xù)優(yōu)化深度學習技術(shù)在隱寫分析鄰域的通用性,進一步提高隱寫分析的檢測精度。