孫汝杰
(江蘇省交通技師學(xué)院 江蘇省鎮(zhèn)江市 212028)
隨著通信技術(shù)的發(fā)展,智能設(shè)備與通信設(shè)備相互配合使得我們的生活更加便利。這也導(dǎo)致了人們更多地暴露在了黑客的攻擊之下。RFF(射頻指紋)是一種能夠可以在較長時間內(nèi)獨(dú)立地表示設(shè)備的特性,可以看作是智能設(shè)備的DNA[1]。RFF 是非線性變化的,主要的表現(xiàn)形式為載波頻偏(CFO),同相和正交(IQ)頻偏。由于發(fā)射裝置在生產(chǎn)過程中存在不可避免的細(xì)小差異,即使同一批產(chǎn)品RFF 也不同[2],[3]。傳統(tǒng)射頻指紋識別(RFFID)方法利用特征提取數(shù)據(jù)中的射頻指紋[4]-[6],再用機(jī)器算法進(jìn)行識別。本文提出了一種基于輕量化CNN 的RFFID 方法,可在物聯(lián)網(wǎng)設(shè)備中部署應(yīng)用。
如圖1 所示,本文首先采集物聯(lián)網(wǎng)設(shè)備的信號,然后建立RFF數(shù)據(jù)集,再利用神經(jīng)網(wǎng)絡(luò)對采樣信號進(jìn)行識別,最后對模型進(jìn)行修改,得到較小的輕量化模型。本文的數(shù)據(jù)集來自4 臺物聯(lián)網(wǎng)設(shè)備。每個裝置收集了大約6 萬個樣本,每個樣本有500 個采樣點(diǎn)。
CNN 通常由卷積層、全連接層組成。詳細(xì)描述如下:
卷積層,是進(jìn)行卷積操作的隱藏層。在二維卷積運(yùn)算中,可以將輸入的數(shù)據(jù)集看作一個大小為m×n 的矩陣(圖片可以按像素理解),卷積核是一個大小為u×v 的矩陣。一般卷積核的大小小于輸入數(shù)據(jù)集的尺寸,即1 ≤u ≤m 且1 ≤v ≤n。卷積運(yùn)算可以表示為下列公式:
其中,y(i,j)表示卷積運(yùn)算的輸出矩陣,f(i,j)與x(i,j)分別表示的是卷積核和輸入數(shù)據(jù)的對應(yīng)下標(biāo)元素。假設(shè)輸入的數(shù)據(jù)為m×n的矩陣,卷積核是一個大小為u×v 的矩陣,不作填充時,卷積步長為s,那么輸出數(shù)據(jù)的維度hout×wout可以由以下公式計算得出:全連接層在整個卷積神經(jīng)網(wǎng)絡(luò)中主要起到“分類器”的作用。工作流程為:首先將經(jīng)過卷積、激活函數(shù)、池化的深度網(wǎng)絡(luò)后的輸出結(jié)果進(jìn)行降維,即全都串聯(lián)成大小為1×N 的一維矩陣,其中N為之前輸出結(jié)果的所有元素個數(shù)。然后依據(jù)對應(yīng)的權(quán)重對全連接層的各個元素進(jìn)行加權(quán)求和,得到各個結(jié)果的預(yù)測值,最后取值最大的作為識別的結(jié)果。在實(shí)際應(yīng)用中,全連接層后的輸出層可以根據(jù)需要解決的問題進(jìn)行自定義。
本文采用了卷積層和全連接層兩種神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。考慮到輸入數(shù)據(jù)集的大小,所以不需要使用池化層。ReLU 和Softmax 是深度學(xué)習(xí)中常用的非線性激活函數(shù)。公式如下:
其中Max(·)表示選擇最大值的函數(shù),z1是訓(xùn)練樣本數(shù)。ReLu通常用于層與層之間,而Softmax 是多分類問題中的經(jīng)典函數(shù)。ReLU 算法在稀疏性問題中的性能非常好,符合一定特征的中間值會放大;不一致的將直接刪除。當(dāng)梯度大,學(xué)習(xí)率設(shè)置過大大,權(quán)值會一次更新過多。由于zi是負(fù)數(shù),再加上ReLU,神經(jīng)網(wǎng)絡(luò)的輸出為零。Softmax 輸出的值之和為1,適用于多分類。為減少過度擬合的可能性,本文使用Dropout 層來使隨機(jī)神經(jīng)元“死亡”。普通CNN 采用兩層卷積層“Conv1D”和三層全連接層。卷積核的大小分別為1×8 和1×4。本文提出的輕量化CNN 減少了全連接層的數(shù)量,用“可分離CNN”代替卷積層。
圖1:總體示意圖
通過適當(dāng)?shù)膿p失函數(shù)和優(yōu)化器,神經(jīng)網(wǎng)絡(luò)很快就能收斂。本文使用的優(yōu)化算法是Adam, Adam 具有較高的計算效率和最少的內(nèi)存需求。此外,它適用于大數(shù)據(jù)問題、非固定目標(biāo)問題、小信噪比以及稀疏梯度問題。Adam 可以寫成:
mt表示一階矩估計;vt表示二階矩估計;t 表示訓(xùn)練步長;β1和β2表示矩估計的指數(shù)衰減率;β1,t和 β2,t表示β1和β2的第t 次方。通常,分類交叉熵(CCE)和二元交叉熵(BCE)是識別問題的主要形式。本文選擇CCE 作為損失函數(shù)。CCE 可以寫成:
其中x 表示輸入數(shù)據(jù);yi表示的x 真實(shí)標(biāo)簽;C 表示類別數(shù);fi(·)表示模型的預(yù)測,在識別問題中表示標(biāo)簽。
傳統(tǒng)CNN 和輕量化CNN 的仿真都是基于Keras 實(shí)現(xiàn)的,以Tensorflow 為后端,計算平臺為GTX1650。利用MATLAB 對數(shù)據(jù)集進(jìn)行預(yù)處理。
在本文中,CNN 被設(shè)計成識別四種不同的設(shè)備。通過對所設(shè)計的卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行輕量化運(yùn)算,比較了在訓(xùn)練同一組數(shù)據(jù)集的情況下輕量化前后卷積網(wǎng)絡(luò)的精度差異。此外,本文還對比了其他三種傳統(tǒng)的機(jī)器學(xué)習(xí)算法,即支持向量機(jī)(SVM)、決策樹(DT)和隨機(jī)森林(RF)。結(jié)果表明,與其他三種方法相比,CNN 方法和輕量級CNN 方法都具有很好的準(zhǔn)確性。與CNN 相比,本文實(shí)現(xiàn)的輕量級網(wǎng)絡(luò)雖然有一定的性能損失,但仍然具有更簡潔的網(wǎng)絡(luò)結(jié)構(gòu)和更快的運(yùn)行速度。分類性能如表1 所示。
表1:各種方法的識別效果
雖然輕量化CNN 的網(wǎng)絡(luò)復(fù)雜度遠(yuǎn)低于CNN。具體數(shù)據(jù)見表2。提供了三個度量:浮點(diǎn)運(yùn)算(FLOPs)、參數(shù)和模型大小。FLOPs是指浮點(diǎn)運(yùn)算的次數(shù),通常用于衡量對比在不同設(shè)備上訓(xùn)練的模型的復(fù)雜性,其計算公式取決于各層所使用的超參數(shù)。輕量化CNN的計算量僅為CNN 的10.93%,說明計算復(fù)雜度低于CNN。
表2:兩種神經(jīng)網(wǎng)絡(luò)的參數(shù)量與FLOPs
如圖2 所示,普通CNN 的性能優(yōu)于輕量級CNN(尤其是在高信噪比環(huán)境下)。在低信噪比環(huán)境下,二者都不適用于RFF 場景。
圖2:不同信噪比下兩種模型的準(zhǔn)確度對比
本文提出了一種輕量化的CNN 來識別不同物聯(lián)網(wǎng)設(shè)備,并與常用的CNN 和經(jīng)典的機(jī)器學(xué)習(xí)方法進(jìn)行了比較。結(jié)果表明,CNN和輕量化CNN 在高信噪比環(huán)境下都有很好的性能。輕量化CNN 的性能優(yōu)于SVM、DT、RF 機(jī)器學(xué)習(xí)方法,比普通CNN 略差,但訓(xùn)練成本要小得多。