“ 危險假象背後往往隱藏著邪魅規律”
01—突遇引力沼澤
經歷過上次的碎片羣攻擊之後,艦隊行駛地格外謹慎;但也因爲BIT的存在,他們對於繼續尋找引力走廊入口(第一個拉格朗日點)的信心多多少少有所增加。
又是數十個開普勒星日過去了,第一艦隊就像一片樹葉遨遊在太空。
忽然,第一艦隊領航的巡航艦K22在前方0.0005光年的位置,檢測到了未知引力源;但是前方明明只是一片如同蜘蛛網一般密佈的“小星體”,原則上無法產生如此強大的引力!而且引力源的分佈極其不均勻,最致命的是,在目前檢測到的所有未知引力源當中,哪怕最小的那個都足以將整個艦隊撕毀!
全員一級警備!!!激光束打擊!
就在所有人以爲前面的“蜘蛛網”將被打出一個大窟窿以使艦隊得以通過時,讓人目瞪口呆的事情發生了:激光束並未擊穿任何一個小星體,而是消失在“蜘蛛網”外圍,就像一個有著嚴格結界的黑洞,結界外面激光束可以發揮作用,但是一旦進入結界內部立馬消失不見,更不用說造成打擊!
“是黑洞!”大家紛紛說道!儘管是一堆看上去並不是黑洞的天體,而且這個神奇的結界也令人費解,但卻有著黑洞一般的強大作用力 。
艦長果斷分析了眼前的形式:前方未知引力源處在前往引力走廊起點的必經之路上,倘若此時折返,定是前功盡棄,必須要設法穿過這個引力沼澤!
爲了探測前方引力場的分佈,艦長下令,以艦隊所在的位置爲截面中心,向截面的另一側外圍——分佈著未知引力源的一側——發射引力探測器,探測強引力點的分佈和具體位置,然後對收集的數據加以分析從而可在無引力災難的區域通行。
經過半個小時的等待,結果出來了,艦長立馬指揮隊員們規劃通行路線,一條歪歪扭扭七拐八拐的路線隨即呈現在大家眼前。沒有更好的選擇,只能硬著頭皮前進。
其中綠色代表引力釋放點,爲了避開引力釋放點同時避開天體碰撞,紅色就是最終規劃出來的路線。
有了上次的教訓,這次艦長派遣了一艘無人艦k00前往試行規劃路線。在大家的矚目下,k00以0.0031倍光速沿著既定路線前行。
開始一切正常,k00不斷返回路線的實況,然而好景不長,僅僅走過了路線的1/13的路程,母艦就檢測到k00周邊跟之前的引力檢測結果不一致,就當大家一頭霧水還在各種討論分析的時候,k00失去了聯繫,一切信號全部消失!
K00被這個看似黑洞的區域吞噬了。
等到第一艦隊再次通過引力探測器探測到疑似k00時,只發現了k00的側翼的一塊碎片… …k00確實被強大引力撕裂了。
衆人錯愕的同時爲k00的隊員們進行了默哀!
艦長隨即再次進行激光引力探測,發現這次的引力分佈跟上一次有很大差異,就好像他們所在的時空發生了翻天覆地的變化;然後是第三次,第四次… …每次探測的結果好像都不一樣,整個艦隊陷入了無限的沉默… …
“等一下”,BIT好像突然發現了什麼
衆人的眼光瞬間齊刷刷投向BIT。BIT將多次的探測結果進行了全息投影,但是僅僅將一片區域(就是k00失去信號的區域)的部分結果進行了投影。就在大家仍然疑惑時,BIT用手指輕輕劃了一個範圍,還沒等BIT進一步細說,艦長髮現了端倪:每次探測的時候,雖然這個區域是固定的,但區域內的引力釋放點在不斷地遊移,就像一個國王,在領地內不斷地遊走,所以激光引力探測器的結果每次都不一樣,探測到的都只是引力釋放點的位置,但是釋放點周圍的區域具有跟釋放點同等的引力水平,探測器根本沒有探測到,也就是說至於周圍哪些天體會受到引力釋放點的影響從而表現出強大引力無從得知!換句話說,每個引力區域內部的點引力基本一致,即便是不靠近引力釋放點,艦船飛躍這個區域一樣會被撕裂!更令人難以接受的局面是,艦隊面臨的正是有幾百上千個這樣的碎片區域構成的,但我們不知道具體多少個這樣的區域,也不知道每個區域的邊界。
【注】:下圖中藍色區域就是內部引力釋放點的遊移範圍,也就是說,引力探測器只是探測到了內部引力探測點的位置,本以爲避開了這個位置以爲就可以逃脫引力束縛,但實際上這個引力釋放點的影響範圍的形狀非常不規則,原路線處在這個引力範圍,最終導致了k00的毀滅。
BIT對艦長的分析表示贊同,但是艦隊並非無計可施。BIT指著一個大概區域的多次探測結果圖說道,每一個區域的大小和形狀可能是不同的;而且只要不在區域內部,附近經過的物體只要以0.4‰的光速駛過就足以掙脫其強大引力的束縛,好似在區域的邊界有一堵牆,把引力都擋住了(上圖中的藍色線圈就可以理解爲這堵“牆”)!“牆”內的引力強到足以摧毀整個艦隊,但是“牆”外的星體就沒有那麼大引力。
我們需要做的就是確定艦隊前面這塊空間內的所有類似區域(不只有探測出引力釋放點,還要找出引力釋放點的影響範圍,即找出若干個上圖中的藍色不規則區域)就可以有效躲避,從而穿越這個引力沼澤!
星牛很機靈地問道:每個引力區域的引力釋放點在不斷地遊移,我們如何確定每片引力區域的形狀和大小呢?換句話說,我們如何知道每個區域的邊界從而有效躲避?
BIT進一步指了一下之前的探測圖說道:大家仔細看,每個區域的引力釋放點位置雖然都在不斷地變動,但是不同區域之間的引力好像存在差別,我們不能僅僅依靠觀測到的有限個數的點就貿然確定其邊界,因爲完全有可能在我們忽略的沒有觀測到的地方有一個延伸出來的小空間恰好就是屬於這個可怕的引力區。
星牛:那你說了半天白說… …
BIT說,彆著急,你忘了上次的經歷了嗎?這些小星體的引力表現很有規律,我已經“看到”了決定每個星體引力大小的特徵:星體直徑、星體密度、星體溫度、星體周邊迷你行星數等;每個星體都可以表示爲一個點,比方說這個星體,說著,BIT指向探測圖上的一個小星體,這個小星體就可以表示爲(21,443,322,53,1.9,55,… …,88)分別表示其體積爲直徑21,密度443,溫度322,周邊迷你行星數目53.. ….
星牛搶說:然後判斷他們哪一個是強引力星體,哪個是弱引力星體嗎?
BIT說,不!因爲我們事先不知道哪種星體屬於強引力星體,哪些屬於弱引力星體,所以我們就沒法事先訓練好一個監督模型用來判斷其他星體。通過特徵映射我麼可以看到,擺在我們面前的這個蜘蛛網一般的星體陣,在引力上的表現實際是成簇的,也就是映射之後的特徵空間上屬於同一個引力區域的星體之間距離很近(就像上圖中藍色線圈內的天體,在引力上表現爲一簇或者一類)。我們要做的就是找出這些簇,找到每個引力區域!爲了把所有相近的強引力星體所在的區域判斷出來,得通過他們在新的特徵空間上的“距離”,比方說這個星體aa和這個星體bb他們分別被表示爲(212,54,12,98,807,33… … ,666)和(31,56,389,90,70,154… …,781),那他們之間的距離就是
還沒等BIT說完,星牛就搶著說,兩點之間的距離我還是會算的。
BIT笑笑接著說:爲了更好的說明過程,先明確幾個概念:核心點是其周圍具有與之足夠接近的點,如果找不到這樣接近的點那它就是離羣點,孤零零的,足夠接近這個必須用一個數字來約束,小於這個距離的都是能彼此夠得著的,接下來我們可以按照這個規則來找出那些強引力天體的區域羣了。
(1:首先找到一個引力釋放點P
(2:根據我們約定的這個足夠近的距離值找到這樣的接近(不是指物理距離,而是指根據多個特徵維度表示出來的特徵空間上的距離)天體形成一簇或者一類
(3:如果找不到這樣的點,也就是某個點孤孤零零,周圍沒有接近的其他點
(4:重複上述步驟,直到把所有的天體都這樣查找一遍
整個過程就像一個人舉著火把黑夜中點亮其他火種,夠得著的點亮,然後握手合作成爲同一族,夠不著的就不屬於同一族了。
爲了簡化問題,假設所有的天體一共有13個,每個都可以表示爲這樣的兩個特徵,比如P1表示爲(1,2)... ...
那麼這13個點在二維空間的分佈就表現爲下圖這樣的簇,比如P3、P4、P13、P2、P1就更接近,並且與其他點有較大的距離從而表現爲一簇:
BIT看出了大家的擔心,隨即向艦長申請了探測艦k09,前去探測路線的可行性,下圖黃色路線就是避開衆多藍色引力沼澤之後的新路線。
艦長稍作思考之後同意了。
在大家注視下,k09穿越了所有的星體,成功到達了“蜘蛛網”星體陣的另一側。
於是,大家不再有任何遲疑,整個艦隊沿著這個路線開拔並有驚無險地安全通過了引力沼澤。
02—掉書袋
【1】 上述情節是對DBSCAN聚類算法的一個通俗演義。
【2】 聚類是機器學習中的一類方法,通俗點講就是近朱者赤近墨者黑的道理,只不過聚類中涉及到的數據往往不只是單一維度上的“接近”,而是多個維度表示爲數值之後的多維空間上的“接近”;區別於分類,聚類不需要監督數據,屬於無監督算法。
【3】 DBSCAN對於“足夠接近”這個概念是通過兩個參數來刻畫的,一個是距離閾值a,另一個是平均個數minpts(這是一個數),足夠接近是距離
【4】 聚類算法有很多,有的只能聚出規則形狀的簇,比如圓或球狀的簇,而DBSCAN擅長對無規則的簇進行聚類,上述情節中的情況恰是DBSCAN的用武之地。
03—參考文獻
1. 關鍵字:《統計學習方法》、李航
2. 關鍵字:《機器學習》、西瓜書、周志華
3. 關鍵字:coursera、DBSCAN