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