孔乾坤
(重慶市長壽區大數據應用發展管理局,重慶 401220)
隨著無線通信技術的發展和物聯網在各行業的推廣應用,智能終端及智能設備逐漸普及,對室內環境下獲取終端或設備位置的需求日益增多。基于位置的服務(Location-Based Services,LBS)已成為定位導航、應急搜救、搶險救災的必備功能[1]。室內定位技術是LBS 的核心,LBS 依賴于人員、貨物或資產的精確位置,但NLOS 環境影響定位精度的進一步提高[2]。自從2016 年谷歌“阿爾法狗”圍棋系統以5:0 全勝韓國圍棋大師李世石以來,CNN受到人們的廣泛關注并取得了迅速發展。本文研究利用CNN 識別NLOS 信號的具體過程,將CNN 技術用于NLOS 識別,不需要人工提取信號特征,只需要將原始CIR 信號作為輸入,將是否為NLOS 信號作為輸出,模型訓練完成后就能用于識別NLOS信號[3],識別NLOS 信號后只利用LOS 信號做定位,結果表明該方法能顯著提高定位精度。
CNN 是一類包含卷積計算且具有深度結構的前饋神經網絡,可用于圖像識別、信號識別、自然語言處理等領域。使用CNN 識別信號的步驟:(1)卷積層提取初步特征;(2)池化層提取主要特征;(3)全連接層匯總特征并進行分類預測。
1.1.1 卷積層
對輸入數據矩陣中每個元素點,計算卷積核矩陣每個元素與卷積核矩陣覆蓋范圍內對應元素點的乘積,并累加所有乘積,累加和即為卷積層輸出。
1.1.2 池化層
池化層利用局部相關性原理對信號進行下采樣,作用是保證生成的特征圖在特征不變的情況下降低數據維度,保留有用信息的同時,減少模型的參數數量和計算復雜度。
1.1.3 全連接層
全連接層中神經元不經過卷積運算直接連接到相鄰層的神經元上。對全連接層輸入加權求和并經過激活函數,就可得到對應的輸出。為了防止過擬合,全連接層中一般采用dropout 方法。
隨機失活[4](dropout)是指在訓練模型過程中按照一定的概率使隱藏層部分神經元失活,失活的神經元不參與下一步的網絡訓練,從而避免過擬合的發生。對某層神經元,訓練階段以概率p隨機將該神經元失活,測試階段所有神經元全部為激活狀態,但其權重需要乘1-p以保證訓練和測試階段各自的權重有相同的期望。假設dropout 輸入為x,對應的輸出為y,該層權值用w表示,依據特定概率隨機選取的w矩陣的子集用w′表示,于是dropout運算過程可表示如下。
訓練過程:

測試過程:

dropout 方法緩解過擬合現象的原因是:訓練CNN 時,每次得到的子網絡是按照概率對權值矩陣隨機采樣后得到,多次訓練后,每次參與訓練的神經元有所不同,避免了某個網絡參數過多導致的模型過于復雜,從而抑制過擬合。
卷積神經網絡的訓練過程分為兩個階段。第一階段是數據由低層次向高層次傳播的階段,即前向傳播階段。第二階段是當前向傳播得出的結果與預期不相符時,將誤差從高層次向底層次傳播訓練的階段,即反向傳播階段。
訓練過程如下。
步驟1:初始化卷積神經網絡的權值;
步驟2:輸入數據經過卷積層、池化層、全連接層,前向傳播得到輸出值;
步驟3:求出卷積神經網絡輸出值與理想輸出值之間的誤差;
步驟4:將誤差傳回網絡中,依次求得全連接層、池化層和卷積層的誤差;
步驟5:按照誤差最小化準則,通過反向傳播調整卷積神經網絡的權值,然后進入第二輪重復訓練,直到誤差小于設定值或者達到最大訓練次數時,結束訓練過程。
本文使用的CNN 包括4 層卷積層、2 層池化層、1 層全連接層和1 層輸出層,網絡結構如圖1 所示。
網絡中的數據維度和參數設置[5]:Conv1 層輸入數據為1 024,從時域和頻域上看是2 個維度,輸入數據為2×1 024×1,Conv1 層卷積核大小為1×3,通道數目為32,輸出數據為2×1 024×32,激活函數為Relu;Conv2 層卷積核大小為1×3,通道數目為16,輸出數據為2×1 024×16,卷積層后繼續連接卷積層可以提取更加抽象的特征;Pool1層池化核大小1×2,池化層輸入為2×1 024×16,經過池化層后數據維度變成原來的一半;同樣的方法得到Conv3 層輸入和輸出分別為2×512×16 和2×512×16,Conv4 層輸入和輸出分別為2×512×16 和2×512×16,Pool2 層輸入和輸出為2×512×16 和2×256×16,特征圖的大小為2×256;全連接層中使用了dropout 方法,輸出數據的維度是256;最后是輸出層,它建立特征到分類的映射,判斷輸入信號是否為NLOS 信號。根據信號的類型,最終輸出為1 或0。

圖1 本文神經網絡結構
2.2.1 數據來源
本文使用的數據來源于歐盟“地平線2020”研究計劃的子課題eWINE(elastic Wireless Networking Experimentation,eWINE)。該計劃是利用人工智能知識解決當前密集和動態無線網絡中存在的問題[6]。數據使用DW1000 超寬帶收發芯片測量,芯片配置為通道4(帶寬為500 MHz,中心頻率為3 993.6 MHz)數據長度為1 024,數據速率110 kb/s。數據集總樣本數量為42 000 個,共分為7 個不同的測量場景——辦公環境1、辦公環境2、公寓、車間、客廳、臥室和鍋爐房。本文根據研究需要重點分析辦公環境數據,樣本數量為12 000 個。數據集中每行數據的長度為1 024,其中包含CIR0-CIR1015 共1 016 個信道沖激響應數據和是否為NLOS 等信號參數。本文將原始CIR 作為輸入,將是否為NLOS作為輸出訓練CNN。
2.2.2 硬件仿真平臺簡介
計 算 機CPU 為Intel(R) Core(TM)i5-4670 3.4 GHz,沒有使用GPU,安裝內存8 GB,硬盤512 GB。
2.2.3 軟件仿真平臺簡介
軟件仿真平臺采用Windows7 64 位操作系統、Python3.6.5、Anaconda Navigator5.0.1、pip10.0.1、scikit-learn0.19.1、tensorflow1.9.0 和Keras2.1.6。程序運行過程中使用了大量第三方開發包,主要有用于科學計算和數據分析的軟件庫numpy1.14.0和scipy0.19.0,用于繪圖的python開發包matplotlib2.2.2。Anaconda是一款Python集成開發環境,是在Windows 上執行Python 數據科學和機器學習的最便捷工具。Anaconda 包含了Conda、Python 等180 個科學包及其依賴項,可以方便地用于數據分析與處理。scikit-learn 算法庫中集成了主流機器學習算法,適用于中小型實用機器學習項目。tensorflow1.9.0 是一個支持Python 語言的開源軟件庫,適合于進行神經網絡方面的研究。Keras2.1.6 是基于Theano 和tensorboard 的深度學習庫,具有高度模塊化、極簡和可拓展性等特點,支持CNN 和RNN。此外,還用到了可視化工具tensorboard1.9.0,將tensorflow 程序運行過程中權值更新、損失函數值變化、模型性能評估函數值等重要數據以圖像的方式顯示出來,方便調試與優化。
為驗證所提方法的效果,設置了3 組仿真實驗。實驗1 是觀察不同dropout 值對CNN 識別效果的影響,實驗2 是觀察不同訓練次數對CNN 識別效果的影響,實驗3 是觀察不同激活函數對CNN 識別效果的影響,最后對比NLOS 識別前后定位效果。經過實驗分析可知,采用NLOS 識別的定位能夠顯著提高定位精度。
實驗1 觀察不同dropout 值對系統識別性能的影響。將網絡中的訓練次數保持為20 000,改變不同的dropout 值,觀察不同dropout 值對NLOS 信號識別率的影響。從表1 中可以看出,不同dropout值會影響識別效果,過大或過小都會導致NLOS 識別率降低,本文選擇的dropout 值為0.5。

表1 不同dropout 值對識別率的影響
實驗2 觀察不同訓練次數對識別性能的影響。將網絡中的dropout 值保持為0.5,網絡每訓練1 000 次輸出一次結果,觀察不同訓練次數對NLOS 信號識別率的影響。從表2 可以看出,隨著訓練次數的增加,NLOS 識別率也在增加,最終識別率穩定在89.20%。

表2 不同訓練次數對識別率的影響
實驗3 觀察不同激活函數對識別性能的影響。本文設計的CNN 網絡結構使用5 個激活函數,分別在4 個卷積層和1 個輸出層中。表3 的激活函數是指卷積層和輸出層中的全部的激活函數,網絡中的dropout 值保持為0.5,觀察不同激活函數對NLOS 信號的識別率的影響。從表3 可以看出,當激活函數為relu6 時,識別效果最好為89.20%。

表3 不同激活函數對識別率的影響
激活函數為relu6 時識別效果最好,此時識別率隨著訓練次數的變化曲線如圖2 所示。
分析完NLOS 識別后,研究識別后的定位。NLOS 信號識別后的定位有兩種方法:一種是將NLOS 信號直接丟棄,只采用LOS 信號做定位;另一種是根據CIR 建立信號與測距誤差之間的模型,根據模型預測信號對應的測距誤差,測距值減去模型預測出的測距誤差得到校正后的測距值,然后利用校正后的測距值做定位。本文只分析第一種定位方法。

圖2 識別率隨著訓練次數的變化
本文使用的定位算法為LS 算法和WLS 算法,算法的推導過程在此不具體闡述,算法定位效果如圖3 所示。

圖3 NLOS 識別前后定位效果對比
由圖3 可知,采用NLOS 信號識別的定位能夠顯著提高定位精度。當存在10 個信標節點時,NLOS 信號識別前后的定位誤差分別為40 cm 和20 cm。可見,該方法有效降低了定位誤差,提高了定位精度。
本文以CNN 技術為基礎,針對室內環境下影響UWB 定位精度的主要原因是NLOS 傳播,研究了使用CNN 技術對NLOS 信號的識別,并給出識別之后的定位。文章首先介紹CNN 的理論知識,其次建立所需要的CNN 分類模型,最后基于CNN,用從真實環境中測量的原始CIR 訓練NLOS 信號分類模型。仿真結果表明,使用原始CIR 的NLOS 識別效果良好。此外,本文還研究了NLOS 識別后的定位。結果表明該方法能顯著提高定位精度。