不寫代碼,用圖形界面搞機(jī)器學(xué)習(xí):MIT發(fā)布“全球最快AutoML”
本文經(jīng)AI新媒體量子位(公眾號(hào)ID:QbitAI)授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)聯(lián)系出處。
△ 來自《鐵男》科幻劇情里,沒有看過哪位大佬拿Python寫代碼。
眼前凈是藍(lán)汪汪的全息畫面,用手指拖幾下,再點(diǎn)幾下,就算出了結(jié)果。
“我夜觀星象,算出你上班時(shí)間看P站。” (誤)
回到現(xiàn)實(shí),雖說是沒有全息圖,但不寫代碼、拖拖拽拽就能搞機(jī)器學(xué)習(xí),這等美事已經(jīng)達(dá)成了:
MIT和布朗大學(xué)聯(lián)合開發(fā)了交互式數(shù)據(jù)科學(xué)系統(tǒng),名字叫Northstar。
團(tuán)隊(duì)說,這是“全球最快的交互式AutoML工具”;除了速度,它生成模型的成績(jī),也已經(jīng)在DARPA D3M AutoML比賽上超越了所有對(duì)手。
作為用戶,你只要加載好數(shù)據(jù)集,再把想預(yù)測(cè)的目標(biāo),拖進(jìn)一個(gè)預(yù)測(cè)器。幾 (十) 秒的光景,系統(tǒng)便會(huì)幫你找出最適合的機(jī)器學(xué)習(xí)模型。
有位不愿透露姓名的評(píng)論員說:
比用TNT還容易。
即便不是數(shù)據(jù)科學(xué)家,也可以充分利用手上的數(shù)據(jù),來分析各種行業(yè)的現(xiàn)實(shí)問題。
并且,這套系統(tǒng)支持多人協(xié)作,不管是用同一臺(tái)設(shè)備還是多臺(tái)設(shè)備。電腦、平板、交互式白板……各種設(shè)備已支持。
現(xiàn)在,Northstar在工業(yè)界和學(xué)界都有了用戶,Adobe便是其中之一。
能做些什么?
先拿醫(yī)學(xué)研究人員舉個(gè)栗子。
MIT在波士頓,那么就把整個(gè)波士頓的ICU患者健康信息全部投喂給Northstar。
加載完成之后,性別、年齡、BMI、有沒有消化疾病、心臟衰竭等等,各種參數(shù)都會(huì)進(jìn)入“屬性 (Attributes) ”這一欄。
△ 滑動(dòng)的部分,就是各種屬性
機(jī)器學(xué)習(xí)出場(chǎng)前
可以先觀察不同屬性之間的聯(lián)系。
比如,通常認(rèn)為男性比女性更容易發(fā)生心臟衰竭 (Heart Failure) ,就來驗(yàn)證一下這個(gè)規(guī)律適不適用。
把“心衰”和“性別”兩個(gè)屬性拖出來,然后相連,發(fā)現(xiàn)女性的發(fā)病人數(shù)稍低。但把兩個(gè)屬性拖近彼此就會(huì)看到,按照比例計(jì)算,反而是女性比男性發(fā)病率高:
△ 拖到靠近的位置,就可以計(jì)算比例
另外,還可以輕松觀察多類疾病共存的概率。
比如,傳染病、血液疾病和代謝疾病。
除了把三者相連之外,Northstar還有一種更簡(jiǎn)潔的工具,叫frequent itemset:
它可以把三類疾病的所有可能組合,概率全部計(jì)算出來:
最容易并發(fā)的是代謝疾病和血液疾病,而代謝疾病單獨(dú)存在的概率是全部可能性里最高的。
這時(shí)候,再用“年齡”屬性篩選出50歲以上的患者,代謝疾病的百分?jǐn)?shù)飆升到了73%。
注:發(fā)現(xiàn)數(shù)據(jù)里,有很多患者年齡填了零,也可以一鍵清除他們,只留有效部分。
數(shù)據(jù)就觀察到這里。
機(jī)器學(xué)習(xí)出場(chǎng)了
如果要預(yù)測(cè)某個(gè)患者有沒有心臟衰竭,就從算法欄里拽出一個(gè)預(yù)測(cè)器 (Predictor) 。
然后把要預(yù)測(cè)的“心臟衰竭”,拖到預(yù)測(cè)器的“目標(biāo) (Target) ”里去。
這樣,預(yù)測(cè)器的右邊,便會(huì)產(chǎn)出一系列模型,每個(gè)模型的預(yù)測(cè)準(zhǔn)確率都會(huì)顯示出來。
模型生成完畢之后,可以選擇一個(gè)成績(jī)最好的模型,打開來仔細(xì)查看:
這個(gè)準(zhǔn)確率92.25%的方案,一共有8個(gè)步驟。
現(xiàn)在可以把這個(gè)模型導(dǎo)出為Python腳本,今后可以手動(dòng)優(yōu)化,也可以直接投入使用。
除此之外,還可以看到各個(gè)不同參數(shù)的權(quán)重:
其中,對(duì)預(yù)測(cè)心衰最有幫助的是一個(gè)叫“heart_ischemic”的特征。
意思是心臟缺血,常常是伴隨著心臟衰竭而生。
所以下一步,就把這個(gè)特征也扔進(jìn)預(yù)測(cè)器的目標(biāo)里。
這樣的話,再生成的模型就不依靠這個(gè)癥狀來預(yù)測(cè)了。
還有,可以把自己選中模型的預(yù)測(cè)結(jié)果,和Ground Truth對(duì)比觀察。
像上圖這樣直接拖進(jìn)去,就會(huì)得出假陰和假陽的情況。
選中這兩部分,把它們和“年齡“擺在一起,就知道AI在哪個(gè)年齡段的預(yù)測(cè)更容易出錯(cuò)。
這個(gè)模型的錯(cuò)誤率,幾乎是隨時(shí)間線性增長(zhǎng)。
到這里,一個(gè)栗子就講完了。
可問題是,AutoML找出的模型一定是有效的么?
并不,如果預(yù)測(cè)成績(jī)看上去很迷,可能是因?yàn)閷傩詸诶锏臄?shù)據(jù)集,并不是有用的預(yù)測(cè)工具。
但沒關(guān)系,系統(tǒng)自帶數(shù)據(jù)集搜索工具datamart,輸入關(guān)鍵字,可以查找相關(guān)的數(shù)據(jù)集。
比如,輸入“貧困 (Poverty) ”,就能看到美國(guó)各個(gè)縣的人口數(shù)據(jù)。
有了這些數(shù)據(jù),系統(tǒng)找出的貧困預(yù)測(cè)器,表現(xiàn)也會(huì)有所提升。
怎么做到的?
Northstar的英勇體現(xiàn)在三個(gè)角度,一是速度,二是生成模型的質(zhì)量,三是交互能力。
團(tuán)隊(duì)說,這是由系統(tǒng)的四個(gè)部分共同決定的 (第三部分高能) 。
第一部分叫Vizdom,就是前端,人類最直觀感受到的部分,像一個(gè)沒有邊界的畫板,可以在上面自在地發(fā)揮。
之所以自在,是因?yàn)楸澈笥袀€(gè)強(qiáng)大的數(shù)據(jù)引擎:
第二部分叫IDEA,就是這個(gè)引擎。全稱“交互式數(shù)據(jù)探索加速器“,可以理解成樣本管理器。
它把內(nèi)存分成三份,一是結(jié)果緩存 (Result Cache) ,二是樣本存儲(chǔ) (Sample Store) ,三是索引 (Indexes) 。
當(dāng)用戶開始操作,IDEA就會(huì)從各種數(shù)據(jù)源吸取數(shù)據(jù),推測(cè)性地 (Speculatively) 執(zhí)行運(yùn)算,然后把結(jié)果緩存下來,支援用戶后面可能下達(dá)的指令。
同時(shí),IDEA還會(huì)把所有傳入的數(shù)據(jù),緩存到“樣本存儲(chǔ)”的位置。如果沒空間了,IDEA就開始更新緩存:用水塘抽樣 (Reservoir Sampling),給數(shù)據(jù)集生成一個(gè)代表性樣本 (Representative Sample) ,就算數(shù)據(jù)流有偏差也是后面再處理:
要避免數(shù)據(jù)流的偏差 (Bias) 帶來的影響,IDEA利用了許多數(shù)據(jù)庫(kù)都有的采樣算子,以及這些數(shù)據(jù)的隨機(jī)偏移 (Random Offsets) 。
IDEA還可能把水塘樣本分成幾個(gè)分層 (Stratified) 的子樣本,用來過度表示 (Overrepresent) 一個(gè)分布的尾端,或者用來創(chuàng)建專門的索引。
它所有的決定,都要根據(jù)用戶過往和當(dāng)下的操作不斷優(yōu)化:
比如,當(dāng)用戶把一個(gè)新屬性拖進(jìn)畫布,系統(tǒng)就會(huì)分配更多資源到這個(gè)新屬性上,為用戶可能發(fā)出的請(qǐng)求提前做好準(zhǔn)備。
另外,隨著計(jì)算的進(jìn)行,IDEA還會(huì)把精確度越來越高的結(jié)果,不斷傳輸?shù)角岸?,也包括這些結(jié)果的完整性和誤差分析。
這樣,即便用戶任意發(fā)揮,系統(tǒng)也能快速待命,不論數(shù)據(jù)大小,不論數(shù)據(jù)類型。
第三部分叫Alpine Meadow,重中之重。
在IDEA準(zhǔn)備好數(shù)據(jù)之后,就是它負(fù)責(zé)選出最適合的算法,最適合的超參數(shù)。
2013年,團(tuán)隊(duì)曾經(jīng)開發(fā)出MLbase:用一種簡(jiǎn)單的聲明式方法 (Declarative Way) ,來說明ML任務(wù)是什么 (但不發(fā)出具體指令) ;還提供一個(gè)新的優(yōu)化器,選出一個(gè)學(xué)習(xí)算法,并且能夠動(dòng)態(tài)地適應(yīng)當(dāng)前的任務(wù)。
只不過,MLbase不是為了和人類交互而生的,調(diào)參常常要幾小時(shí)。
所以,團(tuán)隊(duì)在此基礎(chǔ)上一頓操作,獲得了快速有效的Alpine Meadow:
先是證明了,把基于規(guī)則的優(yōu)化 (Rule-Based Optimization) 方法,和多臂老虎機(jī)、貝葉斯優(yōu)化以及元學(xué)習(xí),巧妙結(jié)合在一個(gè)系統(tǒng)里,能有效找到最好的ML模型。
并設(shè)計(jì)了一個(gè)自適應(yīng)的選擇算法,通過對(duì)比訓(xùn)練集和驗(yàn)證集的誤差,早期就可以剪掉 (Prune) 一些不靠譜的pipeline。這在訓(xùn)練實(shí)例的樣本越來越大的情況下,有助于達(dá)到更高的效率。
結(jié)果是,Alpine Meadow廣泛支持各類任務(wù),多才多藝的程度,遠(yuǎn)遠(yuǎn)超過其他AutoML系統(tǒng):
并且,它在從前沒見過的數(shù)據(jù)集上,有80%的情況超越了作為基線的專家系統(tǒng):
下面看速度。
綠色是Alpine Meadow找出第一個(gè)方案需要的時(shí)間。在成功的數(shù)據(jù)集數(shù)量相同的情況下,用時(shí)遠(yuǎn)低于其他算法:
方案在數(shù)據(jù)集上的相對(duì)排名,依然明顯超過其他算法 (越低越好) :
然后,是DARPA比賽的分?jǐn)?shù) (已Normalized) :
截至目前,它已經(jīng)超越了DARPA D3M AutoML比賽上的全部對(duì)手。
雖然,Alpine Meadow單打獨(dú)斗也沒有問題。但在這個(gè)四部分組成的系統(tǒng)里,還有最后一個(gè)部分:
第四部分是QUDE,它可以監(jiān)控用戶的每一個(gè)交互動(dòng)作,對(duì)常見的錯(cuò)誤和問題給出警告。
這些模塊合在一起,才是完整的Northstar。
美中不足,現(xiàn)在似乎還沒有個(gè)人用戶的入口。
“全MIT最聰明的人”
MIT和布朗大學(xué)組成的團(tuán)隊(duì),已經(jīng)在NorthStar上面耗時(shí)四年。
領(lǐng)隊(duì)是Tim Kraska副教授,來自MIT赫赫有名的CSAIL實(shí)驗(yàn)室。
項(xiàng)目已經(jīng)發(fā)射了許多篇論文,其中核心的Meadow Alpine論文,登上了SIGMOD ’19。
論文一作名叫尚澤遠(yuǎn),也來自CSAIL,是Kraska的博士生。
少年的校園主頁(yè),域名矚目:http://smartest.mit.edu/
下方還有一行傲嬌的說明:
如果想知道誰是MIT最聰明的人,請(qǐng)前往https://www.shangzeyuan.com/
Alpine Meadow論文傳送門:
http://sci-hub.tw/https://dl.acm.org/citation.cfm?id=3319863
NorthStar論文傳送門:
http://www.vldb.org/pvldb/vol11/p2150-kraska.pdf