0
本文作者: skura | 2018-11-26 20:29 |
雷鋒網(wǎng) AI 科技評論按: Kaggle TravML 粒子追蹤挑戰(zhàn)賽的頒獎儀式即將在 NIPS 2018 大會上進行。這個比賽不僅是機器學(xué)習(xí)助力其它領(lǐng)域科學(xué)研究的經(jīng)典案例,而且來自中國臺灣的 Pei-Lien Chou 也獲得了挑戰(zhàn)賽的第二名。
為了探索我們的宇宙是由什么構(gòu)成的,歐洲核子研究中心的科學(xué)家們正在碰撞質(zhì)子,本質(zhì)上就是重現(xiàn)了小型大爆炸,并且用復(fù)雜的硅探測器仔細觀察這些碰撞。
雖然編排碰撞和觀測已經(jīng)是一項巨大的科學(xué)成就,但是分析由實驗產(chǎn)生的大量數(shù)據(jù)正成為一個最為嚴峻的挑戰(zhàn)。
實驗的速率已經(jīng)達到了每秒數(shù)億次的碰撞,這意味著物理學(xué)家必須每年對數(shù)十千兆字節(jié)的數(shù)據(jù)進行篩選。而且,隨著探測器分辨率的提高,需要更好的軟件來實時預(yù)處理和過濾最有用的數(shù)據(jù),從而產(chǎn)生更多的數(shù)據(jù)。
為了幫忙解決這個問題,一個在 CGRN(世界上最大的高能物理實驗室)工作,由機器學(xué)習(xí)專家和物理學(xué)家組成的小組,已經(jīng)與 kaggle 和著名的贊助商合作來回答這個問題:機器學(xué)習(xí)能幫助高能物理學(xué)發(fā)現(xiàn)并描述新粒子嗎?
具體來說,在這次競賽中,參賽者們面臨著一個挑戰(zhàn),那就是建立一個算法,它需要能夠從硅探測器上留下的 3D 點快速重建粒子軌跡。這一挑戰(zhàn)包括兩個階段:
●在 kaggle 上的調(diào)整精確度的階段是從 2018 年 5 月到 2018 年 8 月 13 號(獲獎?wù)邔⒃?9 月底公布)。在這一階段,主辦方只關(guān)注最高分數(shù),而不會管得到這個分數(shù)需要運行的時間。這個階段是一個正式的 IEEE WCCI 競賽(會議地址在里約熱內(nèi)盧, 2018 年 7 月舉辦)。
●生產(chǎn)階段將在 2018 年 9 月開始,參與者將提交他們的軟件,由平臺進行評估。激勵取決于系統(tǒng)達到良好的分數(shù)時,評估的吞吐量(或速度)。這個階段是一個官方的 NIPS 競賽(會議地址在蒙特利爾,2018 年十二月舉辦)。
在 Kaggle 比賽官方頁面(https://sites.google.com/site/trackmlparticle/)上可以獲得精確度調(diào)整階段的所有必要信息。
Pei-Lien Chou 是 TrackML 粒子追蹤挑戰(zhàn)賽亞軍。他帶領(lǐng)了一只研究用深度學(xué)習(xí)方法解決圖像相關(guān)問題的團隊參加了這次比賽。Pei-Lien Chou 在視頻監(jiān)控領(lǐng)域有 12 年經(jīng)驗。他在國立臺灣大學(xué)讀取了數(shù)學(xué)學(xué)士學(xué)位,并在中國臺灣國立清華大學(xué)攻讀了語音信號處理的碩士學(xué)位。
在這次競賽中,kaggle 參賽者被要求建立一個算法,這種算法能夠快速地從硅探測器上留下的3D點重建粒子軌跡。 這是這個比賽兩階段挑戰(zhàn)的一部分。在 2018 年 5 月至 8 月 13 日的精確度調(diào)整階段,只關(guān)注最高分數(shù),而不考慮評估需要的運行時間。第二階段是正式的NIPS競賽,這個階段重點關(guān)注準(zhǔn)確性和算法速度之間的平衡。
比賽結(jié)果出爐后,Kaggle Team 與 Pei-Lien Chou 進行了訪談,雷鋒網(wǎng)編輯整理如下。
在參加這次比賽前,你的背景是什么?
我擁有數(shù)學(xué)學(xué)士學(xué)位和電子工程碩士學(xué)位。從去年開始,我就一直是以基于圖像的深度學(xué)習(xí)的工程師。
你是如何開始在kaggle上參加比賽的?
大約 1.5 年前,我加入了 Kaggle 來練習(xí)深度學(xué)習(xí),這對我的工作幫助很大。我在第一次比賽中就進入了前 1%,在接下來的下一次比賽中就贏了。參加 kaggle 比賽真令人興奮。
是什么促使你參加這次比賽的?
起初我沒有注意到這次比賽,因為它不是基于圖像的,盡管我在這次比賽中嘗試了一些點云方法。但當(dāng)我意識到組織者是歐洲核子研究中心(CERN),也就是制造黑洞的那些人時,我毫不猶豫地加入了。
你的方法是什么?
我的方法是從一個簡單的想法開始的。我想建立一個模型,這個模型可以把每個事件的所有軌道(模型輸出)映射到檢測器中(模型輸入),就和我們使用 DL 解決其他問題的方法一樣。
如果一次事件有 N 個命中(通常 N 在 100k 左右),則輸出可以很容易地用 NxN 矩陣表示,如果 i 和 j 在同一軌道上,則 Mij=1,否則為 0 。但是模型太大了,所以我把它分成了最小的單元:輸入兩個點擊并輸出它們的關(guān)系(如圖 1 )。和真實的只連接相鄰的點的“連接點”游戲不一樣,為了穩(wěn)健性,我連接了所有屬同一軌道的點。此時,我已經(jīng)準(zhǔn)備好了參加這次比賽。
你是怎么做的?
首先,我使用命中位置(x,y,z)作為輸入,通過 10 個項目的訓(xùn)練,很容易獲得 99% 的準(zhǔn)確率。但我很快發(fā)現(xiàn)這并不足以重建軌道。問題是,即便誤差率 0.01,對于給定的命中,負對數(shù)目可以達到 0.01*100k = 1000,而實際的負對數(shù)目在 10 左右(軌道的真實平均長度)。但是為了得分,我們需要真實的數(shù)據(jù)和模型有超過 50% 的部分是重疊的。
接下來怎么做?
我第一次在自己的計算機上嘗試運行的時候就得到了 0.2 的得分,這與當(dāng)時的公共內(nèi)核相同。我猜也許我做到 0.6 就能贏,并且希望通過我的方法可以做到。天曉得!
你是如何得到更好的預(yù)測結(jié)果的?
我嘗試了很多方法,并且我的進步大大超出了我的預(yù)期。
●采用更大的模型,更多的訓(xùn)練數(shù)據(jù)。
具有 4k-2k-2k-2k-2k-1k 神經(jīng)元的 5 個隱層 MLP,總共訓(xùn)練 3 組,5310 次事件,大約 24 億個正例對和更多的負例對。
●選取更好的特征
一對 27 個特征:x,y,z,count(cell),sum(cell.value),兩個單位向量來自神經(jīng)單元,用于估計命中方向和訓(xùn)練時的隨機反轉(zhuǎn)(如圖2),并且假設(shè)兩個擊中是線性的或螺旋形的 (0,0,z0),用前兩個估計向量和曲線的切線計算 abs(cos()),并且最后一個是 z0。
●更好的負樣本
多對接近正例對的負例對進行采樣(也就是重點提高模型分辨相近的正例負例的能力),并且我做了一些很難負例的挖掘。
最后,在 0.97TPR 下,對于給定的命中,我平均得到了 80 個負對,并且只有 6 個假陽性對的概率大于真陽性對的平均值。并且只有 6 個負對的概率大于正對的平均值。
你是如何重建軌跡的?
到目前為止,我有一個不太精確的 NxN 關(guān)系矩陣,但如果我把它們?nèi)坑蒙?,就可以得到很好的軌跡。
重建:找到 N 個軌跡
1. 以一次撞擊作為種子(例如第 i 次命中),找到最高概率(這個概率大于閾值)對 P(i,j),然后將第 j 次撞擊添加到軌道。
2. 求最大值 P(i,k)+P(j,k),如果兩對概率大于閾值,則將第 k 次撞擊添加到軌道 。
3. 測試新的命中,看看它是否和 x-y 平面上的圓匹配,圓是有兩三次命中的軌跡后面的圓。(這句話也不是很懂)(沒有這一步,我只能得到0.8分)。在軌跡有兩次或者三次撞擊后,根據(jù)現(xiàn)有的命中在 x-y 平面中組成一個圓,然后看新一次的撞擊是否在這個圓內(nèi)
4. 找到下一個撞擊,直到?jīng)]有更多的撞擊符合這個圓。
5. 循環(huán)步驟1用于所有 n 次撞擊(如圖 3)。
合并擴展
1. 計算所有軌道的相似度作為軌道的質(zhì)量,這意味著在軌道中,如果所有撞擊(作為種子)對應(yīng)的軌道相同,則軌道的合并優(yōu)先級較高。(圖 6)
2. 首先選擇高優(yōu)先級軌跡,然后通過放松重構(gòu)步驟中的約束條件對其進行擴展。
3. 循環(huán)
其它的工作
我最后添加了 z 軸約束和兩個模型的集成,得到了 0.003 改進。
我還嘗試應(yīng)用 PointNet 在預(yù)測的樣本中找到軌跡并細化跟蹤。這兩種方法都表現(xiàn)良好,但沒有更好。
圖 3:用 6 個命中重建一次事件的例子
圖 6:合并優(yōu)先級確定的一個實例
圖 4:x-y 平面上的種子(大圓)及其對應(yīng)的候選(匹配顏色)。很明顯種子是在一條軌道上的。
圖 5:每個命中的直徑與九個真命中(紅色)的預(yù)測概率之和成正比。
我把這個過程稱為無止境的循環(huán),這離我原來的想法很遠。盡管如此,當(dāng)我的準(zhǔn)確率超過 0.9 的時候,我還是很高興。
訓(xùn)練和預(yù)測獲勝方案的運行時間是多少?
你知道,我的訓(xùn)練數(shù)據(jù)有 5k 個事件,而且我還要做難的負例的挖掘。對于每個測試事件,我必須預(yù)測 100k*100k 對,重建 100k 軌道(實際上在獲勝解決方案中是 800k+),合并它們并擴展到 10k 軌道。所以運行時間是天文數(shù)字。在一臺計算機上再做一次這項工作可能需要幾個月的時間。
DL 適合這個主題嗎?
在我看來,這取決于目標(biāo)能否被很好的描述。如果目標(biāo)可以被描述,那么基于規(guī)則的方法應(yīng)該更好。換句話說,在這種競賽中,使用聚類的方法就可以得到0.8的準(zhǔn)確率,所以用深度學(xué)習(xí)來做簡直是自找麻煩。但是這依然是有趣的。
對于剛剛開始從事數(shù)據(jù)科學(xué)的人,你有什么建議嗎?
你如果還沒有加入 Kaggle,那一秒鐘都不要耽擱,現(xiàn)在就加入吧!
雷鋒網(wǎng) AI 科技評論整理。
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。