吳 瓊,滕云田,王曉美
(中國(guó)地震局地球物理研究所,北京 100081)
高精度絕對(duì)重力測(cè)量技術(shù)可以實(shí)現(xiàn)地球重力場(chǎng)及其隨時(shí)間變化和空間分布的μGal 量級(jí)測(cè)量(1 μGal= 10-8m/s2),是重力匹配導(dǎo)航[1]、深空探測(cè)[2]等領(lǐng)域最重要、最基本的測(cè)量技術(shù)之一。雖然現(xiàn)階段國(guó)內(nèi)的絕對(duì)重力測(cè)量?jī)x器還依賴進(jìn)口,但隨著碘穩(wěn)頻激光器研制、高精度時(shí)頻測(cè)量、真空技術(shù)以及精密機(jī)械加工等領(lǐng)域的不斷進(jìn)步,自主研發(fā)的高精度絕對(duì)重力儀正逐漸成熟并向?qū)嶋H應(yīng)用領(lǐng)域拓展[3]。
絕對(duì)重力儀一般采用分組多次測(cè)量求平均的方式獲得最終測(cè)量結(jié)果。在實(shí)際測(cè)量過(guò)程中,儀器自身的系統(tǒng)振動(dòng)和測(cè)點(diǎn)的背景振動(dòng)對(duì)測(cè)量結(jié)果的影響比較明顯,是引起測(cè)量結(jié)果離散度變大和導(dǎo)致測(cè)量結(jié)果中出現(xiàn)異常點(diǎn)的主要原因[4]。對(duì)單次測(cè)量的時(shí)間-位移坐標(biāo)進(jìn)行最小二乘擬合時(shí),由于測(cè)量誤差的存在,同樣會(huì)導(dǎo)致測(cè)量結(jié)果出現(xiàn)異常點(diǎn)[5]。此外,激光器和銣原子頻標(biāo)的電子系統(tǒng)長(zhǎng)期連續(xù)工作時(shí)可能存在的瞬時(shí)擾動(dòng),使得提供的長(zhǎng)度基準(zhǔn)和時(shí)間基準(zhǔn)會(huì)發(fā)生小概率的跳變,從而造成單個(gè)測(cè)量結(jié)果異常甚至突變。
目前針對(duì)測(cè)量過(guò)程中的異常點(diǎn)(離群程度較?。┖屯蛔凕c(diǎn)(離群程度較大),一般采用的處理方式是在組測(cè)量結(jié)果計(jì)算時(shí),采用基于正態(tài)分布的一元異常點(diǎn)檢測(cè)算法進(jìn)行異常點(diǎn)的檢測(cè)和舍棄。但實(shí)際測(cè)量結(jié)果表明,在單組100 次下落的絕對(duì)重力測(cè)量過(guò)程中,如果異常點(diǎn)出現(xiàn)的個(gè)數(shù)較多(大于5 個(gè))或離群程度不一樣的時(shí)候,該算法會(huì)造成某些異常點(diǎn)的漏檢,降低組測(cè)量結(jié)果的測(cè)量精度并可能在最終測(cè)量結(jié)果中引入測(cè)量偏差。
隨著人工智能(AI)技術(shù)的不斷進(jìn)步,異常點(diǎn)檢測(cè)作為一個(gè)特定的研究方向,在過(guò)程工業(yè)、金融業(yè)、通信領(lǐng)域得到普遍關(guān)注和廣泛應(yīng)用[6]。異常點(diǎn)檢測(cè)算法一般基于某個(gè)存在的模型,定義一個(gè)區(qū)間,處于區(qū)間外的點(diǎn)被定義為異常點(diǎn)。根據(jù)模型的定義可以將異常值檢測(cè)算法分為基于概率分布模型[7]、基于距離和聚類(lèi)[8]、基于數(shù)據(jù)分類(lèi)[9]等。
考慮到在自主研發(fā)的絕對(duì)重力儀測(cè)量過(guò)程中,單組測(cè)量數(shù)據(jù)一般會(huì)被預(yù)先設(shè)定為50 或100 個(gè),但要求快速在線完成異常值檢測(cè),故本文利用基于歐式距離的局部異常因子LOF 算法(Local Outlier Factor)[10]對(duì)組內(nèi)測(cè)量數(shù)據(jù)進(jìn)行異常值檢測(cè)。通過(guò)對(duì)LOF 算法關(guān)鍵唯一參數(shù)——“鄰域?qū)挾取钡倪x取及模擬仿真,并與傳統(tǒng)的基于正態(tài)分布的一元異常點(diǎn)檢測(cè)算法進(jìn)行對(duì)比確定,基于LOF 算法的異常值檢測(cè)可以實(shí)現(xiàn)對(duì)組內(nèi)測(cè)量異常點(diǎn)在線、快速、精準(zhǔn)檢測(cè),同時(shí)還可以消除漏檢和誤檢現(xiàn)象,從而提高自主研發(fā)絕對(duì)重力儀測(cè)量的精度和準(zhǔn)確度。
目前絕對(duì)重力測(cè)量中,針對(duì)測(cè)量過(guò)程中出現(xiàn)的異常值一般采用一元正態(tài)分布異常值檢測(cè)算法進(jìn)行判斷和排除,基本算法原理如下:
對(duì)于一次測(cè)量獲得的n個(gè)測(cè)量結(jié)果中,定義第i個(gè)測(cè)量結(jié)果xi的異常值Zi為:
其中,為本組測(cè)量結(jié)果的平均值,σ為本組測(cè)量的標(biāo)準(zhǔn)差。
如果Zi≥ 3,則認(rèn)為該值為異常值,在本次測(cè)量結(jié)果中應(yīng)予以舍棄。但是在自主研發(fā)的絕對(duì)重力儀測(cè)量過(guò)程中,這種檢測(cè)算法很容易造成異常值的漏檢。為了說(shuō)明這一現(xiàn)象,首先構(gòu)建一組測(cè)試用的數(shù)據(jù)集,包含異常點(diǎn)和突變點(diǎn),具體如下:
1)構(gòu)建數(shù)據(jù)集,包含100 個(gè)數(shù)據(jù),分布區(qū)間為400~600,單位為μGal,服從標(biāo)準(zhǔn)正態(tài)分布;
2)在第10、30、49、51、90 位置的測(cè)量結(jié)果上分別疊加600、-600、-400、-400、400,構(gòu)建異常點(diǎn);
3)在50 和70 次測(cè)量結(jié)果上疊加-2500 和1500,構(gòu)建突變點(diǎn)。
如圖1所示,當(dāng)不考慮50、70 位置的突變點(diǎn),對(duì)構(gòu)建的數(shù)據(jù)集使用一元異常值檢測(cè)算法時(shí),設(shè)置的異常點(diǎn)被正常檢出。但是當(dāng)數(shù)據(jù)集的第50 和70 位置被設(shè)置為突變點(diǎn)后,第10、30、49、51、90 位置的異常點(diǎn)均被認(rèn)為是正常值保留??梢哉f(shuō)當(dāng)測(cè)量的數(shù)據(jù)中出現(xiàn)突變點(diǎn)時(shí),離群程度較小的異常點(diǎn)被漏檢并參與最終測(cè)量結(jié)果的計(jì)算。
這種現(xiàn)象出現(xiàn)在項(xiàng)目組自主研發(fā)絕對(duì)重力的測(cè)量 結(jié)果中,直接影響了最終測(cè)量結(jié)果的準(zhǔn)確度和精度。故需要引入新的異常值檢測(cè)算法,不僅可以完成對(duì)離群程度較大的突變點(diǎn)進(jìn)行檢測(cè),同時(shí)還要避免對(duì)離群程度較小、連續(xù)出現(xiàn)的異常點(diǎn)的漏檢。本文選用計(jì)算速度快,檢測(cè)效果好的局部異常因子LOF 算法。
局部異常因子LOF 算法的計(jì)算流程如下:
Step 1:定義測(cè)試數(shù)據(jù)集內(nèi)的 p(x1,y1)點(diǎn)和 q(x2,y2)點(diǎn)之間的距離:
Step 2:定義點(diǎn)p 的鄰域 D { p} 寬度k:
對(duì)于點(diǎn)o ∈ D:
1)至少有k個(gè)點(diǎn) o' ∈ D { p},滿足:
2)至多有k-1 個(gè)點(diǎn) o' ∈ D { p},滿足:
Step 3:計(jì)算點(diǎn)p 的可達(dá)距離:
Step 4:計(jì)算點(diǎn)p 局部可達(dá)密度:
Step 5:計(jì)算點(diǎn)p 的局部可達(dá)因子LOF:
從LOF 的定義可以看出,在點(diǎn)p 的鄰域內(nèi),其他點(diǎn)的局部可達(dá)密度大,而點(diǎn)p 的局部可達(dá)密度小,則點(diǎn)p的局部異常因子就大,即點(diǎn)p是一個(gè)局部異常值。
Breunig 等[10]還證明了在測(cè)量結(jié)果組成的數(shù)據(jù)集 合中,正常值的LOF 一般在1 左右并小于2,因此可 以將LOF 值大于2 的作為異常值或突變值。
從1.2 節(jié)LOF 的定義可以看出,對(duì)測(cè)量數(shù)據(jù)的每個(gè)測(cè)點(diǎn)計(jì)算其LOF 時(shí),只有1 個(gè)參數(shù),即鄰域?qū)挾萲影響最終檢測(cè)結(jié)果。因此本部分通過(guò)數(shù)值模擬確定k在利用LOF 算法完成絕對(duì)重力測(cè)量數(shù)據(jù)檢測(cè)時(shí)的取值。
為了更好地測(cè)試k對(duì)最終檢測(cè)結(jié)果的影響程度,基于1.1 節(jié)構(gòu)建的測(cè)試數(shù)據(jù),主要針對(duì)以下幾方面進(jìn)行LOF 算法的檢測(cè)效果測(cè)試:
1)存在突跳點(diǎn)的情況下離群程度較小的異常點(diǎn)檢測(cè);
2)存在連續(xù)異常、突跳情況的異常點(diǎn)檢測(cè);
3)原始數(shù)據(jù)標(biāo)準(zhǔn)差較大情況下異常點(diǎn)檢測(cè)。
不同k值對(duì)應(yīng)的各個(gè)測(cè)點(diǎn)的LOF 計(jì)算結(jié)果如圖2所示。LOF 的大小以不同的顏色標(biāo)識(shí),可以看出隨著鄰域?qū)挾萲取值從0 到100 的變化,LOF 算法的檢測(cè)效果的變化:
k=1~4:漏檢率和誤檢率較高;
k=5~20:對(duì)1)、2)、3)項(xiàng)內(nèi)容均可以正確檢測(cè),各個(gè)異常點(diǎn)的LOF 值明顯可辨(均大于20);
k=21~100:出現(xiàn)不同程度的漏檢現(xiàn)象。
圖3顯示了不同的參數(shù)k對(duì)應(yīng)的異常點(diǎn)檢測(cè)效果。其中第1 和第2 條曲線分別顯示了將檢測(cè)出的異常點(diǎn)刪除后得到的新數(shù)據(jù)集的均值和標(biāo)準(zhǔn)差,第3 條曲線顯示的是檢出的異常點(diǎn)個(gè)數(shù)。
測(cè)試數(shù)據(jù)集共設(shè)置7 個(gè)異常點(diǎn),從圖2和圖3的第3 條曲線可以明顯看出,在5≤k≤60 的區(qū)間范圍內(nèi),7 個(gè)異常點(diǎn)可被準(zhǔn)確檢出,包含第49、50 和51三個(gè)連續(xù)異常和突變點(diǎn),異常點(diǎn)檢出后的均值和方差 與模擬數(shù)據(jù)預(yù)設(shè)的均值和方差相比均小于5 μGal。
圖2 不同k 值對(duì)應(yīng)的各個(gè)測(cè)點(diǎn)的LOF Fig.2 Local outlier factor of each measurement point corresponding to different k values
圖3 不同k 值時(shí)異常點(diǎn)檢測(cè)效果 Fig.3 Effect of outlier detection under different k values
在實(shí)際的絕對(duì)重力測(cè)試過(guò)程中,每組測(cè)量次數(shù)一般設(shè)置為50~100,24 h 完成48 組測(cè)量。
綜合圖2、圖3,考慮運(yùn)算的速度、異常點(diǎn)LOF 值的可辨識(shí)性和算法檢測(cè)的準(zhǔn)確性,鄰域?qū)挾萲的取值設(shè)定為10,并要求測(cè)量時(shí)每組測(cè)量次數(shù)不少于20 次。
自主研發(fā)的激光干涉絕對(duì)重力儀于2018年2月9日至4月1日,在中國(guó)計(jì)量科學(xué)研究院昌平園區(qū)2017國(guó)際絕對(duì)重力比對(duì)基地的8 號(hào)測(cè)點(diǎn)進(jìn)行連續(xù)觀測(cè)。測(cè)試期間設(shè)置每組測(cè)量50 次,組間時(shí)間間隔是4 h,共完成14 650 次測(cè)量。測(cè)量結(jié)果的準(zhǔn)確度和測(cè)量精度依據(jù)《中國(guó)大陸構(gòu)造環(huán)境檢測(cè)網(wǎng)絡(luò)技術(shù)規(guī)程—絕對(duì)重力測(cè)量部分》之“成果計(jì)算”部分完成計(jì)算。
圖4所示為連續(xù)2 組,共100 個(gè)原始測(cè)量結(jié)果、一元異常值檢測(cè)結(jié)果和本文討論的LOF 算法完成的異常點(diǎn)檢測(cè)結(jié)果(k=10,LOF 大于2 認(rèn)為是異常值[10])。
從圖4可以看出,LOF 算法將負(fù)向離群程度較大的第27 點(diǎn)作為異常值準(zhǔn)確檢出,但是一元異常值檢測(cè)算法則將其作為有效值保留,這樣在計(jì)算這100 個(gè)測(cè)量結(jié)果的平均值時(shí),基于一元異常值檢測(cè)算法的結(jié)果肯定小于基于LOF 算法檢測(cè)的結(jié)果,影響了測(cè)量結(jié)果的準(zhǔn)確度。
圖4 實(shí)測(cè)數(shù)據(jù)的異常值檢測(cè)算法對(duì)比 Fig.4 Comparison on outlier detection algorithms based on measured data
圖5是分別利用一元異常值檢測(cè)算法和LOF 算法,按照50 個(gè)測(cè)量結(jié)果為一組計(jì)算絕對(duì)重力組測(cè)量結(jié)果的誤差棒圖對(duì)比??紤]到在測(cè)量過(guò)程中,2018年2月 12日河北廊坊永清縣Ms4.3 地震對(duì)儀器參考棱鏡的影響造成的測(cè)量結(jié)果異常,圖5中顯示的是本次連續(xù)測(cè)量期間震后2018年2月22日至4月13日共計(jì)50 天的連續(xù)測(cè)量數(shù)據(jù)。可以看到,LOF 算法完備地完成測(cè)量結(jié)果中異常值的檢測(cè),組測(cè)量結(jié)果的誤差棒圖沒(méi)有出現(xiàn)異常結(jié)果,200 組的測(cè)量結(jié)果為980XXX783.0 μGal(儀器測(cè)量高度位置),測(cè)量精度為1.94 μGal。
基于一元異常值檢測(cè)的組測(cè)量結(jié)果中,第138 組 和152 組出現(xiàn)異常結(jié)果,表明這兩組內(nèi)有較為明顯的離群點(diǎn)未被正確檢出,且參與了組結(jié)果的計(jì)算,200組的測(cè)量結(jié)果為980XXX782.39 μGal(儀器測(cè)量高度位置),測(cè)量精度僅為427.15 μGal,遠(yuǎn)大于利用LOF算法進(jìn)行異常值檢測(cè)后的計(jì)算結(jié)果。
圖6為200 組測(cè)量結(jié)果,利用一元異常值檢測(cè)算法和LOF 算法進(jìn)行異常值檢測(cè)后單組測(cè)量精度,第138 組和152 組內(nèi)由于存在未被檢出的異常點(diǎn),造成 單組測(cè)量精度偏差。而對(duì)其他的單組測(cè)量精度對(duì)比,基于LOF 算法的組測(cè)量結(jié)果精度與一元異常值檢測(cè)算法的結(jié)果相比,平均小9.37 μGal。
圖5 兩種異常值檢測(cè)算法完成異常值檢測(cè)后組測(cè)量結(jié)果的誤差棒圖對(duì)比 Fig.5 Comparison on error bars of the two outlier detection algorithms
圖6 兩種異常值檢測(cè)算法完成異常值檢測(cè)后單組測(cè)量精度對(duì)比 Fig.6 Comparison on precisions of the two outlier detection algorithms
本文首先描述了目前自主研發(fā)絕對(duì)重力儀中普遍使用的基于正態(tài)分布的一元異常值檢測(cè)算法的漏檢現(xiàn) 象。然后引入LOF 算法,通過(guò)對(duì)同一組測(cè)試數(shù)據(jù)集進(jìn)行計(jì)算的結(jié)果表明,LOF 算法規(guī)避了存在離群程度不同的異常點(diǎn)時(shí)的漏檢現(xiàn)象,同時(shí)對(duì)連續(xù)出現(xiàn)的異常點(diǎn)和突跳點(diǎn)均可以準(zhǔn)確檢出。該算法非常適合自主研發(fā)絕對(duì)重力儀組測(cè)量結(jié)果的異常值檢測(cè)。
從LOF 算法的定義可以看出,影響該算法計(jì)算結(jié)果的唯一參數(shù)是鄰域?qū)挾萲。對(duì)此利用構(gòu)建的數(shù)據(jù)樣本進(jìn)行數(shù)值模擬計(jì)算的結(jié)果表明,對(duì)于100 個(gè)數(shù)據(jù)樣本組成的數(shù)據(jù)集,5≤k≤60 的區(qū)間范圍內(nèi)可以檢出離群程度不同的全部異常點(diǎn),無(wú)漏檢現(xiàn)象??紤]實(shí)際測(cè)量中單組測(cè)量次數(shù)一般為50~100 次,從計(jì)算時(shí)間和異常值檢測(cè)效果的綜合考慮,取k=10。
最后利用LOF 算法,取鄰域?qū)挾萲=10,對(duì)自主研發(fā)絕對(duì)重力儀長(zhǎng)期連續(xù)觀測(cè)數(shù)據(jù)進(jìn)行處理,對(duì)比了一元異常值檢測(cè)算法和LOF 算法的檢驗(yàn)效果。結(jié)果表明,利用LOF 算法可以在線、快速、精準(zhǔn)地完成異常值檢測(cè),明顯提高總體計(jì)算結(jié)果的精度,同時(shí)不會(huì)影響測(cè)量結(jié)果的準(zhǔn)確度。在下一步工作中考慮將LOF 算法代替一元異常值檢測(cè),作為自主研發(fā)絕對(duì)重力儀單組異常值檢測(cè)的通用算法。