李 慧,張南南,曹 卓,鄭 海,陳湘萍
(貴州大學 a.電氣工程學院; b.機械工程學院,貴陽 550025)
當今世界,恐怖襲擊事件頻繁發生,由全球恐怖主義數據庫(GTD)統計的數據可知,從1970年至今,記錄在案的恐怖襲擊事件高達180 000多起。恐怖襲擊不僅具有極大的殺傷性與破壞力,直接造成大量的人員傷亡和財產損失,而且還給人們帶來巨大的心理壓力,導致社會一定程度的動蕩不安,妨礙正常的工作與生活秩序,進而極大地阻礙經濟的發展[1]。對恐怖襲擊事件嫌疑人的分析預測有利于對恐怖分子進行針對性打擊,能夠為反恐和防恐工作提供有價值的信息支持,有助于提高破案效率以及盡早發現新生或者隱藏的恐怖分子,從而降低人員和財產損失。
目前國內外許多專家學者針對恐怖襲擊風險評估進行了相關研究。文獻[2]提出基于人口的簡單風險指標和基于事件的RMS恐怖風險模型2種評估方法。還有一些研究利用事件樹[3-4]、概率風險評估(Probabilistic Risk Assessment,PRA)[5-7]、貝葉斯網絡[8-10]以及神經網絡[11]等方法評估恐怖襲擊風險。而有些研究依據事件特征發現犯罪嫌疑人,如文獻[12]運用支持向量機(Support Vector Machine,SVM)預測犯罪嫌疑人。該方法根據歷史犯罪記錄進行特征選擇,訓練基于SVM的嫌疑人特征預測模型,通過此模型對案件嫌疑人的各個特征進行預測,將預測出的特征與備選嫌疑人庫中人員特征進行相似度計算,進而預測出最有可能的嫌疑人。文獻[13]基于隨機森林模型組合分類器對犯罪行為進行分析。文獻[14]基于一種混合神經模糊模型,通過從模擬的廣域監視網絡中提取的犯罪指示事件來預測在城市或地區中的犯罪行為。文獻[15]采用聚類算法,提出了一種基于Probit模型的犯罪嫌疑人判定技術。文獻[16]在分析財產犯罪時空規律的基礎上,利用BP神經網絡模型自動學習訓練各因子與財產犯罪的非線性關系,建立了財產犯罪預測模型。文獻[17]比較如K-Means、DBSCAN等聚類算法,分析其對案件的聚類效果,找出最適合犯罪檢測的聚類算法。文獻[18]提出一個綜合框架,結合社會網絡分析、小波變換和模式識別的方法預測恐怖組織的攻擊行為。但上述方法的預測效果不理想,使用的數據量也較小,反映出的犯罪特征不夠全面,且針對特殊的恐怖襲擊犯罪事件的研究還較少。
本文使用GTD數據庫中2015年和2016年30 000多條恐怖襲擊事件數據,采用目前主流機器學習分類算法預測模型Bagging、決策樹(Decision Tree,DT)、隨機森林(Random Forest,RF)以及全連接神經網絡(Fully Connected Neural Network,FCNN),對一個或多個恐怖襲擊事件嫌疑人進行預測,并使用貝葉斯參數優化策略對各預測模型的超參數進行調節,從而找到最佳的預測模型超參數。
國內外學者對恐怖分子的犯罪心理[19]、動機特征[20]、發展特點等做了大量的定性研究。文獻[21]對當代恐怖分子犯罪的目的和動機、主體構成、犯罪對象和結果以及犯罪手段進行了深入的探討。然而這些定性分析的主觀因素較多,并不能展示一個直觀的結果。結合大量相關研究文獻對已有的恐怖組織和個人進行詳細剖析,發現每次恐怖襲擊行為并不是任意的,而是有組織有目的的精心選擇,相同組織和個人的襲擊行為在一定程度上有著極大的關聯性。針對這一現象,將每次襲擊行為進行量化處理,對恐怖事件特征進行分析,根據已有的恐怖襲擊事件制造者去預測未知恐怖事件的組織和個人。
依據特征對未知事件進行預測的方法有很多,機器學習算法是目前比較常見的一種。機器學習是一種關于研究“學習算法”的學問,依賴于已有數據建立模型算法,通過提供的經驗數據,不斷學習,找到最佳模型,在面對新的數據時,已經建立的模型會給出相應的判斷[22]。本文研究的問題是將未知組織和個人的恐怖事件貼上已知的類別標簽,即分類算法問題。依照機器學習的思想,將已有的恐怖事件特征數據輸入分類算法模型中進行學習,得到最佳模型后對未知的數據集進行類別判斷,從而預測出可能的恐怖組織和個人。
本文使用的數據均來源于全球恐怖主義數據庫(GTD)。GTD是一個開源數據庫,是世界上目前最全面的非機密恐怖襲擊數據庫,其包含1970年至今超過180 000次恐怖襲擊事件的信息。每條GTD事件包括至少45個變量的信息,最近的事件包括超過120個變量的信息。這些變量的信息主要包含事件發生的日期和地點、使用的武器、目標的性質、傷亡人數以及可識別的負責團體或個人的信息等。本文在GTD中下載了2015年和2016年共發生的30 312起恐怖襲擊事件特征數據作為實驗的信息支撐。
本文對下載數據進行特征選擇后做標準化處理,將已經預處理的數據按犯罪組織名稱或個人(gname)作為標簽劃分數據集。gname已知的作為訓練集,未知的作為測試集。將訓練集輸入各個分類算法模型中學習訓練,找到最佳機器學習算法模型,并用其預測測試集,對測試集進行分類并貼上標簽。恐怖襲擊事件制造嫌疑人預測流程如圖1所示。

圖1 恐怖襲擊事件嫌疑人預測流程
2.1.1 預處理
本文根據事件相關屬性選取了12個特征。
1)事件發生的日期和地點:即年(iyear)、月(imonth)、地區(region)、附近地區(vicinity)、緯度(latitude)和經度(longitude)。其中,地區分為12類,每個類別如表1所示。

表1 地區類別
2)使用的武器和目標的性質:即攻擊類型(attacktype1)、武器類型(weapontype1)、成功的攻擊(success)和目標/受害者類型(targtype1)。其中,攻擊類型共9類,如表2所示,武器類型共13類,目標/受害者類型共22類。

表2 攻擊類型
3)傷亡人數:死亡總數(nkill)。
4)可識別的負責的團體或個人的信息:聲稱負責(claimed)共有兩類,0表示沒有人聲稱對事件負責,1表示一個組織或個人聲稱對襲擊負責。
本文選擇的特征數據包含不同的量綱,并且某些統一指標的數量級差距過大,為了使表征不同屬性的特征有可比性,對其進行無量綱處理。數據標準化處理(Normalization),即歸一化,可以保證各變量的變化幅度處于同一水平,使各指標處于相同數量級,從而消除數據之間數量級差距過大引起的誤差。本文選取的30 000多條數據中,死亡總數這一特征各數值之間的數量級差距過大,因此,將其進行標準化處理。在機器學習分類問題中,多數算法基于向量空間中的度量進行計算,因此,特征之間的距離計算非常重要,而離散的特征值之間計算出的距離并不合理。為了使非偏序關系的變量取值不具有偏序性且到原點等距,本文采用one-hot編碼處理特征,具體特征為年、月、地區、附近地區、緯度、經度、攻擊類型、武器類型、成功的攻擊、目標/受害者類型以及聲稱負責。由于gname字段包含實施攻擊的組織的名稱,因此以gname列作為分類標簽并將其定性特征轉換為定量特征。12個特征經過歸一化和one-hot編碼處理后,生成了一個1×76維的輸入向量。
2.1.2 數據集劃分
在訓練模型時,首先將訓練數據集劃分為訓練樣本集和測試樣本集,分別用來訓練模型參數和評價預測效果。由于對數據集的劃分會較大程度影響模型的預測結果,因此本文采用交叉驗證策略來保證結果的穩定性。交叉驗證法是一種常見的數據劃分方法,它將數據集劃分為K個大小相似的互斥子集,從而得到K組訓練集和測試集,進而對模型進行K次訓練。
本文選擇K=10,即10折交叉驗證。然而在10折交叉驗證過程中,隨機劃分樣本可能導致在訓練樣本集中不能包含所有類別的樣本,即訓練樣本類別不全,且不同類別數據分布不勻。因此,本文對所有類別的事件個數分別進行統計,將統計的506個類分別按10折交叉驗證的方法劃分至訓練樣本集和測試樣本集,即改進的10折交叉驗證方法,如圖2所示。

圖2 改進的10折交叉驗證方法
根據恐怖襲擊事件特征預測恐怖事件制造者屬于機器學習中的分類問題,本文選擇機器學習中主流分類算法Bagging、DT、RF和FCNN對恐怖襲擊事件制造者進行預測,并對其性能進行評估比較。
Bagging,也稱bootstrap aggregating,是并行式集成算法的代表[22]。集成學習的主要思路是先通過一定的規則生成多個學習器,然后通過對每個基分類器的預測結果投票來進行分類,最后綜合判斷輸出分類結果。Bagging通過有放回的隨機采樣方法,得到n個含有m個訓練樣本的數據集,將這n個采樣集分別送到n個基分類器中進行學習,并使用簡單投票法對這n個分類器的預測結果進行表決。
隨機森林[23]是在Bagging基礎上的一個擴展,RF以決策樹為基分類器,并且在決策樹的訓練過程中引入隨機屬性選擇[22],增強了模型的泛化能力。
決策樹[24-26]是一種從無次序、無規則的訓練樣本集中推理出決策樹表示形式的分類規則方法。它主要由根節點、父節點和子節點、葉節點組成,決策樹的生成過程包括構樹和剪枝2個階段。
神經網絡是多個神經元按照一定的層次結構連接的一種網絡結構[22]。機器學習中涉及的人工神經網絡是模擬生物學上的神經網絡,可將其視為包含許多參數的數學模型。根據KOHONEN于1988年的描述,神經網絡可定義為由具有適應性的簡單單元組成的廣泛并行互連的網絡,其能夠模擬生物神經系統對真實世界物體所做出的交互反應。全連接是指神經網絡的每層神經元都與下一層神經元全部連接,這種連接是神經網絡最常見最基本的一種連接方式。通過三層神經網絡可以擬合任意一種非線性函數,具有較強的自學習、自適應和泛化能力。
本文使用Python中scikit-learn[27]函數庫實現決策樹、隨機森林、Bagging分類器,利用Python中keras函數庫實現全連接神經網絡。
在使用機器學習模型進行預測之后,需要對預測結果做出評價。本文采用的評價指標為準確率A、精度P、召回率R和F1值。其中,準確率可以對預測結果做出直觀反映,精度和召回率在準確率無法反映真實結果時對其做出補充。當P值和R值出現矛盾時,需要綜合考慮2個指標,即綜合評價指標F1值。
(1)
(2)
(3)
(4)
其中,TP為真正例,TN為真反例,FP為假正例,FN為假反例。
超參數[28-29]是機器學習模型中的框架參數,是在開始學習過程之前設置的參數,而不是通過訓練得到的參數數據。通常情況下,需要對超參數進行優化,給學習機選擇一組最優超參數,以提高學習的性能和效果。它們跟訓練過程中學習的參數(權重)不同,通常手工設定,然后不斷試錯調整,因此,大量的專家經驗必不可少。為了避免重復試錯的過程,采用非參數學習自動地優化模型參數選擇。
貝葉斯優化[30-32]通過對模型進行擬合找到使獲取函數最大化的超參數配置,對該配置進行評估,并重復這一過程。它是一種在沒有目標函數的情況下根據已有的采樣點預估函數最大值的自動尋優算法。該算法假設函數符合高斯過程,其主要目標為學習函數的形態和找到該函數的極值。本文輸入超參數配置,通過貝葉斯優化算法對候選超參數配置進行預測,并且根據獲取函數評估每個候選預測的效用,從而找到適用于每個學習模型的最優超參數。貝葉斯尋優的實現使用了Python中的Sherpa[33]函數庫。
本文實驗的硬件平臺為Intel(R)Core(TM)i5-4200M CPU @2.50 GHz、4 GB內存、1 000 GB硬盤以及Windows7操作系統,軟件環境平臺為Python3.6、keras、Sherpa以及scikit-learn。
在將數據輸入模型學習之前,使用貝葉斯優化對4種機器學習算法分別進行參數尋優。
1)Bagging算法的最佳模型內置參數:基分類器76個,最大特征數為61,最大樣例數為7 557。
2)隨機森林的最佳模型內置參數:基分類器51個,最大特征數為50,葉節點最小樣本數為2。
3)決策樹的最佳模型內置參數:分裂所需最小樣本數為2,深度為30。
4)全連接神經網絡的最佳模型內置參數:4個隱含層為全連接層,每層含118個神經元,激活函數為Relu,2個池化層(Dropout)分別舍棄1/3的神經元,輸出層激活函數為Softmax。
對2015年和2016年的數據預處理后,分別輸入4種分類算法中進行比較。實驗通過改進的10折交叉驗證分別訓練10次,將每次訓練的結果輸出保留,并且計算10次輸出結果的平均值,得到指標對比結果如表3和圖3所示。

表3 4種算法預測結果

圖3 4種算法預測結果對比
從表3可以看到,Bagging算法預測精度最高,為0.911 0,其準確率為0.906 5,綜合評價指標F1值為0.899 8;其次是隨機森林,其精度也達到了0.903 8;再次為決策樹。由于這些算法都是基于樹模型的分類算法,因此在本文實驗中基于樹模型的分類器預測精度都比較理想。
從圖3可以看出,FCNN的4個評價指標中召回率較低,而精度較高。雖然精度和召回率的值越高越好,但是這2個指標在某些場景下卻是互斥的,所以需要引進一定的約束,即權衡兩者的F1值。FCNN的F1值高達0.825 3,說明在召回率較低的情況下,該算法仍然比較理想。
基于樹的分類器精度固然比較高,但是也只能預測出相似度最高的一個結果,一旦出現誤判就沒有可供參考的其他選擇,因此,本文引入全連接神經網絡。從表3可以看出,全連接神經網絡的預測精度為0.877 8,也達到了比較理想的狀態,并且能夠輸出每個結果的概率大小。這樣就可以在概率較大的前幾個結果中進行排查,在一定的范圍內鎖定恐怖襲擊犯罪嫌疑人。
本文比較Bagging、決策樹、隨機森林和全連接神經網絡算法對恐怖襲擊事件嫌疑人進行預測的結果。實驗結果表明,基于樹的算法可信度較高,其中Bagging算法的預測精度最高,但當出現誤判或漏判時,該類算法只能輸出一個置信度最高的結果而無法給出其他選擇。全連接神經網絡可以列出所有結果的可能性,并根據可能性大小,在排名靠前的結果中鎖定目標,其預測精度為87%左右。根據實驗結果,可以先以Bagging算法鎖定頭號恐怖襲擊事件嫌疑人,再通過全連接神經網絡算法在小范圍內進行逐一排查,從而對恐怖分子作出針對性的打擊。