機器學習 (machine learning) 在天文學中有或者將會有什麼應用?

之前聽了一場Chris Lintott主講的關於Citizen Science的講座。他提到為了讓公眾對天文學有更多的認識,可以讓公眾參與到天文學研究中。
他用星系分類來舉例子(貌似現在用圖像對星系進行分類還主要是靠人工),而後他進一步提到,現在有些天文學家/天文工作者試圖用machine learning來代替人工,並且取得了不錯的進展,未來對於星系分類,可能是人工+機器相結合的模式。
我感興趣的問題是,機器學習在天文學中還有,或者將會有什麼應用?機器學習在天文學中應用的前景如何?
望專業人士能結合自己熟悉的領域談一談~歡迎腦洞。


關於這個問題,雖然我對於天文學的了解基本僅限於科普的層次,非專業人士;但由於我之前在哥大參與過一個和 IBM Watson Research Center 合作的利用計算機視覺和機器學習幫助天文學家尋找相似星系的項目,也算是符合樓主描述的一個應用吧。在做這個項目的同時,我也了解到了一些正在進行的利用計算機視覺和機器學習幫助天文學應用的例子,可以一併都介紹一下:

------------------------------------------------------------------------------------------------------------
首先,最有名的一個此類項目是 Galaxy Zoo,這個項目旨在利用 Crowdsourcing(眾包) 來進行星系分類。Crowdsourcing 其實也是一個機器學習最近比較火的方向,在這個意義下簡單來說可以理解為"人肉計算":通過收集聯合大量普通人通過簡單腦力完成的小任務來解決一個複雜任務。這其中怎樣分配任務、怎樣聯合、怎樣和計算機結合同時發揮人和計算機各自的長處都是值得研究的地方。如果對這個概念仍然難以理解,看完我接下來的關於 Galaxy Zoo 的描述應該就很好理解了。

首先是一些背景:
在2003-2004年,哈勃望遠鏡對準了一片看似完全黑暗空無一物的星空,面積大約為 1千3百萬分之一 的宇宙,拍攝了一張連續曝光12天的照片 (左下角的紅框是照片拍攝範圍與月亮的相對大小):

這張照片也叫做 哈勃超深空 (Hubble Ultra-Deep Field) ,令人驚訝的是看似一片漆黑的區域竟然隱藏了大量的星系(這張照片中有大約 1萬 個星系)。後來經過估算,整個宇宙中有大約 10^11 個星系。基於這些發現,天文學家啟動了 斯隆數字化巡天(SDSS) 項目,這個項目的目的就是要拍攝宇宙中數以千億記的星系們。目前SDSS項目已經收集了超過 1百萬 個星系的照片,在不遠的將來,這一數字會很快上升至 5千萬 個。下面就是5張我隨機挑選出的SDSS中的星系圖片:

對於海量的信息,最基本的處理就是把他們歸類,方便以後查詢。對於SDSS中的星係數據也是這樣,最簡單的處理就是把他們分類,按照哈勃序列(Hubble Sequence)作為標準:

可是這樣簡單的工作也難倒了天文學家們。在過去,深空拍攝進展緩慢,好不容易得到一張圖片天文學家們一看就可以輕鬆歸類。可是現在,星系圖片產生的速度遠遠大於了天文學家們能夠看的速度,並且讓天文學家們看也太浪費時間。於是,Galaxy Zoo 在2007年誕生。世界上的每個人都可以訪問這個網站,幫助進行星系分類。他們把天文專業人士才了解的分類標準變成了一系列簡單的問題,普通人只要依次根據問題做出一系列選擇就完成了分類,比如下圖就是第一個問題,只需要選擇圖中的星系是屬於3種中的哪一種就可以,接下來根據選擇會有後續的問題:

Galaxy Zoo中完整的問題和分類過程在這裡:

這樣,通過分配和集成這些普通人的勞動,任何人都可以為人類的天文事業做出貢獻,幫助迅速的完成星系分類。有研究表明,這樣分類的到的結果與專業天文學家的一致率在95%以上。

Galaxy Zoo這個項目其實更多是利用互聯網眾包的思想,並沒有用到太多的機器學習,最多就是根據一個用戶之前的準確率選擇接下來給你什麼樣的圖片更合適。但接下來這2個項目都用到了比較多的機器學習和計算機視覺相關的知識:

------------------------------------------------------------------------------------------------------------
這個是我一開始提到的那個我與IBM合作參與的項目:基於SDSS上的圖片數據,提出了一種更好的描述星系圖片的特徵和預處理方法,同時建立了一個相似星系圖片檢索系統。描述星系圖片的特徵和預處理方法這一塊由於比較專業,我就不過多介紹;相似星系圖片檢索這一塊我可以說下:

簡單來說,我做的是一個類似於百度圖片、谷歌圖片的按圖片搜索的搜索引擎,只不過這裡的圖片都是SDSS中的星系圖片:輸入一張星系圖片,返回和它最相似的星系圖片們:

比如上面這兩張圖片就是我做的系統當時的demo截屏。左上角那張Query是輸入,之後的圖片是SDSS中9張和輸入最像的星系圖片(當然這只是個demo,實際的結果是整個SDSS中所有圖片按照與輸入query相似程度的排序)。整個過程只需要大概0.5秒就可以完成。

這個系統的應用主要有兩個:
1. 天文學家們對一些特殊的星系比較感興趣,如果他們發現了一個這樣的特殊星系,我們的系統可以幫他們找到是否還有類似的。
2. 對某種類型的星系,天文學家們比較想了解他們在宇宙中的空間分布情況,這樣就需要找到和這個星系類似的星系,我們的系統就會幫上忙。

------------------------------------------------------------------------------------------------------------
另一個我聽說過的項目是利用深度學習(卷積神經網路)進行星系圖片自動分類,其實就是利用深度學習自動完成Galaxy Zoo想利用人完成的事情。方法上其實並沒有什麼特別之處,就是卷積神經網路的一個基本應用,不過得到了很不錯的效果。細節可參看 MIT Tech Review 的這篇報道:How Machine Vision Is Reinventing the Study of Galaxies

或許對於星系分類,就像樓主提到的Chris Lintott所說,未來採取人工+計算機結合的方式會比較好,但怎樣結合確實也是個不容易的問題。我很期待看到Galaxy Zoo結合進一些最新的機器學習、計算機視覺的新進展,比如深度學習。

------------------------------------------------------------------------------------------------------------
最後說點兒自己的感想:
儘管我現在已經不再參與任何利用機器學習解決天文學問題的項目了,也不知道我之前參與的那個項目現狀怎樣。但在做這個項目的過程中,我發現天文學家們其實對應用機器學習、計算機視覺這類工具非常感興趣,但畢竟隔行如隔山,他們沒有好的渠道來尋求合作。其實往往解決這類問題用到的機器學習工具都很基本,但解決的問題能產生很深遠的影響。隨著目前機器學習逐漸從實驗室走入應用,未來類似於天文學這樣的交叉領域應用肯定會越來越多,不同領域更多的人力可以從繁瑣的重複勞動中解放出來,專註於那些真正重要的問題~


好問題……

我只能說我自己知道的一個簡單例子:測光紅移。

SDSS-III 里的無光譜的天體的測光紅移數據,就已經是由機器學習給出的了(https://www.sdss3.org/dr8/algorithms/photo-z.php)。

自己沒事的時候拿模擬數據試驗過幾種機器學習的方法。目前看來,如果人工干預做得夠好(比如事先依據顏色把 LRG、ELG、類星體之類的東西的分類做好),那麼幾種常見演算法的效果還是可以的,雖然還是沒辦法拿來做大尺度結構的研究就是(紅移換算成的尺度因子的相對偏差不應超過大約 1/20,否則抓瞎)。

神經網路照例慢得要命且效果一般。SVM(滋磁向量機)所得的測光紅移的 scatterings 迷之微小,雖然離真實值差得比較遠(也就是,精密度很好,準確度很爛)——似乎能用一個依照星系類型而定的函數修正就好?現在流行的做法是隨機決策樹和決策森林,加進一些不僅僅是測光數據的輔助參數(比如這一篇 http://arxiv.org/pdf/1504.07255.pdf,這幫人從好幾年前就開始忙活著把星系的形態學數據甚至形態本身加進裡頭去)。

未來的 LSST 是沒有光譜儀通道的,紅移數據只能依據測光給出。在這方面,機器學習相對於模板擬合似乎有一定優勢。

當然,我倒是更看好把測光紅移與 JHU 的 Menard 組做的「相關紅移」(http://arxiv.org/abs/1303.4722,只要你知道啥是兩點相關函數,他們的計算方法就很好理解了;當然,這麼弄出來的紅移數據是不能用來做結構形成的,否則邏輯就錯了)結合起來的結果(以及其實無縫光譜法挺好的他們為啥不用……起碼比測光強多了……)。


我比較熟悉高能伽馬射線,這個是能量最高的光子。這些光子能量太高,無法穿過大氣層,所以我們都還活著。可是當他們遇見空氣分子會產生高能正負電子對,這對電子會繼續軔制輻射產生高能伽馬射線,這兩個步驟反覆進行,形成空氣簇射。這些高能電子超過空氣中的光速,會發出藍光(切倫科夫輻射),我們在地上擺望遠鏡就可以看到這個藍色閃光。用圖片表示大致是這樣:

基本可以想成一顆子彈被水停住了,可是留下了一條巨大的痕迹,可以通過觀察這條痕迹的方向和大小來決定子彈的入射方向和速度。

這樣我們就可以用切輪科夫望遠鏡來推出入射伽馬射線的方向和能量。現在已經通過空氣簇射探測到了一百多個天體發射高能伽馬射線。

可是除了伽馬射線(光子),大量的宇宙射線(粒子)也會形成空氣簇射和切輪科夫輻射,那問題來了:怎麼區分入射的是光子還是宇宙射線?現在的辦法主要就是看空氣簇射的形狀,如果比較肥,就很有可能是宇宙射線,就扔掉。簡單的示意圖如下(左邊伽馬,中間質子,右邊碳離子):

顯然這個辦法太暴力了不太准對不對?沒關係,發射伽馬射線的天體基本都是點源,我們找個沒有伽馬天體的區域估算一下背景噪音剪掉就好了唄。所以傳統的點源數據分析不太需要最優化的辦法來區分單個事件是光子還是宇宙射線粒子。

可是機器學習發展這麼快,為什麼放著不用呢?這種典型的分類問題machine learning最拿手了。於是各種neural nets,boosted decision tree,random forest就都來了。基本上還是一樣用空氣簇射的形狀做feature,來train各種model,然後判斷分類是或者不是伽馬射線。舉個例子,高能物理最愛的ROOT提供了TMVA package,現在最流行的使用boosted decision tree來做這個分類:http://arxiv.org/pdf/0904.1136.pdf

如果能夠用machine learning很confident的區分單個空氣簇射事件是光子還是粒子,就可以拋棄伽馬射線源都是點源的假設,進而測量一下宇宙射線中的高能電子之類的,研究的問題就更多了。而且在現在machine learning越來越快的趨勢下,數據分析時間也不再是個阻礙,在實驗科學中的應用應該越來越普及才對。現在比較popular的一個package叫astroML,集結了很多為懶惰的天文學家寫的python method astroML: Python Datamining for Astronomy,乍聽起來很宏大,但大部分是scikit-learn的wrapper,很多東西也跟machine learning沒啥關係。但是個人還是很欣賞Jake Vanderplas的。


推薦閱讀:

「大爆炸理論」(The Big Bang)可信嗎?
如果把太陽系其他行星都拉到跟地球一樣的軌道上,會發生什麼?
NASA 是如何確定開普勒 - 452b 與地球相似的?
奧爾特星雲是以球狀or環狀包裹著太陽系?
若宇宙大爆炸成立,那麼宇宙大爆炸之前供爆炸前的天體存在的空間是怎麼來的?

TAG:機器學習 | 天文學 | 天體物理學 |